From 4a640e385f63e747adfafafa450335d9eb0526ab Mon Sep 17 00:00:00 2001 From: Selene ToyKeeper Date: Sun, 1 Oct 2017 18:19:34 -0600 Subject: Use either full or quarter speed in nice delays, based on output level. This fixes issues with some blinky modes being audible (particularly biking and lightning modes), without sacrificing the power savings for other blinkies (like beacon and battcheck). --- spaghetti-monster/fsm-events.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/spaghetti-monster/fsm-events.c b/spaghetti-monster/fsm-events.c index e965224..b8e9018 100644 --- a/spaghetti-monster/fsm-events.c +++ b/spaghetti-monster/fsm-events.c @@ -125,16 +125,34 @@ uint8_t nice_delay_ms(uint16_t ms) { */ while(ms-- > 0) { #ifdef USE_DYNAMIC_UNDERCLOCKING + #ifdef USE_RAMPING + uint8_t level = actual_level; // volatile, avoid repeat access + if (level < QUARTERSPEED_LEVEL) { + CLKPR = 1<