STM32F407ZET6_MRB/Core/Src/user_freertos_support.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();
}