diff --git a/src/main/interface/cli.c b/src/main/interface/cli.c index 266e7aaf11..eb881d9be8 100644 --- a/src/main/interface/cli.c +++ b/src/main/interface/cli.c @@ -3634,6 +3634,8 @@ static void cliTasks(char *cmdline) if (taskId == TASK_GYROPID && pidConfig()->pid_process_denom > 1) { cliPrintLinef(" - (%15s) %6d", taskInfo.subTaskName, subTaskFrequency); } + + schedulerResetTaskMaxExecutionTime(taskId); } } if (systemConfig()->task_statistics) { diff --git a/src/main/scheduler/scheduler.c b/src/main/scheduler/scheduler.c index 7f2dabaf5b..8a9f277db9 100644 --- a/src/main/scheduler/scheduler.c +++ b/src/main/scheduler/scheduler.c @@ -221,6 +221,19 @@ void schedulerResetTaskStatistics(cfTaskId_e taskId) #endif } +void schedulerResetTaskMaxExecutionTime(cfTaskId_e taskId) +{ +#ifdef SKIP_TASK_STATISTICS + UNUSED(taskId); +#else + if (taskId == TASK_SELF) { + currentTask->maxExecutionTime = 0; + } else if (taskId < TASK_COUNT) { + cfTasks[taskId].maxExecutionTime = 0; + } +#endif +} + void schedulerInit(void) { calculateTaskStatistics = true; diff --git a/src/main/scheduler/scheduler.h b/src/main/scheduler/scheduler.h index 3477bb3bd8..a94c0fc855 100644 --- a/src/main/scheduler/scheduler.h +++ b/src/main/scheduler/scheduler.h @@ -177,6 +177,7 @@ void setTaskEnabled(cfTaskId_e taskId, bool newEnabledState); timeDelta_t getTaskDeltaTime(cfTaskId_e taskId); void schedulerSetCalulateTaskStatistics(bool calculateTaskStatistics); void schedulerResetTaskStatistics(cfTaskId_e taskId); +void schedulerResetTaskMaxExecutionTime(cfTaskId_e taskId); void schedulerInit(void); void scheduler(void);