rtos请教

[复制链接]
3237|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();啊,怎么到了时间也不切换,就一直在休眠哪里。真的不知哪里还有问题,我分析应该是没问题的啊,郁闷哦。
why_buaa 发表于 2007-5-30 00:33 | 显示全部楼层

你在哪里给A信号了?

A执行到OSWait(K_SIG,0)就挂起了,没有人来给他信号的号它就一直挂着,下面的OSTimeTick()也就根本执行不了了,当然系统的时间片也就没有了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部