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
Code Block |
---|
OS_SEM_CTR OSTaskSemSet (OS_TCB *p_tcb, |
...
OS_SEM_CTR cnt; |
...
OS_ERR *p_err |
...
File | Called from | Code enabled by |
---|---|---|
| Task or ISR | Always Enabled |
...
) |
...
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.
...
is a pointer to a variable that will contain an error code returned by this function.
OS_ERR_NONE
if
If the call was successful and the signal counter was
...
set.
OS_ERR_SET_ISR
if
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 prior to setting it.
Required Configuration
Always enabled.
Callers
Application.
Notes/Warnings
None
...
- Do not call
OSTaskSemSet()
from an ISR.
Example Usage
Code Block | ||
---|---|---|
| ||
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" */
:
:
}
} |