Witam Mam ustawioną transmisję asynch. w 8051 - 19200 bodów i uaktywnione przerwanie z UART. Mam pytanie czy przerwanie bedzie nastepowało co ok. 50us czyli po odbiorze każdego bitu i co za tym idzie obsługa tegoż przerwania nie powina być dłuższa niz 50us. Dodam jeszcze że cykl zegara wynosi 1us. Czy dobrze policzyłem? Za wszelkie odpowiedzi z góry dziękuje i pozdrawiam.
czy dobrze obliczyłem przerwanie z UART
Feb 25, 2004
4 Replies
Użytkownik "|PrezO|" <m.szycko-wytnij snipped-for-privacy@bsk.vectranet.pl> napisał w wiadomości news:c1hqco$1hv$ snipped-for-privacy@bialystok.bsk.vectranet.pl...
Przerwanie jest zgłaszane po skompletowaniu całego bajtu (bit startu + 8 bitów danych + bit stopu) czyli 10 bitów, a więc mniej więcej to, co policzyłeś razy 10 (ok. 520us). A czas wykonywania procedury obsługi jest zależny od tego co w niej napiszesz. Nie powinna być dłuższa niż tych 520 cykli maszynowych.
QmX.
Z tego co pamiętam przerwanie nastapi po zapełnieniu bufora czyli po wczytaniu całego znaku z bitem stopu.
Aczkolwiek w pojedynczych przypdkach moze siegnac nawet do 1000 cykli, tyle ze nastepne trzeba obsluzyc w 40 ;-)
Użytkownik "Milosz Skowyra" snipped-for-privacy@wp.pl napisał w wiadomości news: snipped-for-privacy@wp.pl...
ale tylko przy zalozeniu, ze w ciagu pierwszych 520 us obsugi przerwania wyciagniemy znak z SBUF'a a nie na koncu tych 1000 us
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required