Romanello
Jun 23 2009, 21:27
Нужно одновременно ждать события от двух разных источников, как это можно реализовать в UCOS?
Alex B._
Jun 24 2009, 06:32
Цитата(Romanello @ Jun 24 2009, 01:27)

Нужно одновременно ждать события от двух разных источников, как это можно реализовать в UCOS?
Уточните, что надо-то? можно использовать флаги (OS_FLAG) или очереди сообщений
Romanello
Jun 24 2009, 14:02
Надо сделать ожидание события от двух источников, какое придет первым то и обработать, сложность заключается в том что события могут прийти в разных последовательностях, а ожидать нужно любое из этих событий одновременно, с семафорами или флагами не прокатывает, т.к. там можно одновременно ждать только одного события. Типа как в винде есть функция WaitForMultipleObjects. Хотелось бы что то такое же в UCOS реализовать
zltigo
Jun 24 2009, 15:10
Цитата(Romanello @ Jun 24 2009, 00:27)

Нужно...
Очереди.
а что не так с использованием флагов?
вроде можно ждать установки/сброса любого бита в OS_FLAGS
OS_FLAGS OSFlagPend(
OS_FLAG_GRP *pgrp,
OS_FLAGS flags,
INT8U wait_type,
INT32U timeout,
INT8U *perr);
flags - is a bit pattern indicating which bit(s) (i.e., flags) you wish to check. The bits you want are
specified by setting the corresponding bits in flags
wait_type - specifies whether you want all bits to be set/cleared or any of the bits to be set/cleared. You
can specify the following arguments:
OS_FLAG_WAIT_SET_ANY
OS_FLAG_WAIT_CLR_ANY
...
/Gr
Romanello
Jun 24 2009, 20:33
Спаибо попробую.
nemo777
Jun 25 2009, 08:42
Цитата(Romanello @ Jun 24 2009, 17:02)

Надо сделать ожидание события от двух источников, какое придет первым то и обработать, сложность заключается в том что события могут прийти в разных последовательностях, а ожидать нужно любое из этих событий одновременно, с семафорами или флагами не прокатывает, т.к. там можно одновременно ждать только одного события. Типа как в винде есть функция WaitForMultipleObjects. Хотелось бы что то такое же в UCOS реализовать
OSEventPendMulti
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.