Hallo,
bits schieben in Registern kannst Du mit den Befehlen
lsl (=Logical shift left)
lsr (=Logical shift right)
rol (=links rollen, der nimmt das Carry Flag mit)
ror (=rechts rollen, der nimmt das Carry Flag mit)
Genaueres steht im Instruction Set Summary von Atmel.
Verzögerungsschleifen können so aussehen:
(wartet etwa 0,5 s bei 4 MHZ)
;*************************************************
;*** Delay: 2000000 Cycles
;*************************************************
;*** inner loop: 196
;*** middle loop: 188
;*** outer loop: 18
;*** difference: 2
;*************************************************
ldi R16, 18
DelayLoop0:
ldi R17, 18
DelayLoop1:
ldi R18, 19
DelayLoop2:
dec R18
brne DelayLoop2
dec R16
brne DelayLoop1
dec
brne DelayLoop0
Kann man aber auch mit Timern machen
Gruss
Andreas