diff options
Diffstat (limited to 'main.c')
| -rw-r--r-- | main.c | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -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(); } |
