Forum: Projekte & Code ror Befehl wird falsch interpretiert.


von Patrick Schulz (Gast)


Lesenswert?

Ich hab mir ein Programm geschrieben, das ein Bit muster in einem 
Register durch laufen läst und auf den D Porten ausgibt.
Aber irgendwie interpretiert AVR STudio den ror befehle falsch.

ich hab das muster 10001111 und er macht draus 01000111 bei allen 
weiteren ror macht er es dann wieder richtig.

Woran kann das liegen? an AVR Studio?

von mikki merten (Gast)


Lesenswert?

Ist schon richtig
bei ROR wird ja durch das C-Flag geschoben
also wenn du eine Register komplett rotieren lassen willst
sollte es so aussehen:

clc                 ;C-Flag löschen
sbrc    R16,0       ;Test ob Bit 0 gesetzt
sec                 ;Bit 0 = 1 --> C-Flag setzen

LOOP:

ROR     R16
RJMP    LOOP

von Patrick Schulz (Gast)


Lesenswert?

thx hat geklappt, aber noch eine frage wo durch wird das C-Flag gesetzt? 
also ausser clc und sec.

von Carsten Sprung (Gast)


Lesenswert?

Immer dann wenn bei einer Rechnung (add, sub, cp ...) ein Übertrag 
stattfindet.

Gruss Carsten

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.