From 2a64051a2280192a5738d0241f13a1889217417b Mon Sep 17 00:00:00 2001 From: Michael Keller Date: Sun, 1 Sep 2019 11:01:24 +1200 Subject: [PATCH] Fix tasks period calculation (#8782) Fix tasks period calculation --- src/main/scheduler/scheduler.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/scheduler/scheduler.c b/src/main/scheduler/scheduler.c index e0f1e6c3fb..ee2380539d 100644 --- a/src/main/scheduler/scheduler.c +++ b/src/main/scheduler/scheduler.c @@ -344,6 +344,9 @@ FAST_CODE void scheduler(void) if (selectedTask) { // Found a task that should be run selectedTask->taskLatestDeltaTime = currentTimeUs - selectedTask->lastExecutedAt; +#if defined(USE_TASK_STATISTICS) + float period = currentTimeUs - selectedTask->lastExecutedAt; +#endif selectedTask->lastExecutedAt = currentTimeUs; selectedTask->lastDesiredAt += (cmpTimeUs(currentTimeUs, selectedTask->lastDesiredAt) / selectedTask->desiredPeriod) * selectedTask->desiredPeriod; selectedTask->dynamicPriority = 0; @@ -351,7 +354,6 @@ FAST_CODE void scheduler(void) // Execute task #if defined(USE_TASK_STATISTICS) if (calculateTaskStatistics) { - float period = currentTimeUs - selectedTask->lastExecutedAt; const timeUs_t currentTimeBeforeTaskCall = micros(); selectedTask->taskFunc(currentTimeBeforeTaskCall); const timeUs_t taskExecutionTime = micros() - currentTimeBeforeTaskCall;