OpenEdv-开源电子网

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

UCOSIII延时函数任务调度的问题

[复制链接]

24

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2018-1-19
在线时间
50 小时
发表于 2018-7-19 10:19:11 | 显示全部楼层 |阅读模式
3金钱
OSTimeDlyHMSM(0,0,0,10,OS_OPT_TIME_PERIODIC,&err);   延时10ms。对于这样的延时函数,会触发任务调度。我的问题是任务调度完,回到延时函数,继续等够10ms。还是执行其他函数所花费的时间也算是这个10ms里面????

最佳答案

查看完整内容[请看2#楼]

你要先弄清楚,延时函数的意义。 OSTimeDlyHMSM(0,0,0,10,OS_OPT_TIME_PERIODIC,&err); 的延时,就是释放CPU去做其他事。 执行其他任务时间是算在这10ms里。 但执行其他任务如果高于当前任务,那是要等其他任务做完才回来。时间是会超过10ms 但执行其他任务如果低于当前任务, 不用等其他任务做完就回来。时间不是会超过10ms
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2016-9-5
在线时间
10 小时
发表于 2018-7-19 10:19:12 | 显示全部楼层
曾洪涌 发表于 2018-7-19 13:08
““执行就绪的其他任务后””我想请教一下执行其他就绪的任务时间算不算算在10ms这里面。还是额外的时间 ...

你要先弄清楚,延时函数的意义。
OSTimeDlyHMSM(0,0,0,10,OS_OPT_TIME_PERIODIC,&err); 的延时,就是释放CPU去做其他事。

执行其他任务时间是算在这10ms里。
但执行其他任务如果高于当前任务,那是要等其他任务做完才回来。时间是会超过10ms
但执行其他任务如果低于当前任务,   不用等其他任务做完就回来。时间不是会超过10ms



回复

使用道具 举报

3

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2016-9-5
在线时间
10 小时
发表于 2018-7-19 11:34:25 | 显示全部楼层
延时函数发送调度,执行就绪的其他任务后,延时时间没到,继续等,时间到了,就向下执行。

他任务如果优先级高的话(时间大于10ms),要等其他任务完成,才能回来。如果其他任务优先级低(任务大于10ms),就不需要等其他任务完成,直接回来执行下面的程序。
回复

使用道具 举报

24

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2018-1-19
在线时间
50 小时
 楼主| 发表于 2018-7-19 13:08:25 | 显示全部楼层
movzh 发表于 2018-7-19 11:34
延时函数发送调度,执行就绪的其他任务后,延时时间没到,继续等,时间到了,就向下执行。

他任务如果优 ...

““执行就绪的其他任务后””我想请教一下执行其他就绪的任务时间算不算算在10ms这里面。还是额外的时间。如果其他高优先级就绪时间里面又有延时10ms,这个原函数的时间延迟是不是误差就特别大了了。
回复

使用道具 举报

24

主题

63

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2018-1-19
在线时间
50 小时
 楼主| 发表于 2018-7-20 09:25:49 | 显示全部楼层
movzh 发表于 2018-7-19 10:19
你要先弄清楚,延时函数的意义。
OSTimeDlyHMSM(0,0,0,10,OS_OPT_TIME_PERIODIC,&err); 的延时,就是释 ...

谢谢 我明白了了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

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

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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