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
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.