Forum: Mikrocontroller und Digitale Elektronik atmega48 UART: Probleme mit der Baudrate


von kirschsaft (Gast)


Angehängte Dateien:

Lesenswert?

Hey Leute,

ich benötige mal wieder euere Hilfe. Ich möchte die UART Schittstelle 
eines atmega48 zum Laufen bekommen. Zum testen hab ich das Programm 
einfach so geschrieben, das alles was der Chip empfängt sofort wieder 
zurrück sendet. Allerdings gibts dabei leider ein Problem, welches ich 
nicht weg bekomme. Wenn ich im Chip eine Baudrate von 115200 einstell 
und das gleiche auch im Hercules Terminal, empfang ich nur Nullen. Wenn 
ich die Baudrate am Hercules Terminal auf 14400 einstell funktioniert 
das ganze wunderbar. Der atmega48 wird mit einem 20MHz Quarz an den Xtal 
Pins betrieben. Als Grundlage meiner c und h datei hab ich das Programm 
von mikrocontroller.net verwendet und auf die Registernamen des atmega48 
umgeschrieben. Anbbei sind die c und h Datei. In der main datei wird nur 
die uart_init() aufgerufen. Danke schon mal im voraus.

von Thomas E. (thomase)


Lesenswert?

kirschsaft schrieb:
> Wenn ich die Baudrate am Hercules Terminal auf 14400 einstell
> funktioniert das ganze wunderbar.
115200 / 8 = 14400
Klingelt es?

Nein? CKDIV8-Fuse!

mfg.

von kirschsaft (Gast)


Lesenswert?

huhu Thomas,

Danke für die schnelle Antwort^^. Also das 14400 ein achtel von 115200 
ist, ist mir auch aufgefallen. Als ich dann bei #define F_CPU anstatt 
20MHz 2,5Mhz hin geschrieben gings auch. Aber das es so ein Bit in den 
Fuses gibt wusste ich leider nicht. Naja jetzt geht das Ganze und ich 
hab gleich noch was dazu gelernt :). Nochmals vielen Dank.

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
Noch kein Account? Hier anmelden.