[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
схема такова:
;=========================================================
задача с приоритетом 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