I just want to clairify that I understand what vTaskDelay(0) does vs vTaskDelay(1).
Calling vTaskDelay(0) will basically rerun the scheduler, without suspending the current task.
If a task changes a higher-priority task to the running state, the higher-priority task will not start until the next tick
because thats when the scheduler will run again… unless vTaskDelay() is called.
So if the current task changes a higher-priority task to the running state, then calls vTaskDelay(0), the higher-priority
task will take over during the current tick. But if the current task does not make any state changes to other tasks and calls vTaskDelay(0) then it will basically hiccup (scheduler runs) and keep going.
Is this correct?
So, unless a higher priority task has been made resheduled to run this cycle, the current task will resume.
Will any higher priority tasks that called vTaskDelay(1) earlier this cycle run again? I think they would have not becase the
, or are they resheduled to the next cycle?
effectivey yield to any higher priority tasks that are