ucos ii中,多个任务等待不同的事件怎么办?
我有a、b两个任务。两个任务分别需要等待消息A、B才允许执行。那我需要建立两个事件控制块和两个消息队列吗?
程序我是这样写的:
首先创建两个消息队列:
AppTaskObjSemA = OSQCreate(&MyArrayOfMsgA[0],1); //创建消息队列
AppTaskObjSemB = OSQCreate(&MyArrayOfMsgA[0],1); //创建消息队列
然后在两个任务函数中分别等待消息:
OSQPend(AppTaskObjSemA, 0, &os_err); //要等待的事件:AppTaskObjSemA
OSQPend(AppTaskObjSemB, 0, &os_err); //要等待的事件:AppTaskObjSemB
然后,在不同中断中分别发送消息:
OSQPost(AppTaskObjSemA,MyArrayOfMsgA); //发送消息A
OSQPost(AppTaskObjSemB,MyArrayOfMsgB); //发送消息B
这样写了以后,为什么任务a可以执行,但任务b一直没有执行呢?