Gast
#1468441
Ich habe hier einen Mega 644P auf einem Pollin-Funkevalboard bei 12 MHz am laufen. Schnell etwas Code vom Mega8 portiert, u.a. ein paar Routinen für die UART. Alles funkioniert beinahe wie erwartet - wäre da nicht ein kleiner Schönheitsfehler: die Baudrate auf der UART ist um den Faktor 8 langsamer, als nach Formel aus dem Datenblatt berechnet. Ich schreibe also den Wert 77 für 9600 Baud ins UBRR0-Register - und erhalte oh Wunder exakt 1200 Baud an der Schnittstelle. Ich habe inzwischen sogar die Frequenz des Quarzes angezweifelt - aber der Oszi zeigt ein einwandfreies Signal mit 12 MHz an den Clock-Pins. Ebenso habe ich die Baudrate nachgemessen, ein Bit ist knapp eine ms lang, also 1200 Baud. Nach stundenlagem Brüten über dem Datenblatt bin ich mittlerweile recht ratlos - daher hier mal mein Code zur UART-Initialisierung, vielleicht fällt jemandem ja was dran auf...
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |