From 20d86bf1e3dfdfb4c0a3ea557b54f0bea0f5c214 Mon Sep 17 00:00:00 2001 From: Akshay Nair Date: Sun, 8 Feb 2026 16:18:49 +0530 Subject: Handle button state --- src/main.c | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index cf6f7a8..6f621af 100644 --- a/src/main.c +++ b/src/main.c @@ -3,6 +3,7 @@ #include #include +#include "button.h" #include "display.h" #include "rtc.h" @@ -15,17 +16,14 @@ FUSES = { .extended = 0xff, }; -// Display -// timer 0 has lower priority than timer 1, so some ticks could get skipped due -// to interrupt starvation +// Display interrupt +// Timer 0 has lower priority than timer 1, so some ticks could get skipped on +// interrupt starvation ISR(TIM0_COMPA_vect, ISR_FLATTEN) { display_render(); } // RTC interrupt ISR(TIM1_COMPA_vect, ISR_FLATTEN) { rtc_increment(); } -#define IS_BUTTON_ON() ((PINA & (1 << PA0)) == 0) -#define ENABLE_BUTTON() (DDRA &= ~(1 << PA0)) - int main(void) { PRR = 0b0011; // Power reduction register. Shut down USI and ADC @@ -35,20 +33,16 @@ int main(void) { sei(); while (1) { - // ENABLE_BUTTON(); - // if (IS_BUTTON_ON()) { - // cli(); - // ENABLE_BUTTON(); - // _delay_ms(25); // Debounced - // if (IS_BUTTON_ON()) { - // seconds += 1; - // sei(); - // _delay_ms(50); - // continue; - // } + // switch (button_tick()) { + // case BUTTON_PRESSED: + // seconds += 5; + // break; + // case BUTTON_LONG_PRESSED: + // seconds += 10; + // break; + // default: + // break; // } - // sei(); - #ifdef STUBBED stub_run_timers(); _delay_ms(100); -- cgit v1.3.1