Hallo, ich möchte ein bestehendes Programm vom Mega16 auf einem Mega 164 portieren, dabei bin ich auf Probleme beim Ansteuern der U(S)ART gestossen. Beim schreiben in das Register UCSR0C wird auch das High-Byte der Register UBRR0H überschrieben. Beim Mega16 konnte man dies ja über das Bit URSEL beeinflussen. C-Code: UBRR0 = (uint16_t) (F_CPU / (16*Baud) - 1); // Baurate berechnen UCSR0C = (1<<USBS0)|(3<<UCSZ00); // Frame 8 Data , 2 Stop Wo liegt mein Fehler ? Danke. Mario
:
Gesperrt durch Moderator
Bits und Register der USART wurden bei den neueren AVRs neu gemischt. Also: RTFM Was ist danach noch unklar? Oliver
> Wo liegt mein Fehler ?
Dein Fehler liegt in erster Linie darin, dass du irgendwelche
Registereinstellungen portieren willst. Sinnvoller ist es, die
Funktion zu portieren.
Also: sieh nach, wie die U(S)ART beim Mega16 eingestellt war, und
schreib die Einstellungen (Baudrate, Stop-Bits...) auf ein Blatt Papier.
Und dann nimm das Datenblatt vom Mega164 her und sieh nach, wie du
dessen Register einstellen mußt, um diese Betriebsart zu bekommen.
Hallo, schon einmal danke für die Antworten. Mein Problem liegt nicht im anpassen der Registerinhalte. Die Frage ist warum wird das UBRR0H-Register bei einem Schreibzugriff auf das UCSR0C überschrieben. Danke Mario
Mario schrieb: > Die Frage ist warum wird das > UBRR0H-Register bei einem Schreibzugriff auf das UCSR0C überschrieben. Wird es nicht. Wenn du anderer Meinung bist, dann beschreibe mal detailliert, wie du zu der Schlussfolgerung kommst. Edit: Und Crossposten ist bäh: Beitrag "UART Mega 164P" Die Antwort von Jörg dort, der ebenfalls nachfragt, wie du darauf kommst, hat dir nicht gefallen? Also hast du statt darauf zu antworten hier nochmal das gleiche gepostet?
Stefan Ernst schrieb: > Edit: Und Crossposten ist bäh: > Beitrag "UART Mega 164P" Er hat es ins falsche Forum gepostet, und ich hatte es verschoben. Da er zu faul, ängstlich oder was auch immer war, eine Mailadresse beim Posten zu hinterlegen, hat er die Verschiebung nicht bemerkt und stattdessen den ganzen Käse nochmal angefangen. Leute, die Frage nach der Mailadresse ist in eurem Interesse.