From 74d71fc3eb68b584e9340bc159c9a2396c9c34d1 Mon Sep 17 00:00:00 2001 From: Bruce Luckcuck Date: Sat, 4 May 2019 09:13:07 -0400 Subject: [PATCH] Change scheduler_optimze_rate to only affect realtime tasks Reduces CPU load by not rate optimizing non timing-critical tasks. --- src/main/scheduler/scheduler.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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)