diff --git a/macros.inc b/macros.inc index 380ef4b..e81cc12 100644 --- a/macros.inc +++ b/macros.inc @@ -4,17 +4,19 @@ .macro left_to_right in @0, PORTD - rol @0 - brcc PC+2 - ldi @0, 0b00000001 - out PORTD, @0 -.endmacro - -.macro right_to_left - in @0, PORTD + clc ror @0 brcc PC+2 ldi @0, 0b10000000 out PORTD, @0 .endmacro +.macro right_to_left + in @0, PORTD + clc + rol @0 + brcc PC+2 + ldi @0, 0b00000001 + out PORTD, @0 +.endmacro + diff --git a/main.asm b/main.asm index b5cb1d8..206f55c 100644 --- a/main.asm +++ b/main.asm @@ -14,7 +14,7 @@ .def cur_direction = R20 .equ L2R = 0x01 -.equ R2L = 0b00000100 +.equ R2L = 0x04 .equ RBTN_PRESSED = 0b00000100 .equ LBTN_PRESSED = 0b00000001 @@ -38,8 +38,8 @@ init: ; ldi setter, 0b11111010 ser setter out DDRB, setter ; PB0 und PB2 als Inputs definieren - ; ldi setter, 0b00000101 - ; out PORTB, setter ; Interne Pullups aktivieren + ldi setter, 0b00000101 + out PORTB, setter ; Interne Pullups aktivieren clr setter out PORTB, setter @@ -94,16 +94,12 @@ overflow_handler: ; Laufrichtungswechsel ;---- cpi btn_status, LBTN_PRESSED - brne PC+3 - ldi setter, 0b10000000 + brne PC+2 ldi cur_direction, L2R cpi btn_status, RBTN_PRESSED - brne PC+3 - ldi setter, 0b00000001 + brne PC+2 ldi cur_direction, R2L - - out PORTD, setter ;------ run_animation: