diff options
| author | Akshay Nair <phenax5@gmail.com> | 2026-02-27 11:42:13 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2026-02-27 11:42:13 +0530 |
| commit | 02c12bfedcf669df81491ea49502a982e980bcda (patch) | |
| tree | 109a6a0564a79d455b6ada92ff97c7c25f36c6b0 /src/button.c | |
| parent | 124c45a43829b58558b35a75c2369c1bf1ba86ef (diff) | |
| download | daft-watch-02c12bfedcf669df81491ea49502a982e980bcda.tar.gz daft-watch-02c12bfedcf669df81491ea49502a982e980bcda.zip | |
Refactor button
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; |
