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
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" */ : : } }