OSA : OS_Csem_Signal

OS_Csem_Signal (csem)

Нельзя вызывать из прерывания

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

Для использования счетных семафоров в файле 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(my_csem);
        /*...*/
    }
}

Old style name

OS_SignalCSem

См. также