打印

rtos请教

[复制链接]
1704|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
兰鑫|  楼主 | 2007-5-20 12:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

刚接触RTOS,看了好久的书,程序还不能运行,请大家看看,
                     void main(void)
{
       init();
        OSStart();
}
                           void TaskA(void)

    while (1)
    { 
        P2=i;
        OSWait(K_SIG,0);
 OSTimeTick();
    } 
}
                            void TaskB(void)
{
    while (1)
    { i=0;
               OSWait(K_TMO,10);
    }
}
                            void TaskC(void)

    while (1)
    {    i=0xff;
     OSWait(K_TMO,15);
  
        
    }
}
程序很简单:p2口接led,想让它闪烁即可,
自己的分析是:让任务A调用OSTimeTick();想通过任务B,C,改变变量i的值,然后运行任务A时来改变led的变化。
但是程序不是我想的哪样运行,我在调试中看了下,程序是按顺序一直这样试行下去,到任务C后就进入睡眠了,现在就一直到这里了。
请各位帮帮忙分析一下吧,谢!!!(以前是用时间片轮转这样编写的,好像比较好理解,不知RTOS和它有什么区别呢?)qq:470359073

相关帖子

沙发
兰鑫|  楼主 | 2007-5-26 21:26 | 只看该作者

small rtos

大家看看啦,难道就没有一个人知道吗,支持一下吧,多谢了!

使用特权

评论回复
板凳
新警察| | 2007-5-26 22:26 | 只看该作者

估计是没周期给任务A信号

使用特权

评论回复
地板
兰鑫|  楼主 | 2007-5-27 22:05 | 只看该作者

small rtos

我在任务A有调用OSTimeTick();啊,怎么到了时间也不切换,就一直在休眠哪里。真的不知哪里还有问题,我分析应该是没问题的啊,郁闷哦。

使用特权

评论回复
5
why_buaa| | 2007-5-30 00:33 | 只看该作者

你在哪里给A信号了?

A执行到OSWait(K_SIG,0)就挂起了,没有人来给他信号的号它就一直挂着,下面的OSTimeTick()也就根本执行不了了,当然系统的时间片也就没有了

使用特权

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

本版积分规则

1

主题

3

帖子

0

粉丝