UART Databits, Problem.

Gast #2553173
Lesenswert?

Hallo zusammen...

ich habe einen Atmega8 und ein USB serial Interface. Ich kann damit auch 
wunderbar daten zu meinem Terminalprogram oder Excel übertragen(Baud 
9600). Beim Terminal Program und in Excel ist das Setup 8 Databits und 1 
Stopbit. Komischerweise funktioniert die Übertragung nur wenn ich den 
UART im Atmega folgendermaßen konfiguriere.

  UBRRH = (uint8_t) (UBRR_BAUD>>8);
  UBRRL = (uint8_t) (UBRR_BAUD & 0x0ff);
  //UCSRC |= (1<<UCSZ1)| (1<<UCSZ0);//|(1<<USBS)
  UCSRB |= (1<<RXEN) | (1<<TXEN) | (1<<RXCIE);

Sowie ich die dritte Zeile nicht mehr als Kommentar nehme geht nichts 
mehr dabei ist das doch die richtige Einstellung. Außerdem ist komisch 
das mein Terminal Program auch noch Daten senden und empfangen kann wenn 
ich dessen Setup ändere. z.B Bits5 und Stopbit 2.

Das USB Interface ist auch mit 8 Databits und 1 Stopbit eingestellt. 
Kann mir jemand sagen woran das liegen kann?
Gast #2553191
Lesenswert?

mache ich die ganze Zeit ...

hier das Beispiel aus dem Datenblatt

UBRRH = (unsigned char)(ubrr>>8);
UBRRL = (unsigned char)ubrr;
/* Enable receiver and transmitter */
UCSRB = (1<<RXEN)|(1<<TXEN);
/* Set frame format: 8data, 2stop bit */
UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);


sieht ganz ähnlich aus ?
Gast #2553196
Lesenswert?

ah habs gefunden

Bit 7 – URSEL: Register Select
This bit selects between accessing the UCSRC or the UBRRH Register. It 
is read as one when
reading UCSRC. The URSEL must be one when writing the UCSRC.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren