mikrocontroller.net

Forum: Compiler & IDEs Problemm mit dem UART atmega 32


Autor: Andreas (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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 ;-)

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.