23 lines
544 B
C
23 lines
544 B
C
#include "FreeRTOS.h"
|
|
#include "task.h"
|
|
|
|
#include "stm32f4xx_hal.h"
|
|
|
|
#include "user_power_mgmt.h"
|
|
|
|
void vApplicationSleep(uint32_t xExpectedIdleTime) {
|
|
// Enter a critical section
|
|
__disable_irq();
|
|
|
|
eSleepModeStatus eSleepStatus = eTaskConfirmSleepModeStatus();
|
|
if(eSleepStatus == eAbortSleep) {
|
|
// Do nothing, just return.
|
|
}
|
|
else {
|
|
uint32_t actual_ms = user_pm_idle_timeout(xExpectedIdleTime / portTICK_RATE_MS);
|
|
vTaskStepTick(actual_ms);
|
|
}
|
|
|
|
// Exit critical section
|
|
__enable_irq();
|
|
} |