Available Languages?:

OSA : OS_Csem_Wait

OS_Csem_Wait (csem)

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

Ожидаем установки семафора в ненулевое значение. После того как дождемся, значение семафора уменьшается на 1.

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

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

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

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

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

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

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

Нет

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

OST_CSEM blink_csem;
 
 
void Task1 (void)
{
     for (;;) {
         OS_WaitConditon(!RB0);          // Ждем установки RB0 в "0"
         OS_Csem_SetValue(blink_csem, 5); // Сигнализируем задаче Task2, что нужно промигать
                                         // светодиодом 5 раз
     }
}
 
 
void Task2 (void)
{
    for (;;) {
        OS_Csem_Wait (blink_csem);
        LED = 1;
        OS_Delay(100);
        LED = 0;
        OS_Delay(100);
    }
}

Old style name

OS_WaitCSem

См. также

 
osa/ref/allservices/os_csem_wait.txt · Последние изменения: 07.10.2010 13:52 (внешнее изменение)
 
Creative Commons License Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki