今天试了下51的rtx51tiny系统,有点小问题

2020-01-27 11:35发布

    先贴一个小程序:
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中却不亮了,我想是不是两任务一块执行有影响??希望有对操作系统兴趣的同学互相讨论下               
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
renpeng009
1楼-- · 2020-01-27 11:48
  1. void led_on(void)_task_ 1
  2. {
  3.    while(1)
  4.    {
  5.       led=0;
  6.       delayms(500);
  7.     }
  8. }

  9. void led_off(void)_task_ 2      
  10. {
  11.   while(1)  
  12.    {
  13.        led=1;
  14.        delayms(500);
  15.     }
  16. }
复制代码试试看这样写。
wangzisun
2楼-- · 2020-01-27 13:38
renpeng009 发表于 2013-7-24 10:33
试试看这样写。

led=0是使能端,需要置0才能灯才能正常工作,我就是想不通,为什么分开写灯会不工作,谢谢你的代码!!
信天游
3楼-- · 2020-01-27 19:23
rtx51tny的任务必须是一个死循环,说明上有
wangzisun
4楼-- · 2020-01-27 23:51
 精彩回答 2  元偷偷看……
fastweb
5楼-- · 2020-01-28 05:44
tiny最好不要用时间片调度的方式,51本来就慢,要想响应快,任务应该完成必要的事情后立刻释放控制权,数毫秒到几百毫秒都可以,取决于你这个任务多久希望活过来一次。
另外tiny不能抢占。
wangzisun
6楼-- · 2020-01-28 06:15
fastweb 发表于 2013-7-28 16:22
tiny最好不要用时间片调度的方式,51本来就慢,要想响应快,任务应该完成必要的事情后立刻释放控制权,数毫 ...

谢谢了!!

一周热门 更多>