ror Befehl wird falsch interpretiert.

Gast #41688
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?
Gast #41689
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren