From ec43107559e4a5e455de0a9d9baa5582e46822d1 Mon Sep 17 00:00:00 2001 From: Bruce Luckcuck Date: Fri, 30 Aug 2019 13:39:30 -0400 Subject: [PATCH] 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 58e7802a92..02c7fb14a8 100644 --- a/src/main/scheduler/scheduler.c +++ b/src/main/scheduler/scheduler.c @@ -348,6 +348,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; @@ -355,7 +358,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;