今天试了下51的rtx51tiny系统,有点小问题
先贴一个小程序:void init(void)_task_ 0
{
os_create_task(1);
os_create_task(2);
os_delete_task(0);
}
void ledinit(void)_task_ 1
{
led=0;
}
void ledliang(void)_task_ 2
{
//led=0;
while(1)
P0=0x00;
}
我把任务1给去掉,led=0放到任务2中,灯才能亮,而将led=0放在任务1中却不亮了,我想是不是两任务一块执行有影响??希望有对操作系统兴趣的同学互相讨论下
void led_on(void)_task_ 1
{
while(1)
{
led=0;
delayms(500);
}
}
void led_off(void)_task_ 2
{
while(1)
{
led=1;
delayms(500);
}
}试试看这样写。 renpeng009 发表于 2013-7-24 10:33 static/image/common/back.gif
试试看这样写。
led=0是使能端,需要置0才能灯才能正常工作,我就是想不通,为什么分开写灯会不工作,谢谢你的代码!! rtx51tny的任务必须是一个死循环,说明上有 信天游 发表于 2013-7-24 11:51 static/image/common/back.gif
rtx51tny的任务必须是一个死循环,说明上有
o ,谢谢。。。 tiny最好不要用时间片调度的方式,51本来就慢,要想响应快,任务应该完成必要的事情后立刻释放控制权,数毫秒到几百毫秒都可以,取决于你这个任务多久希望活过来一次。
另外tiny不能抢占。 fastweb 发表于 2013-7-28 16:22 static/image/common/back.gif
tiny最好不要用时间片调度的方式,51本来就慢,要想响应快,任务应该完成必要的事情后立刻释放控制权,数毫 ...
谢谢了!! 自己程序的问题。一看标题还以为RTX的问题。 跑飞个球了,每个任务必须是一个大循环 没用过这个。
页:
[1]