port szeregowy w '51 - programowanie z poziomu C

Feb 15, 2005 5 Replies

Witam!



Szukam informacji na temat programowania UART'u z poziomu C.


Z góry dziêki



Co to jest - konkurs na najlepszą wróżkę? Ja mam się domyślić, gdzie ten UART siedzi?

Có¿ to Marcinie... Twoja szklana kula nie czyta pola Subject: ? ;-)))

Obs³uga UARTu '51 w C nie ró¿ni siê od obs³ugi innych peryferiów. Z poziomu C musisz umieæ zapisaæ/odczytaæ rejestry SFR i ew. napisaæ procedurê obs³ugi przerwania. Resztê znajdziesz w dokumentacji konkretnego uC.

Mamma mia - cancel poszedł, autora przepraszam, Markowi dziękuję.

Mam za swoje!

Nie chce mi siê nawet pytania konkretnego u³o¿yæ a oczekujê odpowiedzi. Problem mój tkwi w taktowaniu uk³adu UART licznikiem T1, jak± warto¶æ powinienem wpisaæ do rejestru TH1 aby uzyskaæ transmisjê 9600 bodów przy zegarze

11,0592 MHz?? No i jaki tryb UART wybraæ ?? (SM0, SM1)

Z góry dziêkujê za odpowied¼ Pozdrawiam

U¿ytkownik "Krzysztof" snipped-for-privacy@poczta.onet.pl> napisa³ w wiadomo¶ci news:cuvgcl$nrf$ snipped-for-privacy@inews.gazeta.pl

Wg. A.Rydzewskiego: Timer1: C/T\ = 0 - taktowanie z f_xtal/12 Mode2: M1=1; M0=0 // licznik 8bit, autoreload z TH1 TH1 = 0xFD; // podzia³ na liczniku f_ot1 = f_t1 / 3

UART: Mode1: SM0=0; SM1=1; // transmisja szeregowa async. znaki 8-bit, BR okre¶lony programowo SMOD = 0; // f_br = f_ot1 / 32 (tzn. w³±czony dodatkowy podzia³ przez 2)

f_xtal = 11.0592 f_t1 = f_xtal/12 = 921.6kHz f_ot1 = 307.2kHz f_br = f_ot1 / 32 = 9600

c.n.d.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required