www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UCSRC und UBRRH Beispiel aus de Datenblatt...


Autor: AVRli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich hab schon etwas Erfahrung in Sachen RS232 und AVR, bis jetzt lief es 
mit der INITIALSIERUNG immer so wie man es erwartet hat.

Nun habe ich einen ATmega16 zum spielen hier und wollte bei dem auch mal 
die RS232 Sache nutzen.

Ich bekomme es einfach nicht gebacken das er das Shared Register 
UBRRH/UCRSC richtig beschreibt.

Im Simulator tut sich nicht's wenn man nach "out UCSRC,r16" reinschaut.
Ist das normal? Wie macht man das richtig.

Das Beispiel ist aus dem Datenblatt, die werden da doch kein Blödsinn 
reinschreiben?!?

Das entscheidene ist ja wohl das man das URSEL Bit setzt wenn man auf 
UCSRC schreiben möchte, das klappt aber nicht :(


USART_Init:
; Set baud rate   19200@16MHz
ldi r17,0
ldi r16,103

out UBRRH, r17
out UBRRL, r16
; Enable receiver and transmitter
ldi r16, (1<<RXEN)|(1<<TXEN)
out UCSRB,r16
; Set frame format: 8data, 2stop bit
ldi r16, (1<<URSEL)|(1<<USBS)|(3<<UCSZ0)
out UCSRC,r16
ret

Ich glaub das das der Grund ist warum ich nichts empfange und nichts 
senden kann...

Für jeden Tip dankbar, MfG AVRli

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal in der AVRStudio-Hilfe bei "AVR Tools User Guide | Simulator | 
Known Issues". Afair gibt es im Simulator tatsächlich ein Problem mit 
UCSRC/UBRRH.

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zitat aus der Hilfe: "The USART's UBRRH and UCSRC registers share the 
same I/O address. Writing to one of the registers will cause both 
registers to contain the new value, regardless of the value of URSEL. 
Reading these registers do not work as described in the datasheet."

Autor: AVRli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo johnny.m,

ja ok, soweit hab ich nun nicht gelesen, in der Tat, es funktioniert 
alles.
Daten werden ausgetauscht usw.

Ich hatte einen Dreher auf dem Board, RxD,TxD... das war der Grund warum 
nichts raus und rein ging logisch. ;-)

Ich habe die Bits nun so gesetzt wie oben beschrieben, auch wenn der 
Simulator "Müll" anzeigt, der µC ackert wohl richtig.

Danke!

MfG AVRli

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.