Replace wfi by wfe for faster wakeup time

This commit is contained in:
Steins7 2024-11-03 13:01:12 +01:00
parent 3303bf6435
commit 70e6cd2d19

View File

@ -26,7 +26,7 @@ static volatile struct PWR* regs = (struct PWR*)PWR_BASE_ADDRESS;
void pwr_sleep(void) void pwr_sleep(void)
{ {
scb_configure_deepsleep(false); scb_configure_deepsleep(false);
__asm("wfi"); __asm("wfe");
} }
void pwr_stop(enum PwrWakeupSpeed speed) void pwr_stop(enum PwrWakeupSpeed speed)
@ -35,7 +35,7 @@ void pwr_stop(enum PwrWakeupSpeed speed)
scb_configure_deepsleep(true); scb_configure_deepsleep(true);
regs->CR.PDDS = 0; regs->CR.PDDS = 0;
regs->CR.LPDS = speed; regs->CR.LPDS = speed;
__asm("wfi"); __asm("wfe");
rcc_configure(RCC_PRESET_SPEED); rcc_configure(RCC_PRESET_SPEED);
} }
@ -44,7 +44,7 @@ void pwr_standby(void)
rcc_enable(RCC_AHB_NONE, RCC_APB1_PWR, RCC_APB2_NONE); rcc_enable(RCC_AHB_NONE, RCC_APB1_PWR, RCC_APB2_NONE);
scb_configure_deepsleep(true); scb_configure_deepsleep(true);
regs->CR.PDDS = 1; regs->CR.PDDS = 1;
__asm("wfi"); __asm("wfe");
rcc_configure(RCC_PRESET_SPEED); rcc_configure(RCC_PRESET_SPEED);
} }