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