czy dobrze obliczyłem przerwanie z UART

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.

Reply to
|PrezO|" <m.szycko-wytnij
Loading thread data ...

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.

Reply to
QmX

Z tego co pamiętam przerwanie nastapi po zapełnieniu bufora czyli po wczytaniu całego znaku z bitem stopu.

Reply to
Mariusz Dybiec

Aczkolwiek w pojedynczych przypdkach moze siegnac nawet do 1000 cykli, tyle ze nastepne trzeba obsluzyc w 40 ;-)

Reply to
Milosz Skowyra

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

Reply to
Andy

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.