From 89cb9a34644e173d411bb654fc1eb16c6383a8d5 Mon Sep 17 00:00:00 2001 From: "M.Schirmer" Date: Fri, 20 Jun 2025 20:20:23 +0200 Subject: [PATCH] =?UTF-8?q?F=C3=BCge=20Funktion=20zum=20Anhalten=20hinzu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.asm | 49 +++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 39 insertions(+), 10 deletions(-) diff --git a/main.asm b/main.asm index 206f55c..8b0eff6 100644 --- a/main.asm +++ b/main.asm @@ -7,16 +7,17 @@ .include "./m328Pdef.inc" .list -.def setter = R16 -.def overflows = R17 -.def active_led = R18 -.def btn_status = R19 -.def cur_direction = R20 +.def setter = R16 +.def overflows = R17 +.def active_led = R18 +.def btn_status = R19 +.def cur_direction = R20 .equ L2R = 0x01 .equ R2L = 0x04 .equ RBTN_PRESSED = 0b00000100 .equ LBTN_PRESSED = 0b00000001 +.equ BOTH_PRESSED = 0b00000101 .org 0x0000 rjmp init @@ -93,13 +94,41 @@ overflow_handler: ; Setze definierten Start für den ; Laufrichtungswechsel ;---- - cpi btn_status, LBTN_PRESSED - brne PC+2 - ldi cur_direction, L2R + check_left_btn: + cpi btn_status, LBTN_PRESSED + brne check_right_btn - cpi btn_status, RBTN_PRESSED - brne PC+2 + ; Linker Button wurde gedrückt + ldi cur_direction, L2R + in setter, PORTD + cpi setter, 0 + brne run_animation + + ; Lauflicht wurde zuvor gestopped und muss neu initialisiert werden + ldi setter, 0b00000001 + out PORTD, setter + rjmp run_animation + + check_right_btn: + cpi btn_status, RBTN_PRESSED + brne check_both_btn + + ; Rechter Button wurde gedrückt ldi cur_direction, R2L + in setter, PORTD + cpi setter, 0 + brne run_animation + + ; Lauflicht wurde zuvor gestopped und muss neu initialisiert werden + ldi setter, 0b10000000 + out PORTD, setter + rjmp run_animation + + check_both_btn: + cpi btn_status, BOTH_PRESSED + brne run_animation + ldi setter, 0 + out PORTD, setter ;------ run_animation: