初级会员

- 积分
- 106
- 金钱
- 106
- 注册时间
- 2015-6-10
- 在线时间
- 0 小时
|
5金钱
为什么我的程序打开软件定时器3时,消息数目增加,消息内容显示正常,但是把软件定时器关了时候,消息数目在减小,可是消息内容却一直没有变化?
//软件定时器3回调函数
//发送消息到消息队列
void tmr3_callback(OS_TMR *ptmr,void *p_arg)
{
u8 err;
static u8 msg_cnt=0; //msg消息编号
sprintf(Temp_1,"Msg_cnt %3d",msg_cnt);
msg_cnt++;
err=OSQPost(q_msg,Temp_1); //发送队列
printf("\n\r Temp_1 is: %s \n\r",Temp_1);
if(err!=OS_ERR_NONE) //发送失败
{
OSTmrStop(tmr3,OS_TMR_OPT_NONE,0,&err);
}
}
//队列消息显示任务
void qmsgshow_task(void *pdata)
{
u8 *p;
u8 err;
Data.OSMsg=Temp_2;
while(1)
{
err=OSQQuery(q_msg,&Data);
printf("\n\r Msg_next= %s \n\r",(char*)Data.OSMsg);
printf("\n\r Msg_Num= %d \n\r",Data.OSNMsgs);
p=OSQPend(q_msg,0,&err); //请求消息队列,申请等待无限长时间
printf("\n\r err= %d \n\r",err);
printf("\n\r Message is: %s \n\r",p);
LCD_DispStr(160,100,159,16,p,16,0); //显示消息
delay_ms(500);
}
}
定时器tmr3打开时每次显示的消息是变化的,tmr3关闭以后显示的消息一直都是关闭时的那条消息,消息数目却一直在减小。这是为什么呢?
|
|