OS_Smsg_Wait_TO (smsg, os_smsg_type_var, timeout)
Ожидаем короткое однобайтовое сообщение в течение заданного времени. Если так и не дождались, то выходим из ожидания по таймауту. Если сообщение пришло, то тело сообщения помещается в переменную os_smsg_type_var, а дескриптор сообщения освобождается.
Только из задачи
smsg |
Дескриптор короткого сообщения. Переменная типа OST_SMSG |
os_smsg_type_var |
Переменная типа OST_SMSG, куда будет помещено короткое сообщение |
timeout |
Время ожидания. Задается в системных тиках - периодах вызова сервиса OS_Timer |
таймаут |
Если вышли из ожидания по таймауту, то сервис OS_IsTimeout возвратит true |
OST_SMSG button_smsg; void Task (void) { OST_SMSG smessage; for (;;) { /*...*/ // В течение 100 тиков ждем сообщение от клавиатуры OS_Smsg_Wait_TO (button_smsg, smessage, 100); if (!OS_IsTimeout()) { // Если оно пришло, switch (smessage) { // то обрабатываем сообщение /*...*/ } } /*...*/ } }
OS_WaitSMsgTimeout