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
|
/* 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) {}
|
||||||
|
Loading…
Reference in New Issue
Block a user