diff --git a/epicardium/drivers/sleep.c b/epicardium/drivers/sleep.c index fc6c5d83ba34cfae5796330935e12a2a7ee1533f..003aac49c3d9eb336c48fb5de2d74053975d9663 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;