OS_Bsem_Wait_TO (bsem, timeout)
Ожидаем установку семафора с таймаутом. После того, как дождемся, семафор сбрасывается. Если так и не дождались, то выходим из ожидания по таймауту.
Только из задачи
bsem |
ID бинарного семафора. Количество бинарных семафоров задается в файле OSAcfg.h константой OS_BSEMS |
timeout |
Время ожидания. Задается в системных тиках - периодах вызова сервиса OS_Timer |
таймаут |
Если вышли из ожидания по таймауту, то сервис OS_IsTimeout возвратит true |
#define BS_DATA_RECEIVED 0 void Task (void) { for (;;) { /*...*/ OS_Bsem_Wait_TO (BS_DATA_RECEIVED, 1000); // 1000 тиков ждем установки семафора if (!OS_IsTimeout()) { // Обрабатываем данные /*...*/ } /*...*/ } }
OS_WaitBSemTimeout