Forum: Mikrocontroller und Digitale Elektronik UCSRC und UBRRH beim mega16


von daniel (Gast)


Lesenswert?

hallo,ich versuche gerade Daten zwischen 2 ATmega16 auszutauschen. Es 
gelingt mir aber nicht, die beiden Register UBRRH und UCSRC einzeln 
anzusprechen. Wenn ich schreibe:

ldi r6,174       ;even parity  2 stop bits  8 datenbits
out UCSRC,r16

beschreibt der AVR Simulator vom AVR Studio 4 die beiden Register 
gleichzeitig. Dieser Fehler ist mir aber bekannt. Leider machen das die 
uC's genau so. Es ist egal, ob ich das URSEL-bit beim schreiben setze, 
oder nicht, immer werden beide Register gleichzeitig beschrieben.

kann mir jemand vielleicht sagen was ich da falsch machen könnte?
danke schon mal an alle, die sich darüber Gedanken machen

von daniel (Gast)


Lesenswert?

ups.. es muss ldi r16,174 heißen

von johnny.m (Gast)


Lesenswert?

Um Himmels willen, schreib NIEMALS ein Steuerregister, in dem einzelne 
Bits gesetzt werden sollen, mit Dezimalwerten! Da muss jeder erst mal 
rumrechnen, um rauszufinden, welche Bits da denn jetzt gesetzt sind! 
Entweder hexadezimal oder binär, wobei man bei letzterem auf den ersten 
Blick erkennen kann, was da passiert.

Ansonsten sehe ich bei dem obigen Beispiel keinen Fehler. Es sollte beim 
Schreiben eigentlich auf UCSRC zugegriffen werden. Ich habe bisher auch 
noch keine Probleme mit dem Schreiben von UCSRC und UBRRH gehabt.

von daniel (Gast)


Lesenswert?

mit dem umrechnen hab ich keine Probleme. Jedenfalls wird die 
Übertragung durch den Wert im UBRRH Register so langsam, dass ich ihr 
schon fast dabei zusehen kann.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Du mußt UBRRH immer gefolgt von UBRRL direkt nacheinander beschreiben. 
Ist ein 16-Bit Register welches eine "atomische" Schreiboperation 
erfordert.

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.