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?
HaPe schrieb: > Sowie ich die dritte Zeile nicht mehr als Kommentar nehme geht nichts > mehr Logisch, schließlich schreibst du mit der Zeile nach UBRRH und veränderst so die Baudrate. HaPe schrieb: > dabei ist das doch die richtige Einstellung. Und welche Einstellung hast du ohne die Zeile? Die gleiche, denn die beiden Bits sind per Default gesetzt.
Ok das verstehe ich dann nicht. Wieso verändere ich dadurch die Baudrate? UCSRC ist doch ein anderes Register.
HaPe schrieb: > Ok das verstehe ich dann nicht. Wieso verändere ich dadurch die > Baudrate? UCSRC ist doch ein anderes Register. Dann ist genau jetzt der richtige Zeitpunkt, sich im Datenblatt die Beschreibung zu dem Register durchzulesen.
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 ?
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.
Danke für die schnelle Hilfe Stefan! Jetzt ärgere ich mich wieder dafür extra ein neues Thema aufgemacht zu haben aber das habe ich die ganze Zeit überlesen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.