From cfedb2eaf4a0d62969ff05307ac40d4f1cdab2d9 Mon Sep 17 00:00:00 2001 From: Selene ToyKeeper Date: Sun, 17 Jun 2018 18:18:38 -0600 Subject: Implemented halfsleep mode. Will probably change it quite a bit though, so I'm checking in changes first. Needs to be "tick during standby" instead of "half sleep". --- spaghetti-monster/fsm-wdt.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'spaghetti-monster/fsm-wdt.c') diff --git a/spaghetti-monster/fsm-wdt.c b/spaghetti-monster/fsm-wdt.c index ff96ffb..06b0b6d 100644 --- a/spaghetti-monster/fsm-wdt.c +++ b/spaghetti-monster/fsm-wdt.c @@ -45,6 +45,23 @@ inline void WDT_off() // clock tick -- this runs every 16ms (62.5 fps) ISR(WDT_vect) { + #ifdef USE_HALFSLEEP_MODE + f_wdt = 1; // WDT event happened + + static uint16_t sleep_counter = 0; + // handle halfsleep mode specially + if (halfsleep_mode) { + // emit a halfsleep tick, and process it + emit(EV_halfsleep_tick, sleep_counter); + sleep_counter ++; + process_emissions(); + //if (! halfsleep_mode) + // sleep_counter = 0; + return; + } + sleep_counter = 0; + #endif + // detect and emit button change events uint8_t was_pressed = button_last_state; uint8_t pressed = button_is_pressed(); -- cgit v1.2.3 From 3dcfc924bf18c48b76f4b950471160436fddb316 Mon Sep 17 00:00:00 2001 From: Selene ToyKeeper Date: Sun, 17 Jun 2018 19:40:38 -0600 Subject: Changed halfsleep mode to TICK_DURING_STANDBY. Added blinking indicator LED support to Anduril. --- spaghetti-monster/fsm-wdt.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) (limited to 'spaghetti-monster/fsm-wdt.c') diff --git a/spaghetti-monster/fsm-wdt.c b/spaghetti-monster/fsm-wdt.c index 06b0b6d..e8419bc 100644 --- a/spaghetti-monster/fsm-wdt.c +++ b/spaghetti-monster/fsm-wdt.c @@ -33,6 +33,18 @@ void WDT_on() //sei(); // Enable interrupts } +#ifdef TICK_DURING_STANDBY +inline void WDT_slow() +{ + // interrupt slower + //cli(); // Disable interrupts + wdt_reset(); // Reset the WDT + WDTCR |= (1<