打印
[ZLG-MCU]

使用SMALL RTOS的OSQPend时,总不正常,请大家指教

[复制链接]
2502|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xxt76|  楼主 | 2011-1-19 20:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 xxt76 于 2011-1-19 21:28 编辑

这个问题困扰我好几天了。以下是我写的一个任务。在任务中,当我调用OSQPend函数时,返回值是OS_Q_OK没错,但它没把消息队列SerialData中的消息读出来写给qi。因此qi始终是0,肯请各位高手指点一二,不胜感激。

void TaskA(void)
{
uint8 data qi;
OSQCreate(SerialData,16);
while (1)
{
if(OSQPost(SerialData,0x16)==OS_Q_OK)
LED2=0;
  
if(OSQNMsgs(SerialData) ==1)
{
LED1=0;
delay(250);
  }
    P1 = 0xff;   
//------------上面的都正常,下面的qi结果总不对--------------
    if(OSQPend(&qi,SerialData,0)==OS_Q_OK)
  {
     LED0=0;
     if(qi==0x16)
         LED6=0;
   }
//--------------------------
}
......
}

相关帖子

沙发
foreverly| | 2011-1-20 11:53 | 只看该作者
我怎么没看明白呢?帮你呐喊助威吧。

使用特权

评论回复
板凳
FVJFIFE| | 2011-1-20 22:09 | 只看该作者
帮你顶起来

使用特权

评论回复
地板
3B1105| | 2011-1-21 11:15 | 只看该作者
你用的是什么操作系统了

使用特权

评论回复
5
airwill| | 2011-1-22 12:22 | 只看该作者
我感觉楼主写的程序蛮规矩的,也没有想明白为什么
楼主可否找个调试器,跟踪看一看,SerialData 的变化情况,还有 OSQPend执行情况,因为你已经发送消息了,在这里 OSQPend 不会进入任务休眠状态,应该比较好跟踪的。

使用特权

评论回复
6
caijie| | 2011-1-22 16:14 | 只看该作者
SMALL RTOS
的OSQPend 函数本来就有这个BUG, 网上有解决方法,自己找。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

6

帖子

1

粉丝