OSTaskSemSet

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

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