Hallo. Mein ATmega162 soll eigentlich bei 9600 Baud Zeichen auf der UART-Schnittstelle ausgeben. Beim Hyperterminal muss man jedoch 19200 Baud einstellen, damit was ankommt. Der AVR wird mit dem internen Oszillator bei 4MHz betrieben. Wer hat noch einen Tipp für mich? Sebastian
>Der AVR wird mit dem internen Oszillator bei 4MHz betrieben. Nimm besser einen Quarz. >Wer hat noch einen Tipp für mich? Lies das Datenblatt und stell die Baudrate richtig ein.
Die Baudrate ist mit ziemlicher Sicherheit richtig eingestellt, da ich sowohl den Codegenerator vom Codevision als auch den openavr-Code ausprobiert habe und beide den gleichen Fehler erzeugen.
>Die Baudrate ist mit ziemlicher Sicherheit richtig eingestellt
Dann läuft dein uC mit 8MHz und nicht mit 4MHz.
Schau dir mal im dissassemblierten Code an, auf was die Baudraten-Register gesetzt werden. Das mit den Tabellen im Datenblatt vergleichen. Wenn die tatsächlich stimmen, ist die µC-Frequenz falsch. Also falsche CLKDIV-Fuse, stark verstelltes OSCAL-Register etc... Ansonsten=>Baudraten-Quarz nehmen wenns funktionieren soll.
Der kann nur 8Mhz intern erzeugen. Ergibt dann meine doppelte Baudrate.
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.