Bird
0
0

You want to implement a periodic task with precise timing using vTaskDelay(). Which problem will you face compared to using vTaskDelayUntil()?

hard📝 Application Q9 of 15
FreeRTOS - Task Scheduling
You want to implement a periodic task with precise timing using vTaskDelay(). Which problem will you face compared to using vTaskDelayUntil()?
AvTaskDelayUntil does not allow task blocking.
BvTaskDelay causes cumulative timing drift over iterations.
CvTaskDelay cannot delay for more than 10 ticks.
DvTaskDelayUntil causes the task to run too fast.
Step-by-Step Solution
Solution:
  1. Step 1: Compare vTaskDelay and vTaskDelayUntil

    vTaskDelay delays relative to current time, causing drift if task execution time varies.
  2. Step 2: Understand timing drift

    Over many iterations, small delays add up, shifting the task schedule.
  3. Final Answer:

    vTaskDelay causes cumulative timing drift over iterations. -> Option B
  4. Quick Check:

    vTaskDelay drift vs vTaskDelayUntil fixed timing [OK]
Quick Trick: vTaskDelay drifts; vTaskDelayUntil keeps fixed period [OK]
Common Mistakes:
  • Thinking vTaskDelayUntil runs task too fast
  • Believing vTaskDelay has tick limit
  • Assuming vTaskDelayUntil never blocks

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More FreeRTOS Quizzes