From d03bca4d47f16efd5cd081864b45f7dc2afd0dee Mon Sep 17 00:00:00 2001 From: Sadeep Madurange Date: Sat, 14 Jun 2025 14:18:39 +0800 Subject: Clear and enable interrupts in IRQ handlers. --- main.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'main.c') diff --git a/main.c b/main.c index 86695c0..6a07711 100644 --- a/main.c +++ b/main.c @@ -138,25 +138,33 @@ static inline int is_pressed(uint8_t btn) ISR(FPM_INT_VEC) { + cli(); + if (fpm_match()) { unlock(); fpm_led(BREATHE, BLUE, 1); } else { fpm_led(BREATHE, RED, 1); } + + sei(); } ISR(BTN_INT_VEC) { uint16_t id; + cli(); + if (is_pressed(FRONT_LOCK_PIN)) { lock(); fpm_led(FLASH, RED, 1); } else if (is_pressed(BACK_LOCK_PIN)) { lock(); + fpm_led(FLASH, RED, 1); } else if (is_pressed(BACK_UNLOCK_PIN)) { unlock(); + fpm_led(FLASH, BLUE, 1); } else if (is_pressed(ENROLL_PIN)) { id = fpm_match(); if (id == 1 || id == 2) { @@ -169,4 +177,6 @@ ISR(BTN_INT_VEC) } else fpm_led(BREATHE, RED, 1); } + + sei(); } -- cgit v1.2.3