wangzisun 发表于 2013-7-24 10:21:43

今天试了下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中却不亮了,我想是不是两任务一块执行有影响??希望有对操作系统兴趣的同学互相讨论下               

renpeng009 发表于 2013-7-24 10:33:19

void led_on(void)_task_ 1
{
   while(1)
   {
      led=0;
      delayms(500);
    }
}

void led_off(void)_task_ 2      
{
  while(1)
   {
       led=1;
       delayms(500);
    }
}试试看这样写。

wangzisun 发表于 2013-7-24 10:39:23

renpeng009 发表于 2013-7-24 10:33 static/image/common/back.gif
试试看这样写。

led=0是使能端,需要置0才能灯才能正常工作,我就是想不通,为什么分开写灯会不工作,谢谢你的代码!!

信天游 发表于 2013-7-24 11:51:40

rtx51tny的任务必须是一个死循环,说明上有

wangzisun 发表于 2013-7-24 11:53:00

信天游 发表于 2013-7-24 11:51 static/image/common/back.gif
rtx51tny的任务必须是一个死循环,说明上有

o ,谢谢。。。

fastweb 发表于 2013-7-28 16:22:04

tiny最好不要用时间片调度的方式,51本来就慢,要想响应快,任务应该完成必要的事情后立刻释放控制权,数毫秒到几百毫秒都可以,取决于你这个任务多久希望活过来一次。
另外tiny不能抢占。

wangzisun 发表于 2013-7-29 08:43:58

fastweb 发表于 2013-7-28 16:22 static/image/common/back.gif
tiny最好不要用时间片调度的方式,51本来就慢,要想响应快,任务应该完成必要的事情后立刻释放控制权,数毫 ...

谢谢了!!

biansf2001 发表于 2013-7-29 09:13:10

自己程序的问题。一看标题还以为RTX的问题。

marshallemon 发表于 2013-7-29 09:20:14

跑飞个球了,每个任务必须是一个大循环

womenhome 发表于 2013-7-29 09:28:45

没用过这个。
页: [1]
查看完整版本: 今天试了下51的rtx51tiny系统,有点小问题