www.mikrocontroller.net

Forum: GCC Problemm mit dem UART atmega 32

Autor: Andreas (Gast)
Datum: 13.05.2008 22:25
Dateianhang: uart.c (1,5 KB, 45 Downloads) | formatierter Code

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: 14.05.2008 08:21

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 Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
  • Aussagekräftigen Betreff wählen
  • Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
  • JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
  • Schaltpläne, Screenshots usw. als PNG oder GIF anhängen

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel






webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net