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


von AVRli (Gast)


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

von johnny.m (Gast)


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.

von johnny.m (Gast)


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."

von AVRli (Gast)


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

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.