-
-
Hallo
also ich bin mir nicht so sicher, aber da ich mich vor kurzem auch mit der UART des Atmega32 beschäftigt habe, habe ich das ganze mal mit meinem Programm verglichen. Ich weis allerdings nicht, ob diese Änderungen überhaupt eine Rolle spielen.
1. Ich habe statt #define UART_BAUD_RATE 9600L
das hier bei mir stehen #define BAUD 19200UL
Demzufolge würde bei dir ein U fehlen. Genau das selbt wäre bei der Frequenz #define F_CPU 3686400L : U fehlt
2. uint16_t ubrr = (uint16_t) ((uint32_t)F_CPU/(16*UART_BAUD_RATE) - 1);
Bei dieser Zeile habe ich zwei Klammern mehr, die Zeile sieht, wenn man sie so schreiben würde bei mir dann so aus:
uint16_t ubrr = (uint16_t) (((uint32_t)F_CPU/(16*UART_BAUD_RATE)) - 1);
Dadurch subtrahiert er nämlich erst nach der Division.
Ich weis allerdings nicht, ob das überhaupt damit zu tun hat, es sind nur kleine Unterschiede, die mir zu meinem Programm aufgefallen sind.
Wenn du möchtest, kann ich dir mal das Programm von mir schicken.
Gruß Micro5
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen