1
0

core: Add suspend mode options

This commit is contained in:
tmk 2016-10-04 16:05:18 +09:00
parent 9818d54d26
commit 8f969d6544

View File

@ -30,16 +30,6 @@ __asm__ __volatile__ ( \
) )
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 /* Power down MCU with watchdog timer
* wdto: watchdog timer timeout defined in <avr/wdt.h> * wdto: watchdog timer timeout defined in <avr/wdt.h>
* WDTO_15MS * WDTO_15MS
@ -80,9 +70,39 @@ static void power_down(uint8_t wdto)
wdt_disable(); 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) void suspend_power_down(void)
{ {
#ifdef SUSPEND_MODE_STANDBY
standby();
#elif defined(SUSPEND_MODE_IDLE)
idle();
#else
power_down(WDTO_15MS); power_down(WDTO_15MS);
#endif
} }
__attribute__ ((weak)) void matrix_power_up(void) {} __attribute__ ((weak)) void matrix_power_up(void) {}