|
void Task1(void *pdata)
{
pdata = pdata;
int i=0;
OS_EVENT *Mbox;
GUI_SetColor(GUI_RED);//ÉèÖÃ×ÖÌåÑÕÉ«
GUI_SetFont(&GUI_FontComic24B_ASCII);
Mbox=OSMboxCreate((void *)0);
for (;;)
{
GUI_DispDecAt(i,60,110,3);
// OSTaskSuspend(OS_PRIO_SELF); //
OSTimeDly(400);
i++;
OSMboxPost(Mbox,(void *)&i);
}
}
void Task2(void *pdata)
{
pdata = pdata;
OS_EVENT *Mbox;
INT8U err;
INT8U m;
for (;;)
{
UTX_PROC("0xaa");
m=*(INT8U *)OSMboxPend(Mbox,0,&err);
UCA1TXBUF=m;
OSTimeDly(400);
}
}
以上是用msp430f5438移植的ucos工程中的2个任务,在使用邮箱时程序不断重启,有以下几个问题:
1,邮箱定义指针OS_EVENT *Mbox;这句,为什么每个任务里都要,少一个都编译不过,在程序最前面定义了也是一样,任务里定义一个都不能少;
2,m=*(INT8U *)OSMboxPend(Mbox,0,&err);这句屏蔽后程序不重启,串口发送任务正常(除m值)
程序不断重启是为何?邮箱应怎样正确使用?
|
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|