diff --git a/src/main/scheduler/scheduler.c b/src/main/scheduler/scheduler.c index c8e11f3ca3..24118b268c 100644 --- a/src/main/scheduler/scheduler.c +++ b/src/main/scheduler/scheduler.c @@ -257,7 +257,11 @@ void schedulerOptimizeRate(bool optimizeRate) inline static timeUs_t getPeriodCalculationBasis(const cfTask_t* task) { - return *(timeUs_t*)((uint8_t*)task + periodCalculationBasisOffset); + if (task->staticPriority == TASK_PRIORITY_REALTIME) { + return *(timeUs_t*)((uint8_t*)task + periodCalculationBasisOffset); + } else { + return task->lastExecutedAt; + } } FAST_CODE void scheduler(void)