mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-09-12 00:57:44 -04:00
vTaskDelayUntil improvement
This commit is contained in:
parent
359b10a4ea
commit
aebba2bcd3
2 changed files with 10 additions and 2 deletions
|
@ -799,6 +799,9 @@ void vTaskDelay( const TickType_t xTicksToDelay ) PRIVILEGED_FUNCTION;
|
|||
* same xTimeIncrement parameter value will cause the task to execute with
|
||||
* a fixed interface period.
|
||||
*
|
||||
* @param xWasDelayed Can be used to check whether the task was actually delayed.
|
||||
* Will be set to pdTRUE if the task way delayed and to pdFALSE otherwise.
|
||||
*
|
||||
* Example usage:
|
||||
<pre>
|
||||
// Perform an action every 10 ticks.
|
||||
|
@ -821,7 +824,7 @@ void vTaskDelay( const TickType_t xTicksToDelay ) PRIVILEGED_FUNCTION;
|
|||
* \defgroup vTaskDelayUntil vTaskDelayUntil
|
||||
* \ingroup TaskCtrl
|
||||
*/
|
||||
void vTaskDelayUntil( TickType_t * const pxPreviousWakeTime, const TickType_t xTimeIncrement ) PRIVILEGED_FUNCTION;
|
||||
void vTaskDelayUntil( TickType_t * const pxPreviousWakeTime, const TickType_t xTimeIncrement, BaseType_t * xWasDelayed ) PRIVILEGED_FUNCTION;
|
||||
|
||||
/**
|
||||
* task. h
|
||||
|
|
7
tasks.c
7
tasks.c
|
@ -1251,7 +1251,7 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB )
|
|||
|
||||
#if ( INCLUDE_vTaskDelayUntil == 1 )
|
||||
|
||||
void vTaskDelayUntil( TickType_t * const pxPreviousWakeTime, const TickType_t xTimeIncrement )
|
||||
void vTaskDelayUntil( TickType_t * const pxPreviousWakeTime, const TickType_t xTimeIncrement, BaseType_t * xWasDelayed )
|
||||
{
|
||||
TickType_t xTimeToWake;
|
||||
BaseType_t xAlreadyYielded, xShouldDelay = pdFALSE;
|
||||
|
@ -1328,6 +1328,11 @@ static void prvAddNewTaskToReadyList( TCB_t *pxNewTCB )
|
|||
{
|
||||
mtCOVERAGE_TEST_MARKER();
|
||||
}
|
||||
|
||||
if(xWasDelayed != NULL)
|
||||
{
|
||||
*xWasDelayed = xShouldDelay;
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* INCLUDE_vTaskDelayUntil */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue