ATMega8 UART
Dukai Zoltan
dzoolee at yunord.net
Sat Aug 16 15:24:47 CEST 2003
Lenne egy kerdesem...
a fenti problemaval kuzdok.
Abszolute nem ugy kukodik az UBRRL meghatarozas amint az a PDF_ben le
van irva. miszerint UBRR=fosc/16*baud -1
Inkabb ugy hogy a 16 heleytt korulbelul 42-es osztot kellene hasznalni.
Ezt probalgataso utjan kiserleteztem ki:
6-nal 38400-al nyomja a szoveget, mindne OK...
12-nel 19200-al muxik,
13-al is (bizonyara mindketto benne van a turesben...)
17-nel 14400-on
18-nal szinten 14400-on mar nem mukodik, kurvasokat teveszt.
25-nel megy 9600-n
26 detto
27 is
51 @ 4800
52 szinten
53 is
54 is
55 is
56 mar szar
102-nel mar megy 4800-on
112 meg jo, 113-nal mar a bitek vegeit elrontja.
igy inicializalok:
void uart_init(void)
/* initialize uart */
{
/* enable RxD/TxD and ints */
outp((1<<RXCIE)|(1<<TXCIE)|(1<<RXEN)|(1<<TXEN),UCSRB);
/* set baud rate */
UBRRL=6;
UBRRH=0;
}
Ha valaki tudja a megoldast kerem ne tartsa magaban.
Udv
More information about the Elektro
mailing list