diff options
Diffstat (limited to 'src/button.c')
| -rw-r--r-- | src/button.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/button.c b/src/button.c index 34d799c..dc52265 100644 --- a/src/button.c +++ b/src/button.c @@ -1,18 +1,14 @@ #include <avr/io.h> #include <stdint.h> -#include "avr/interrupt.h" #include "button.h" #include "rtc.h" -bool is_button_active = false; - -uint16_t button_tick_count = 0; - -ISR(PCINT0_vect, ISR_FLATTEN) { button_tick(); } +enum ButtonState check_button_state(); void button_tick() { - switch (check_button_state()) { + enum ButtonState button_state = check_button_state(); + switch (button_state) { case BUTTON_PRESSED: if (seconds <= 10) seconds = 0; @@ -27,6 +23,9 @@ void button_tick() { } } +bool is_button_active = false; +uint16_t button_tick_count = 0; + enum ButtonState check_button_state() { if (is_button_active && button_tick_count >= LONG_PRESS_TICK_COUNT) { button_tick_count = 0; |
