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

przerwanie po wysłaniu znaku vs przerwanie generowane po opróznieniu

squelch 29 Lip 2017 20:13 912 8
REKLAMA
  • #1 16615387
    squelch
    Poziom 11  
    Witam

    Zawsze zastanawiałem się czym się rózni jedne przerwanie tzn. przerwanie po wysłaniu znaku od drugiego po opróznieniu rejestru i bufora. Przecież jak uart mi wyślę znak to bufor jest już chyba pusty opróżniony? czym się różnią te przerwania?

    Pozdrawiam
  • REKLAMA
  • Pomocny post
    #2 16615402
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • REKLAMA
  • Pomocny post
    #4 16615548
    tmf
    VIP Zasłużony dla elektroda
    Oczywiście, że ma. Zarówno bufor odbiornika, jak i bufor nadajnika. Jeśli w UDR jest już bajt danych, to kolejny zapis odbędzie się do bufora (automatycznie załatwia to hardware MCU). Stąd też zazwyczaj zapisując dane do UDR sprawdzasz flagę UDRE, czy masz miejsce w buforze. Flagę zakończenia transmisji sprawdza się rzadko, zazwyczaj jeśli po zakończeniu transmisji chcesz zmienić stan jakiegoś sygnału sygnalizującego koniec. W praktyce najczęściej wykorzystuje sie to w trybie USART-SPI, kiedy po wysłaniu wszystkich znaków deaktywujesz sygnał CS.
  • Pomocny post
    #5 16615570
    kamyczek
    Poziom 38  
    Udr jest buforowany mieści 2 lub 3 znaki ,co oznacza tyle ,że można zapisać raz po razie. Pierwszy wpisany znak zacznie być natychmiast wysyłany kolejne dwa, kolejno po pierwszym . Jedno przerwanie zgłaszane jest gdy bufor jest pusty czyli można dopisać kolejne znaki do wysłania Drugie przerwanie ,gdy zakończy się wysyłanie ostatniego znaku z bufora . Różnica jest więc taka ,że pierwsze jest używane do kontroli ,kiedy uzupełnić znaki w buforze udr a drugie np. do zmiany kierunku linii transmisyjnej przy transmisji RS485 . Lub jak napisał Tomasz do sterowania linią CS w trybie master spi .
  • REKLAMA
  • Pomocny post
    #7 16616127
    Konto nie istnieje
    Konto nie istnieje  
  • Pomocny post
    #8 16616143
    kamyczek
    Poziom 38  
    UDR powinieneś rozumieć jak dwa "mikro" bufory odbiorczy i nadawczy mający ten sam adres i mieszczący ilość znaków zależną od typu mikrokontrolera . Jak to sobie wytłumaczysz jest w zasadzie obojętne ,byle spowodowało to właściwy sposób obsługi przy zabawie z programem .
    Zachęcam cię przy tej okazji do lektury pdf-ów ze strony atmela dotyczących danego mikrokontrolera z dopiskiem "complete" opisane są w nich dokładnie peryferia takie jak uart .
REKLAMA