vTaskDelayUntil – how to detect overload?

Hi, Following an advice read on this forum, I am using vTaskDelayUntil to activate a task periodically, with more control over the activation frequency. CPUs can get overloaded, and if the task does not have the highest priority then a task waiting on vTaskDelayUntil could potentially jump (or miss) a tick. Is there a way to asses whether or no this is happening (vTaskDelayUntil returns void)? To implement such a periodic activation pattern, I have been using a hook on the tick announcer. A counting semaphore is then given to the tasks that need to be periodically activated. If a task sees more than one semaphore then it realizes that the CPU ran late. I wouldn’t mind using vTaskDelayUntil so that’s one less piece of code I have to worry. However, I feel the need to insure that tasks know whenever they ran. Let me know if there’s a way to deduce this using the vTaskDelayUntil  function.

vTaskDelayUntil – how to detect overload?

One way to check this is to see if xTaskGetTickCount – lastTickCount (the first parm to vTaskDelayUntil) is >= tick count given to vTaskDelayUntil..

vTaskDelayUntil – how to detect overload?

Ah yes! Awesome, thanks for the heads up!