FreeRTOS Support Archive
The FreeRTOS support forum is used to obtain active support directly from Real
Time Engineers Ltd. In return for using our top quality software and services for
free, we request you play fair and do your bit to help others too! Sign up
to receive notifications of new support topics then help where you can.
This is a read only archive of threads posted to the FreeRTOS support forum.
The archive is updated every week, so will not always contain the very latest posts.
Use these archive pages to search previous posts. Use the Live FreeRTOS Forum
link to reply to a post, or start a new support thread.
[FreeRTOS Home] [Live FreeRTOS Forum] [FAQ] [Archive Top] [August 2013 Threads] vTaskDelayUntil and short delaysPosted by Jerry Durand on August 22, 2013 I did a forum search but it didn't seem like this has been mentioned.
So... I'm starting a project where the delay time for vTaskDelayUntil will be variable and could be really short.
If the delay until time (xLastWakeTime plus xPeriod in your example) generates an end time that has already past, does this return immediately (good) or wait for the clock to roll over (bad) crash (worse)?
Example:
{wakeup} xLastWakeTime is set to 1000 { do things that take 2 ticks } xPeriod = 1; vTaskDelayUntil( &xLastWakeTime, xPeriod ); // the wakeup time is now 1001 but the clock time is 1002.
RE: vTaskDelayUntil and short delaysPosted by Jerry Durand on August 22, 2013 I guess I have one more question, is the xLastWakeTime now 1001 or 1002? ie: is it the calculated wakeup time or the time it actually woke up?
RE: vTaskDelayUntil and short delaysPosted by Jerry Durand on August 22, 2013 I wrote some test code for to try this out. To simulate a busy system I made a loop with vTaskDelay(2); in front of the vTaskDelayUntil. I used a variable for xPeriod and with the debugger kept decreasing it to see what it would do.
With xPeriod of 2 or higher, the period WAS 2. With xPeriod of 1 the period was still 2, so instant return (good work!) With xPeriod of 0, the system hangs. I can live with that.
So, as long as I verify xPeriod is greater than zero, I don't need to worry about this low priority task crashing when the system gets busy.
RE: vTaskDelayUntil and short delaysPosted by MEdwards on August 22, 2013 If you step into the function you will see near the top an assert to trap 0 being passed in.
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.
|