OS_Msg_Wait_TO (msg_cb, os_msg_type_var, timeout)
Ждем сообщение в течение указанного времени. Если так и не дождались, то выходим из ожидания по таймауту.
Только из задачи
msg_cb |
Дескриптор указателя на сообщение. Переменная типа OST_MSG_CB |
os_msg_type_var |
Переменная типа OST_MSG; в нее будет помещен указатель на сообщение |
timeout |
Время ожидания. Задается в системных тиках - периодах вызова сервиса OS_Timer |
таймаут |
Если вышли из ожидания по таймауту, то сервис OS_IsTimeout возвратит true |
OST_MSG_CB uart_msg; void Task (void) { OST_MSG msg; for (;;) { /*...*/ OS_Msg_Wait_TO (uart_msg, msg, 100); // В течение 100 тиков ждем данные от UART if (OS_IsTimeout()) { // Не дождались - зажигаем красный светодиод RED_LED = 1; } else { // Дождались - обрабатываем сообщение /*...*/ } /*...*/ } }
OS_WaitMsgTimeout