在应用中,需要一个任务中同时发送3个消息向另一个任务,并且这些消息数值是不同的。
等待任务是调度几次啊?比如如下代码
TASK_A
{
while(1)
{
msg = OSQPend(Internet_send_OSQ,0,&err);
message =*msg;
if (message==1)
{
数据处理及发送
OSTimeDly (10);
}
else if (message==2)
{
数据处理及发送
OSTimeDly (10);
}
else if (message==3)
{
数据处理及发送
OSTimeDly (10);
}
else if (message==4)
{
数据处理及发送
OSTimeDly (10);
}
......
}
}
task_b
{
while(1)
{
接收数据处理
if(A_命令)
{
message =1;
OSQPost(Internet_send_OSQ,&message);
}
else
if(B_命令)
{
message =2;
OSQPost(Internet_send_OSQ,&message);
}
if(C_命令)
{
message =3;
OSQPost(Internet_send_OSQ,&message);
}
.....
}
}
B任务可能在A任务在等待10秒延时的时候,B任务发送了消息,如果是这样的话,A任务会不会丢掉一个消息,前提消息还没有送满。 |