From 954f8d1d1ae6ae05f5fc814bc9d00b2de4ad471e Mon Sep 17 00:00:00 2001 From: schneider <schneider@blinkenlichts.net> Date: Sat, 31 Jul 2021 19:30:43 +0200 Subject: [PATCH] account for sleep time in freertos --- epicardium/drivers/sleep.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/epicardium/drivers/sleep.c b/epicardium/drivers/sleep.c index fc6c5d83b..003aac49c 100644 --- a/epicardium/drivers/sleep.c +++ b/epicardium/drivers/sleep.c @@ -157,7 +157,7 @@ static void gpio_low_power(void) } } -void sleep_lightsleep(uint32_t ms) +uint32_t sleep_lightsleep(uint32_t ms) { /* Initialize Wakeup timer */ WUT_Init(WUT_PRES_1); @@ -220,7 +220,7 @@ void sleep_lightsleep(uint32_t ms) #endif SchWake(); } - + return (WUT_GetCount() * 1000) / SYS_WUT_GetFreq(); } void epic_sleep_lightsleep(uint32_t ms) @@ -244,9 +244,13 @@ void epic_sleep_lightsleep(uint32_t ms) vTaskSuspendAll(); WDT_ResetTimer(MXC_WDT0); - sleep_lightsleep(ms); + ms = sleep_lightsleep(ms); WDT_ResetTimer(MXC_WDT0); + for(uint32_t t = 0; t < ms; t++) { + xTaskIncrementTick(); + } + xTaskResumeAll(); SysTick->VAL = 0; -- GitLab