[技术求助] 不用定时器怎么用c程序写一个比较精确的延时子程序

[复制链接]
466|28
| 2018-7-10 18:48 | 显示全部楼层
使用__delay_cycles();
| 2018-7-10 18:50 | 显示全部楼层

这个还真不好办呢。
| 2018-7-10 18:52 | 显示全部楼层

不过时钟准了,就延时也准了。
| 2018-7-10 18:56 | 显示全部楼层

先是确定下单片机的主频频率的,然后就算下你的延时的时间的就ok了
| 2018-7-10 18:58 | 显示全部楼层

#define CPU_F ((double)8000000)
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))


很精确的延时,
 楼主 | 2018-7-10 19:00 | 显示全部楼层
嗯,我知道了, 多谢啊
| 2018-7-21 16:30 | 显示全部楼层
可以考虑使用软件定时器或者系统定时器进行精确定时延时
| 2018-7-21 16:31 | 显示全部楼层
使用__NOP()函数
| 2018-7-21 16:31 | 显示全部楼层
一种是硬件延时,要用到定时器/计数器
| 2018-7-21 16:31 | 显示全部楼层
用循环函数延时
| 2018-7-21 16:32 | 显示全部楼层
需要精确知道延时函数的具体延时时间。
| 2018-7-21 16:32 | 显示全部楼层
精确延时有吗
| 2018-7-21 16:33 | 显示全部楼层
C 语言最大的缺点就是实时性差
| 2018-7-21 16:33 | 显示全部楼层
软件延时的基本方法是调用延时子程序
| 2018-7-21 16:33 | 显示全部楼层
很多延时都直接用的 Sleep()
| 2018-7-21 16:34 | 显示全部楼层
C语言不能精确延时
| 2018-7-21 16:34 | 显示全部楼层
需要精确到什么程度呢?
| 2018-7-21 16:34 | 显示全部楼层
通过普通延时函数实现精确的定时
| 2018-7-21 16:34 | 显示全部楼层
以C语言编写的单片机延时函数
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式
我要创建版块 申请成为版主

论坛热帖

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