rtos请教
<br />刚接触RTOS,看了好久的书,程序还不能运行,请大家看看,<br /> void main(void)<br />{<br /> init();<br /> OSStart();<br />}<br /> void TaskA(void)<br />{ <br /> while (1)<br /> { <br /> P2=i;<br /> OSWait(K_SIG,0);<br /> OSTimeTick();<br /> } <br />}<br /> void TaskB(void)<br />{<br /> while (1)<br /> { i=0;<br /> OSWait(K_TMO,10);<br /> }<br />}<br /> void TaskC(void)<br />{ <br /> while (1)<br /> { i=0xff;<br /> OSWait(K_TMO,15);<br /> <br /> <br /> }<br />}<br />程序很简单:p2口接led,想让它闪烁即可,<br />自己的分析是:让任务A调用OSTimeTick();想通过任务B,C,改变变量i的值,然后运行任务A时来改变led的变化。<br />但是程序不是我想的哪样运行,我在调试中看了下,程序是按顺序一直这样试行下去,到任务C后就进入睡眠了,现在就一直到这里了。<br />请各位帮帮忙分析一下吧,谢!!!(以前是用时间片轮转这样编写的,好像比较好理解,不知RTOS和它有什么区别呢?)qq:470359073small rtos
大家看看啦,难道就没有一个人知道吗,支持一下吧,多谢了!估计是没周期给任务A信号
small rtos
我在任务A有调用OSTimeTick();啊,怎么到了时间也不切换,就一直在休眠哪里。真的不知哪里还有问题,我分析应该是没问题的啊,郁闷哦。<br />你在哪里给A信号了?
A执行到OSWait(K_SIG,0)就挂起了,没有人来给他信号的号它就一直挂着,下面的OSTimeTick()也就根本执行不了了,当然系统的时间片也就没有了
页:
[1]