标题: 利用软件循环方法进行延时的延时时间计算方法 [打印本页]
作者: 不倒翁.WZT 时间: 2016-12-4 11:48
标题: 利用软件循环方法进行延时的延时时间计算方法
利用软件循环方法进行延时的延时时间计算方法
本计算方法很简单,特别在做各种时序的延时时,非常方便和准确。
当硬件晶振实际安装和软件编程都设定为24MHz时,适合本计算方法。当硬件晶振实际安装和软件编程都设定为12MHz时,延时时间会增大一倍,计算时公式中的us量均增加一倍。
本计算方法在循环次数在255以内,计算没有误差,当循环次数达到256时将有0.5us误差,随着循环次数继续增大,误差还将继续增加,当循环次数达到2560时将有5us误差,这个误差量是可以忍受的。
......
void Delay1us(unsigned int i)
{
while(i--);
}
......
{
Delay1us(80);
......
}
当晶振为24MHz时的计算公式
设:X=计划延时时间值 i=循环次数值
已知:循环次数i=80,求:延时时间X值
解:X=12.5us+4.5us(i-1)
X=12.5us+4.5us(80-1)
X=12.5us+4.5us*79
X=12.5us+355.5us
X=368us
已知:延时时间X=368us,求:循环次数i值
解:i=(X-12.5us)/4.5us+1
i=(368us-12.5us)/4.5us+1
i=355.5us/4.5us+1
i=79+1
i=80
当晶振为12MHz时的计算公式
设:X=计划延时时间值 i=循环次数值
已知:循环次数i=80,求:延时时间X值
解:X=25us+9us(i-1)
X=25us+9us(80-1)
X=25us+9us*79
X=25us+711us
X=736us
已知:延时时间X=368us,求:循环次数i值
解:i=(X-25us)/9us+1
i=(736us-25us)/9us+1
i=711us/9us+1
i=79+1
i=80
-
-
kile软件利用大循环的方法进行延时的延时时间计算方法.docx.zip
11.1 KB, 下载次数: 18, 下载积分: 黑币 -5
作者: admin 时间: 2016-12-4 15:23
谢谢分享很好 不过楼主的压缩包是空的呢?是不是搞错了?
作者: 不倒翁.WZT 时间: 2016-12-4 21:14
标题: RE: 利用软件循环方法进行延时的延时时间计算方法
看看这回怎样
作者: 不倒翁.WZT 时间: 2016-12-4 21:21
再发一遍,看看怎样?
作者: 不倒翁.WZT 时间: 2016-12-5 07:55
标题: RE: 利用软件循环方法进行延时的延时时间计算方法
真是对不起,怎么会出现这样的错误?给你连发两个压缩包还是失败的,这回连压缩包都没有,不知什么原因。在我的帖子上又发了一个,这个11K的压缩包应该是个真的。
作者: 特立独行solider 时间: 2016-12-5 11:00
同样是这个问题呀
作者: 不倒翁.WZT 时间: 2016-12-6 05:41
标题: RE: 利用软件循环方法进行延时的延时时间计算方法
11.1KB的压缩包不是个空的,我自己解压了一下,是正确的,是一个WPS文档。
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |