)
-void suspend_idle(uint8_t time)
-{
- cli();
- set_sleep_mode(SLEEP_MODE_IDLE);
- sleep_enable();
- sei();
- sleep_cpu();
- sleep_disable();
-}
-
/* Power down MCU with watchdog timer
* wdto: watchdog timer timeout defined in <avr/wdt.h>
* WDTO_15MS
wdt_disable();
}
+static void standby(void)
+{
+ set_sleep_mode(SLEEP_MODE_STANDBY);
+ sleep_enable();
+ sei();
+ sleep_cpu();
+ sleep_disable();
+}
+
+static void idle(void)
+{
+ set_sleep_mode(SLEEP_MODE_IDLE);
+ sleep_enable();
+ sei();
+ sleep_cpu();
+ sleep_disable();
+}
+
+
+void suspend_idle(uint8_t time)
+{
+ idle();
+}
+
void suspend_power_down(void)
{
+#ifdef SUSPEND_MODE_STANDBY
+ standby();
+#elif defined(SUSPEND_MODE_IDLE)
+ idle();
+#else
power_down(WDTO_15MS);
+#endif
}
__attribute__ ((weak)) void matrix_power_up(void) {}