Forum: Compiler & IDEs Problemm mit dem UART atmega 32


von Andreas (Gast)


Angehängte Dateien:

Lesenswert?

Hallo

habe hier eine Frage.

ich programmiere einen atmega32 und muss meine Daten an dem PC ausgeben.

Nun zu meinem Problem, den Quelcode könnt ihr in dem Anhang anschauen, 
was mich jetzt stört und wo ich nicht weiter komme, ist folgendes.
Ich möchte meinen mc mit einer Baudratte von 9600 z.B. betreiben, so wie 
ich es aus der Datasheet verstanden habe steht das USREL bit für die 
Auswahl zwieschen dem UCSRC Register oder dem UBRRH Register.
Ich benutze CVAVR mit der AVR Studio.
Wenn ich die Schritte simuliere dann kommt folgendes raus.
Nachdem das UBRRH Register mit einer Null initialisiert wirt, erfolgt 
die Initialisirung für das UCSRC, da taucht auch die Frage auf:
gleichzeitig mit dem setzen der Bits UCSZ0/1 werden zwei gleichwertige 
Bits in dem UBRRH gesetzt.
Mach ich die Initialisierung umgekehrt erst UCSRC und dann UBRRH, dann 
werden alle bits in dem UCSRC Register auf Null gesetzt.
Ich hab schon mit verschiedenen initialisierungs möglichkeiten probiert 
aber es ist immer das selbe.

Bitte um Erleuchtung ;-)

von Johannes M. (johnny-m)


Lesenswert?

Andreas wrote:
> Hallo
>
> habe hier eine Frage.
>
> ich programmiere einen atmega32 und muss meine Daten an dem PC ausgeben.
>
> Nun zu meinem Problem, den Quelcode könnt ihr in dem Anhang anschauen,
> was mich jetzt stört und wo ich nicht weiter komme, ist folgendes.
> Ich möchte meinen mc mit einer Baudratte von 9600 z.B. betreiben, so wie
> ich es aus der Datasheet verstanden habe steht das USREL bit für die
> Auswahl zwieschen dem UCSRC Register oder dem UBRRH Register.
Das Bit heiß URSEL (UART Register SELect), aber ansonsten stimmen 
Deine Vermutungen.

> Ich benutze CVAVR mit der AVR Studio.
Und was hat die Frage dann im GCC-Forum verloren?

> Wenn ich die Schritte simuliere dann kommt folgendes raus.
> Nachdem das UBRRH Register mit einer Null initialisiert wirt, erfolgt
> die Initialisirung für das UCSRC, da taucht auch die Frage auf:
> gleichzeitig mit dem setzen der Bits UCSZ0/1 werden zwei gleichwertige
> Bits in dem UBRRH gesetzt.
Jo, das ist ein altbekannter Bug im AVRStudio-Simulator. Der ist selbst 
ATMEL seit langem bekannt und steht auch in der AVRStudio-Hilfe unter 
"AVR Tools User Guide | Simulator | Known Issues". Simulation vom UART 
ist generell etwas problematisch.

> Mach ich die Initialisierung umgekehrt erst UCSRC und dann UBRRH, dann
> werden alle bits in dem UCSRC Register auf Null gesetzt.
> Ich hab schon mit verschiedenen initialisierungs möglichkeiten probiert
> aber es ist immer das selbe.
Siehe oben.

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.