[an error occurred while processing this directive] [an error occurred while processing this directive]
u-cos 2.51 вопрос по флагам
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Romario 23 августа 2001 г. 21:02

схема такова:
;=========================================================
задача с приоритетом 5:
OSFlagPost(flag_grp,SLEEP_FLAG,OS_FLAG_SET,....);
тут же:
flag_cur =
OSFlagPend(flag_grp,SLEEP_FLAG,OS_FLAG_WAIT_CLR_ALL,time_out,err)
что-то типа этого: выстанавливает и ждет обнуления.
;=========================================================
задача с приоритетом 6:
FLAGS= SLEEP_FLAG + NEWMODE_FLAG
1)OSFlagPend(flag_grp,FLAGS,OS_FLAG_WAIT_SET_ANY,0,err);
2)если вывалилось по SLEEP_FLAG,обнуление флага SLEEP_FLAG с помощью OSFlagAccept
3)Goto 1)
;=========================================================
в данном варианте, если time_out = 0, задача 5 висит бесконечно.
если задать time_out, задача вываливается с ошибкой OS_TIMEOUT
но при этом значение flag_cur = 0, т.е. показывает, что SLEEP_FLAG
сброшен!?
я может чего-то не понимаю, как такое может быть????

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru