From c544f3dd017c5edd164ad018bf6c7d3a3f4e328e Mon Sep 17 00:00:00 2001 From: Tamas Nepusz Date: Tue, 8 Jun 2021 22:44:36 +0200 Subject: [PATCH] AP_Scheduler: corrected tick counter overflow handling, fixes #17642 --- libraries/AP_Scheduler/AP_Scheduler.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/AP_Scheduler/AP_Scheduler.cpp b/libraries/AP_Scheduler/AP_Scheduler.cpp index a4759e483f..9b754b86fc 100644 --- a/libraries/AP_Scheduler/AP_Scheduler.cpp +++ b/libraries/AP_Scheduler/AP_Scheduler.cpp @@ -160,7 +160,7 @@ void AP_Scheduler::run(uint32_t time_available) for (uint8_t i=0; i<_num_tasks; i++) { const AP_Scheduler::Task& task = (i < _num_unshared_tasks) ? _tasks[i] : _common_tasks[i - _num_unshared_tasks]; - uint32_t dt = _tick_counter - _last_run[i]; + const uint16_t dt = _tick_counter - _last_run[i]; // we allow 0 to mean loop rate uint32_t interval_ticks = (is_zero(task.rate_hz) ? 1 : _loop_rate_hz / task.rate_hz); if (interval_ticks < 1) {