OpenEdv-开源电子网

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

求解释两个延迟

[复制链接]

58

主题

359

帖子

0

精华

高级会员

Rank: 4

积分
987
金钱
987
注册时间
2014-9-29
在线时间
261 小时
发表于 2016-6-5 19:55:52 | 显示全部楼层 |阅读模式
1金钱
最近在看ucos
第一个例子中有两种延迟
OSTimeDlyHMSM,delay_ms
感觉一个是定义系统节拍产生的,一个就是我们普通用的
求解释下这两种用起来有什么差别
有什么要注意的

最佳答案

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

如果你节拍是200Hz,那想延时10ms这两个都可以用,如果想延时6ms那就只能有delay——ms才能得到正确的延时
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

69

主题

978

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3772
金钱
3772
注册时间
2015-4-26
在线时间
765 小时
发表于 2016-6-5 19:55:53 | 显示全部楼层
闪电之舞 发表于 2016-6-6 15:37
既然这样,哪有没有什么区别,用的时候要注意些什么

还是,这两个完全是一样的,可以通用?

如果你节拍是200Hz,那想延时10ms这两个都可以用,如果想延时6ms那就只能有delay——ms才能得到正确的延时
我有故事,你有酒吗
回复

使用道具 举报

69

主题

475

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1334
金钱
1334
注册时间
2013-12-28
在线时间
197 小时
发表于 2016-6-5 22:30:05 | 显示全部楼层
OSTimeDlyHMSM是改变OS_TCB的延迟参数,通过心跳去控制的。使用这个延迟函数之后,CPU可以去执行别的工作。但delay_ms在没有UCOS的时候是软延迟,也就是CPU一直在执行这段延迟函数,直到延迟结束。delay_ms在UCOS启动时是怎么执行的我就没有研究了。
回复

使用道具 举报

58

主题

359

帖子

0

精华

高级会员

Rank: 4

积分
987
金钱
987
注册时间
2014-9-29
在线时间
261 小时
 楼主| 发表于 2016-6-5 22:52:37 | 显示全部楼层
jiaozhu 发表于 2016-6-5 22:30
OSTimeDlyHMSM是改变OS_TCB的延迟参数,通过心跳去控制的。使用这个延迟函数之后,CPU可以去执行别的工作。 ...

有UCOS,用delay_ms时,CPU不也是可以执行别的工作吗?
回复

使用道具 举报

69

主题

475

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1334
金钱
1334
注册时间
2013-12-28
在线时间
197 小时
发表于 2016-6-5 23:12:13 | 显示全部楼层
闪电之舞 发表于 2016-6-5 22:52
有UCOS,用delay_ms时,CPU不也是可以执行别的工作吗?

按道理  ,是可以的,但原子哥的delay_ms这个函数在UCOS中是怎么实现的  我没有仔细研究      你可以看下代码  
回复

使用道具 举报

69

主题

978

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3772
金钱
3772
注册时间
2015-4-26
在线时间
765 小时
发表于 2016-6-6 10:06:00 | 显示全部楼层
os那个是系统自带的延时,只能延时整数个节拍周期,delay_ms是原子哥自己写的可以延时任意ms。对整个ucos来说这两个函数从功能上是一致的,,都会引起任务调度
我有故事,你有酒吗
回复

使用道具 举报

58

主题

359

帖子

0

精华

高级会员

Rank: 4

积分
987
金钱
987
注册时间
2014-9-29
在线时间
261 小时
 楼主| 发表于 2016-6-6 15:37:28 | 显示全部楼层
来俩不甜的 发表于 2016-6-6 10:06
os那个是系统自带的延时,只能延时整数个节拍周期,delay_ms是原子哥自己写的可以延时任意ms。对整个ucos来 ...

既然这样,哪有没有什么区别,用的时候要注意些什么

还是,这两个完全是一样的,可以通用?
回复

使用道具 举报

58

主题

359

帖子

0

精华

高级会员

Rank: 4

积分
987
金钱
987
注册时间
2014-9-29
在线时间
261 小时
 楼主| 发表于 2016-6-6 20:30:01 | 显示全部楼层
来俩不甜的 发表于 2016-6-6 16:58
如果你节拍是200Hz,那想延时10ms这两个都可以用,如果想延时6ms那就只能有delay——ms才能得到正确的延 ...

那也就是说,只有精度不同,别的算是可以通用了?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-11 05:30

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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