]> www.fi.muni.cz Git - tinyboard.git/blobdiff - projects/step-up/main.c
WIP: on-demand sleep modes
[tinyboard.git] / projects / step-up / main.c
index e5141024d74f214e08e75162cc7f25f824289ed5..c1ee381453a334bf43493ddb93e287f9fa2bea62 100644 (file)
@@ -71,7 +71,18 @@ int main(void)
        sei();
 #if 1
        while (1) {
-               sleep_mode();
+               cli();
+               if (pwm_running) {
+                       set_sleep_mode(SLEEP_MODE_IDLE);
+               } else if (adc_running) {
+                       set_sleep_mode(SLEEP_MODE_ADC);
+               } else {
+                       set_sleep_mode(SLEEP_MODE_PWR_DOWN);
+               }
+               // keep BOD active, no sleep_bod_disable();
+               sei();
+               sleep_cpu();
+               sleep_disable();
        }
 #endif