Mahlzeit!
UCSR0C = (1 << UCSZ01) | (1 << UCSZ00);
Sagt ihm 8 Datenbits, da gehört aber noch UCSZ02 im UCSR0B dazu.
Evtl. setzt du den ja auch und das 9. Datenbit sieht aus wie ein Stopbit?
Oder schreibst im UCSR0C ja doch noch irgendwo anders rum?
Das hier reichte für mich immer für GPS empfangen und in einen FT232 schreiben (asynchron mit 8N1):
Code:
// --- baud rate 4800 bps (bei 14,746MHz)
unsigned int baud = 191;
UBRR0H = (unsigned char) (baud>>8);
UBRR0L = (unsigned char) baud;
// --- UCSRB/C
UCSR0B = (1 << RXEN0) | (1 << RXCIE0) | (1 << TXEN0);
UCSR0C = (1 << UCSZ01) | (1 << UCSZ00);
Lesezeichen