aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSelene ToyKeeper2017-09-25 05:27:03 -0600
committerSelene ToyKeeper2017-09-25 05:27:03 -0600
commit608ea9202f71e6267058fcaa63c91a22fea963cf (patch)
tree6c3ca66327a4796323124cc06f76d62118028ce9
parentMoved halfspeed thing so it'll affect goodnight mode too. (diff)
downloadanduril-608ea9202f71e6267058fcaa63c91a22fea963cf.tar.gz
anduril-608ea9202f71e6267058fcaa63c91a22fea963cf.tar.bz2
anduril-608ea9202f71e6267058fcaa63c91a22fea963cf.zip
Dropped moon power another 0.5 mA.
Fixed clock speed related brightness glitch when turning on at moon mode.
-rw-r--r--spaghetti-monster/anduril/anduril.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/spaghetti-monster/anduril/anduril.c b/spaghetti-monster/anduril/anduril.c
index 1cc9d7c..7833f4f 100644
--- a/spaghetti-monster/anduril/anduril.c
+++ b/spaghetti-monster/anduril/anduril.c
@@ -37,6 +37,7 @@
#define USE_EEPROM
#define EEPROM_BYTES 12
#define USE_IDLE_MODE
+#define MOON_POWERSAVE // cut clock speed at very low modes for better efficiency
//#define HALFSPEED_LEVEL 30 // looks good, but sounds bad
#define HALFSPEED_LEVEL 14
#include "spaghetti-monster.h"
@@ -962,16 +963,21 @@ void loop() {
#ifdef USE_IDLE_MODE
else if ((state == steady_state)
+ || (state == off_state)
|| (state == goodnight_state)) {
- if (actual_level < HALFSPEED_LEVEL) {
+ #ifdef MOON_POWERSAVE
+ if (actual_level < 5) {
+ // run at quarter speed
+ CLKPR = 1<<CLKPCE; CLKPR = 2;
+ }
+ else if (actual_level < HALFSPEED_LEVEL) {
// run at half speed
- CLKPR = 1<<CLKPCE;
- CLKPR = 1;
+ CLKPR = 1<<CLKPCE; CLKPR = 1;
} else {
// run at full speed
- CLKPR = 1<<CLKPCE;
- CLKPR = 0;
+ CLKPR = 1<<CLKPCE; CLKPR = 0;
}
+ #endif
// doze until next clock tick
idle_mode();
}