打印
[51单片机]

单片机延时? 110 咋来的 求大佬讲解

[复制链接]
955|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fpgalover|  楼主 | 2019-9-27 11:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
ayb_ice| | 2019-9-27 13:13 | 只看该作者
谁説是1MS呢
这取决于太多因素,与内核有关,与编译器有关,与优化级别有关
看反汇编,算指令执行次数

使用特权

评论回复
板凳
tianxj01| | 2019-9-27 15:44 | 只看该作者
什么叫变量恒为110,你看的什么书?又是怎么理解的?
for语句,变量完全可以自己控制,根据所用芯片的指令效率,就可以确定出,一个for语句延时和变量的关系。而且这个变量,你完全可以根据自己的需要来确定。比如我算出来一个for语句的标准时间是12个时钟周期,而已知时钟周期=1uS,则一个循环时间为12uS,假如变量=100,则这个for循环时间=100*12=1.2mS。
用for循环延时,在无高频率中断情况下,还算比较准确,当在机器内部有高频率中断条件下,则误差会相当大,甚至是几倍关系都算正常,所以,这时候如果需要准确延时,则一般采用内部定时器来实现精确延时,比如9600波特率的软串口时钟,这个需要至少±2%的精度,则必须采用定时器来做。

使用特权

评论回复
地板
hayden0| | 2019-10-2 23:30 | 只看该作者
取反io,直接示波器看着调,不然影响因素太多没法算准确。
提醒你一点,最好别用死循环延时,效率太低!

使用特权

评论回复
5
fpgalover|  楼主 | 2019-10-20 14:47 | 只看该作者
感谢各位问题已解决

使用特权

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

本版积分规则

7

主题

25

帖子

0

粉丝