Problemm mit dem UART atmega 32

Gast #866349
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 ;-)
Angehängte Dateien:
#866500
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren