core: Add suspend mode options
This commit is contained in:
parent
9818d54d26
commit
8f969d6544
@ -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
|
||||
* wdto: watchdog timer timeout defined in <avr/wdt.h>
|
||||
* WDTO_15MS
|
||||
@ -80,9 +70,39 @@ static void power_down(uint8_t wdto)
|
||||
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) {}
|
||||
|
Loading…
Reference in New Issue
Block a user