Hi Udo,
Achtung hier lauert eine gemeine Falle im AVR-Assembler Befehlssatz.
Der Befehl SBR Rd,K (und auch CBR, SBI, CBI) hat eine andere Syntax
als der Befehl SBRS Rr,b (SBRC, SBIS, SBIC).
Der Befehl "SBR Rd,K" dient zum Setzen eines oder mehrerer! Bits
in einem Register.
Der Parameter K ist eine Bitmaske in der eines oder mehrere Bits gesetzt sein können.
Der Wertebereich für K liegt von 0 bis 255.
"SBR Rd,K" ist nur ein anderer Ausdruck für "ORI Rd,K".
Der Parameter b in dem Befehl "SBRS r,b" ist dagegen eine Bitnummer.
b kann nur die Werte 0 bis 7 annehmen. ( Bit0 bis Bit7 )
Wenn du also mit "SBR 20,1" Bit0 in Reg20 setzt,
dann lautet der entsprechende Skip-Befehl für dieses Bit "SBRS 20,0".
Einmal 1 als Bitmaske für Bit0 und einmal 0 als Bitnummer für Bit0
Ist aber auch im Datenblatt genau beschrieben.
Puh... ich hoffe das ist verständlich und trifft dein Problem.
Gruß Jan
Lesezeichen