OSTaskSemSet
Description
OSTaskSemSet() allows the user to set the value of the task’s signal counter. You would set the signal counter of the calling task by passing a NULL pointer for p_tcb.
Files
os.h/os_task.c
Prototype
OS_SEM_CTR OSTaskSemSet (OS_TCB *p_tcb,
OS_SEM_CTR cnt;
OS_ERR *p_err)Arguments
p_tcb
is a pointer to the task’s OS_TCB to clear the signal counter. A NULL pointer indicates that the user wants to clear the caller’s signal counter.
cnt
the desired value for the task semaphore counter.
p_err
is a pointer to a variable that will contain an error code returned by this function.
OS_ERR_NONE
If the call was successful and the signal counter was set.
OS_ERR_SET_ISR
If OS_CFG_CALLED_FROM_ISR_CHK_EN set to DEF_ENABLED in os_cfg.h: if calling this function from an ISR.
OS_ERR_TASK_WAITING
If tasks are waiting on the semaphore, the count is not changed.
Returned Value
The new value of the signal counter.
Required Configuration
Always enabled.
Callers
Application.
Notes/Warnings
Do not call
OSTaskSemSet()from an ISR.
Example Usage
OSTaskSemSet() example usage
OS_TCB TaskY;
void TaskX (void *p_arg)
{
OS_ERR err;
OS_SEM_CTR ctr;
while (DEF_ON) {
:
:
ctr = OSTaskSemSet(&TaskY,
0,
&err);
/* Check "err" */
:
:
}
}