Hi, I’m new to FreeRTOS and I am puzzled by something. I have 4 tasks, three of which are run using the vTaskDelayUntil() call to have them execute periodically (all three of these tasks works as expected). The 4th task however never gets called UNLESS I put a taskYield() inside it. All 4 tasks have the same priority.
static void task_FFT(void *pvParameters)
task_FFT_DebugCounter++; //one of the other tasks prints this value out
//taskYIELD(); //<— commenting out this call seems to prevent this task from running
Since the first 3 tasks are periodic and mostly waiting, shouldn’t all the remaining runtime be used for the task_FFT task? I have clearly misunderstood the workings of the scheduler but I’m not sure what I should be asking specifically.
Can someone please explain why task_FFT() never gets any CPU time? The counter never gets incremented, showing that the function is not being scheduled.
The other 3 tasks are run every 1000ms, 500ms and 100ms respectively and I don’t believe they are using 100% cpu between them.