OS_Csem_Wait_TO (csem, timeout)
Ожидаем установки семафора с таймаутом.Если так и не дождались, то выходим из ожидания по таймауту.
Для использования счетных семафоров в файле OSAcfg.h должна быть определена константа OS_ENABLE_CSEM. Разрядность счетных семафоров задается константой OS_CSEM_SIZE
Только из задачи
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()) { // Семафор был установлен, обрабатываем его /*...*/ } /*...*/ } }
OS_WaitCSemTimeout