打印

MSPML1306 delay_cycles(cycles)的时间计算和使用

[复制链接]
397|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
库函数中,可以调用函数    delay_cycles(xxx);  进行简单的延时。但是使用的时候,需要注意下面三点。

1、xxx使用的原型,不能简单的填数字,填这个数字的时候,数字必须是加括号的,比如delay_cycles(160000);是错误的。正确的应该是delay_cycles((160000));
2、delay_cycles(1);的时间是1个机器周期,如果主频是32M的,那么他的延时时间是1/32000000s,如果要延时5ms,那么xxx的值应该是(160000)。
3、要注意下面的函数解析中的典型方差这个概念,下面说的10 cycles不是指这个函数延时10个周期,是指他的方差是10个周期。

*                    Typical variance from this function is 10 cycles or
*                    less assuming that the function is located in flash and
*                    that caching is enabled. Disabling caching may result in
*                    wait-states when fetching from flash.

使用特权

评论回复
沙发
xyz549040622|  楼主 | 2023-8-27 18:55 | 只看该作者

使用特权

评论回复
板凳
tpgf| | 2023-9-8 15:39 | 只看该作者
用一个延时函数来适应不同型号的单片机  能实现吗

使用特权

评论回复
地板
guanjiaer| | 2023-9-8 16:03 | 只看该作者
tpgf 发表于 2023-9-8 15:39
用一个延时函数来适应不同型号的单片机  能实现吗

这个不行吧  即便是同一个单片机 时钟源不同 也没法适用啊

使用特权

评论回复
5
xyz549040622|  楼主 | 2023-9-8 16:16 | 只看该作者
tpgf 发表于 2023-9-8 15:39
用一个延时函数来适应不同型号的单片机  能实现吗

这个是不可能实现的,总是要调整一些东西来适应机器周期的。

使用特权

评论回复
6
keaibukelian| | 2023-9-8 16:43 | 只看该作者
为什么解析出来的是一个方差呢,而不是差值呢

使用特权

评论回复
7
观海| | 2023-9-8 18:59 | 只看该作者
为什么我们有时候会卡在延时函数中呢

使用特权

评论回复
8
heimaojingzhang| | 2023-9-8 19:26 | 只看该作者
为什么要在延时函数的参数那加双重小括号啊

使用特权

评论回复
9
paotangsan| | 2023-9-8 19:53 | 只看该作者
xyz549040622 发表于 2023-9-8 16:16
这个是不可能实现的,总是要调整一些东西来适应机器周期的。

可以考虑使用一个固定不变的定时器来做一个衡量或者是基准 来实现这个功能不

使用特权

评论回复
10
xyz549040622|  楼主 | 2023-9-8 21:00 | 只看该作者
paotangsan 发表于 2023-9-8 19:53
可以考虑使用一个固定不变的定时器来做一个衡量或者是基准 来实现这个功能不 ...

这就回到刚开始的那个问题了,无法适用所有型号的单片机。

使用特权

评论回复
11
xyz549040622|  楼主 | 2023-9-8 21:00 | 只看该作者
heimaojingzhang 发表于 2023-9-8 19:26
为什么要在延时函数的参数那加双重小括号啊

可以进去到函数里面后发现,他就是这样定义的,确实比较奇怪。

使用特权

评论回复
12
xyz549040622|  楼主 | 2023-10-12 21:29 | 只看该作者
观海 发表于 2023-9-8 18:59
为什么我们有时候会卡在延时函数中呢

有的延时函数是基于while循环的,而且递加或者递减的时候,要注意数据的溢出,数据的赋值和数据的类型要匹配。

使用特权

评论回复
13
dami| | 2023-10-16 09:03 | 只看该作者
不错,感谢分享。

使用特权

评论回复
14
lulugl| | 2023-10-16 09:38 | 只看该作者
tpgf 发表于 2023-9-8 15:39
用一个延时函数来适应不同型号的单片机  能实现吗

arm-contex M0/M0+有systick,配置好时钟后,他是可以通用的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:qq群: 嵌入式系统arm初学者 224636155←← +→→点击-->小 i 精品课全集,21ic公开课~~←←→→点击-->小 i 精品课全集,给你全方位的技能策划~~←←

2700

主题

19156

帖子

103

粉丝