sei();
#if 1
while (1) {
- wdt_reset();
- sleep_mode();
+ cli();
+ if (pwm_enabled) {
+ set_sleep_mode(SLEEP_MODE_IDLE);
+ } else if (adc_enabled) {
+ set_sleep_mode(SLEEP_MODE_ADC);
+ } else {
+ set_sleep_mode(SLEEP_MODE_PWR_DOWN);
+ }
+
+ sleep_enable();
+ // keep BOD active, no sleep_bod_disable();
+ sei();
+ sleep_cpu();
+ sleep_disable();
}
#endif