OSA : OS_Csem_Signal_Now

OS_Csem_Signal_Now (csem)
OS_Csem_Signal_I (csem)

Увеличивает значение семафора на 1. Если увеличивать уже некуда (семафор имеет максимально допустимое значение), то он не будет увеличен, а системный флаг bEventError установится.

Для использования счетных семафоров в файле OSAcfg.h должна быть определена константа OS_ENABLE_CSEM. Разрядность счетных семафоров задается константой OS_CSEM_SIZE

Для PIC16 переменная csem может размещаться в памяти только в bank0 или bank1

Разрешен вызов:

Только не из прерывания

Параметры функции:

csem счетный семафор - переменная типа OST_CSEM

Возвращаемое значение:

bEventError Если семафор на момент вызова имел максимальное значение, то функция OS_IsEventError вернет значение true

Пример вызова:

OST_CSME my_csem;
void Task (void)
{
    for (;;) {
        /*...*/
        OS_Csem_Signal_Now(my_csem);
        if (OS_IsEventError()) {
            // Семафор переполнен
        }
        /*...*/
    }
}

Old style name

-

См. также