OS_Csem_Wait (csem)
Ожидаем установки семафора в ненулевое значение. После того как дождемся, значение семафора уменьшается на 1.
Для использования счетных семафоров в файле OSAcfg.h должна быть определена константа OS_ENABLE_CSEM. Разрядность счетных семафоров задается константой OS_CSEM_SIZE
Только из задачи
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); } }
OS_WaitCSem