OpenEdv-开源电子网

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

uCOSII系统延时问题

[复制链接]

17

主题

84

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2015-11-30
在线时间
22 小时
发表于 2015-12-12 11:13:58 | 显示全部楼层 |阅读模式
5金钱
第一,我想问对于uCOS系统的延时,是不是只能延时整数倍个心跳周期?

对于这个问题,我自己几乎都可以肯定,不是只能延时整数倍个心跳周期,要是是这样的话,我感觉有点扯!那么第二个问题就来了、、、、、

第二,我想问对于延时时间不到整数个心跳周期的延时怎么实现,在延时的时候用不用执行任务调度?

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

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-12-12 11:26:11 | 显示全部楼层
对于UCOS里面最小的时间周期就是心跳周期,所以UCOS中的延时也是一心跳为单位的,所以只能延时整数个心跳周期,但是心跳周期你可以自己设置,比如你的心跳周期设置为1ms,那么你就可以延时n*1ms的时间,如果你的心跳周期为5ms,那么你的延时周期只能是5ms的倍数。但是我想延时7ms怎么办?用其他方式处理!对于这个问题我们的UCOS例程中的delay.c文件中的delay_ms()和delay_us()这两个函数都已经处理好了,可以延时任意的时间

开往春天的手扶拖拉机
回复

使用道具 举报

17

主题

84

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2015-11-30
在线时间
22 小时
 楼主| 发表于 2015-12-12 15:10:03 | 显示全部楼层
谢谢、、、、、、、、、
回复

使用道具 举报

17

主题

84

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2015-11-30
在线时间
22 小时
 楼主| 发表于 2015-12-12 15:51:03 | 显示全部楼层
我还想问,对与一个延时超过了一个心跳周期,系统就自动挂起该任务,然后等待时钟节拍服务函数给他的delay-1,等到为零之后在执行该任务。在这个之中,当delay函数刚刚挂起任务,这是系统调度来了,这样是不是延时就会断了,因为默认情况下系统心跳应该是5ms(假设5ms),可是应为设置延时的时间不知道定时器已经急了多少,所以是不是就没办法保证真的是5ms了?
回复

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
14980
金钱
14980
注册时间
2013-11-13
在线时间
1823 小时
发表于 2015-12-12 16:31:02 | 显示全部楼层
确是会这样,这个在UCOSIII里面有详细的讲解,延时函数有参数专门设置延时函数工作模式的,有绝对模式,相对模式,周期模式等几种
开往春天的手扶拖拉机
回复

使用道具 举报

17

主题

84

帖子

0

精华

初级会员

Rank: 2

积分
108
金钱
108
注册时间
2015-11-30
在线时间
22 小时
 楼主| 发表于 2015-12-12 19:48:22 | 显示全部楼层
谢谢!、、、、、、
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-25 17:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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