logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Atmega8] Czy Atmega8 z wewnętrznym zegarem 8MHz wymaga kwarcu do UART?

marcinzelaz 29 Lis 2014 00:09 1065 2
REKLAMA
  • #1 14174902
    marcinzelaz
    Poziom 2  
    Witam,
    Czytając to forum i wzorując się na przedstawianych przykładach kodu postanowiłem napisać swój pierwszy program - komunikacja Atmega8 -> PC przez RS485. Na początku miałem małe problemy z nawiązaniem samej komunikacji ale po paru zmianach w kodzie udało mi się z tym uporać. Poniższy kod działa ale nie do końca. Założenie jest takie żeby mikroprocesor po każdym znaku 'A' przesłanym do niego odpowiadał wysyłając znak 'x'. Niestety nie na każdy przesłany znak otrzymuję odpowiedź i nie potrafię ustalić z jakiego powodu tak się dzieje.Mikroprocesor taktowany jest wewnętrznym zegarem 8MHz. Czy przy stosowaniu UART wymagane jest stosowanie zewnętrznego rezonatora kwarcoweg ?? Czy to może być problemem w moim przypadku ?
    Poniżej listing programu, może ktoś ma jakieś sugestie ?

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 14177670
    Eagle
    Poziom 24  
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Sprawdzasz flagę czy bufor jest gotowy do przyjęcia nowej danej, Atmegi mają UART buforowany, więc po wpisaniu jednego znaku, zostaje natychmiast skpiowany do rejestru przesuwnego = wysyłany, a flaga buffor empty jest ustawiana i można wpisać nową daną, która będzie czekać w buforze do czasu aż zostanie wysłana poprzednia.
    Powinieneś sprawdzać TXCn
    Cytat:
    The TXCn Flag can be used to check that the Transmitter has completed all transfers


    A sprawdzasz
    Cytat:
    The UDREn Flag indicates if the transmit buffer (UDRn) is ready to receive new data.
  • #3 14181037
    dondu
    Moderator na urlopie...
    Tutaj znajdziesz działający przykład: http://mikrokontrolery.blogspot.com/2011/03/rs-232-atmega8-komputer-terminal.html

    marcinzelaz napisał:
    Czy przy stosowaniu UART wymagane jest stosowanie zewnętrznego rezonatora kwarcoweg ??

    Tak, wewnętrzny generator RC nie zapewnia wymaganej stabilności.
    Na biurku może wszystko działać prawidłowo, ale po za nim już nie koniecznie :)
REKLAMA