OSA : OS_Csem_Wait_TO

OS_Csem_Wait_TO (csem, timeout)

Разрешен вызов только в контексте задачиПереключает контекстСервис использует таймаут

Ожидаем установки семафора с таймаутом.Если так и не дождались, то выходим из ожидания по таймауту.

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

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

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

Только из задачи

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

csem счетный семафор - переменная типа OST_CSEM
timeout Время ожидания. Задается в системных тиках - периодах вызова сервиса OS_Timer

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

таймаут Если вышли из ожидания по таймауту, то сервис OS_IsTimeout возвратит true

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

OST_CSEM my_csem;
 
void Task (void)
{
    for (;;) {
        /*...*/
        OS_Csem_Wait_TO (my_csem, 100);   // Ждем семафора 100 тиков
        if (!OS_IsTimeout()) {
            // Семафор был установлен, обрабатываем его
            /*...*/
        }
        /*...*/
    }
}

Old style name

OS_WaitCSemTimeout

См. также