OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6112|回复: 14

ucos 多任务问题

[复制链接]

4

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2013-6-25
在线时间
0 小时
发表于 2013-7-25 14:50:38 | 显示全部楼层 |阅读模式
我在ucos(2.86) 里面建立三个任务, Task_LED1   Task_LED2  Task_LED3 优先级分别为5,6, 7 这个时候三个任务只能运行Task_LED1, Task_Led2,如果把Task_Led2屏蔽掉的话,Task_Led3可以运行,后来把他们三个的优先级改成6, 8, 10,他们三个都能同时运行,不晓得是怎么回事?又遇到相同问题的人木有? 或者解释一下也行,谢谢了! 
void Task_LED1(void *p_arg)
{
p_arg = p_arg;

while(1)
{
LED1_REVERSE;
OSTimeDlyHMSM(0, 0, 2, 0);
}
}

void Task_LED2(void *p_arg)
{
p_arg = p_arg;
while(1)
{
LED2_REVERSE;
OSTimeDlyHMSM(0, 0, 3, 0);
}
}

void Task_LED3(void *p_arg)
{
p_arg = p_arg;

while(1)
{
LED3_REVERSE;
OSTimeDlyHMSM(0, 0, 5, 0);
}

}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-7-25 15:19:01 | 显示全部楼层
优先级7有没有被别的任务使用啊
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

38

主题

248

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
463
金钱
463
注册时间
2011-2-11
在线时间
12 小时
发表于 2013-7-25 18:08:36 | 显示全部楼层
人品爆发吧~
不调整优先级,把delay参数写成一样的试试。
Openedv大力支持的开源RTOS  --Trochili RTOS(飞鸟)
回复 支持 反对

使用道具 举报

4

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2013-6-25
在线时间
0 小时
 楼主| 发表于 2013-7-25 19:19:16 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
没有
回复 支持 反对

使用道具 举报

4

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2013-6-25
在线时间
0 小时
 楼主| 发表于 2013-7-25 19:19:35 | 显示全部楼层
回复【3楼】trochili:
---------------------------------
明天试试
回复 支持 反对

使用道具 举报

4

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2013-6-25
在线时间
0 小时
 楼主| 发表于 2013-7-26 08:53:07 | 显示全部楼层
回复【3楼】trochili:
---------------------------------
按照你的方法试了一下,把三个任务的优先级调整为6,7,8,延时时间都改成了2s,三个任务都能运行了。
弱弱的问一下,这个是怎么回事?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-7-26 10:42:01 | 显示全部楼层
这也可以?
期待trochili 讲解下,我来学习下,呵呵.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

38

主题

248

帖子

0

精华

版主

Rank: 7Rank: 7Rank: 7

积分
463
金钱
463
注册时间
2011-2-11
在线时间
12 小时
发表于 2013-7-29 12:54:52 | 显示全部楼层
都说是楼主人品爆发了。哈哈
我想是因为你的优先级和延时时间这两个因素导致的。
你分析一下这几个参数的组合,是不是有任务永远得不到运行吧。
Openedv大力支持的开源RTOS  --Trochili RTOS(飞鸟)
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2014-3-24
在线时间
0 小时
发表于 2014-4-14 17:21:42 | 显示全部楼层
我也遇到过类似的问题,三个任务只能运行一个,后来经过调试修改,得出结论是延时和优先级的关系一定得处理好,比如延时高的任务优先级一定要比延时低的任务要高,否则得不到执行,我通过实验得出的结论。此回复不够权威,如果有错请大家多多指教。
回复 支持 反对

使用道具 举报

35

主题

154

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
362
金钱
362
注册时间
2014-7-30
在线时间
49 小时
发表于 2014-10-21 16:50:09 | 显示全部楼层
okokokmarkmark mark
我就是我,是颜色不一样的烟火。
回复 支持 反对

使用道具 举报

35

主题

154

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
362
金钱
362
注册时间
2014-7-30
在线时间
49 小时
发表于 2014-10-21 16:56:20 | 显示全部楼层
回复【3楼】trochili:
---------------------------------
为什么优先级改为6、8、10就能都能运行了,和5、6、7没区别额,优先级的次序和延时时间并没有变
我就是我,是颜色不一样的烟火。
回复 支持 反对

使用道具 举报

86

主题

982

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1846
金钱
1846
注册时间
2013-4-15
在线时间
163 小时
发表于 2014-10-22 10:37:33 | 显示全部楼层
呵呵  不错 写的蛮好的 最近在自学uc/osII
合肥-文盲
回复 支持 反对

使用道具 举报

2

主题

11

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2014-10-9
在线时间
0 小时
发表于 2014-10-26 08:25:57 | 显示全部楼层
回复【9楼】wowoha:
---------------------------------
按照你所说的“延时高的任务优先级一定要比延时低的任务要高,否则得不到执行”  我拿学校实验室的板子做了个测试   分别创建Task—LED1一直到Task_LED8  优先级分别对应4 到11  延时时间对应 1秒到8秒  结果LED正常运行。
回复 支持 反对

使用道具 举报

1

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2014-7-1
在线时间
0 小时
发表于 2014-10-26 11:39:39 | 显示全部楼层
是不是没开启任务调度啊OSStart(),把整个源程序贴出来看看
回复 支持 反对

使用道具 举报

39

主题

123

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
399
金钱
399
注册时间
2014-11-7
在线时间
44 小时
发表于 2014-11-22 16:29:48 | 显示全部楼层
UCOSIII出来了,直接上手UCOSIII  大侠们 呢个推荐学习资料么?
再牛逼的梦想都禁不住傻逼的坚持!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 04:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表