[ZLG-ARM] 关于周工的延时程序

[复制链接]
1900|4
 楼主| huangbingg 发表于 2008-4-24 13:58 | 显示全部楼层 |阅读模式
周工好:<br />&nbsp;&nbsp;&nbsp;&nbsp;这是你们书上的延时程序:<br />void&nbsp;DelayNs(uint32&nbsp;dly)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;uint32&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;for(;dly&gt0;dly--)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt50000;i++);<br />}<br />有两个问题:<br /><br />1.我想肯定若我调用delayNs(1),是不是就是延时1纳秒呢?你们精确测过吗?<br />2.此函数延时量i是50000,为啥有时你们书上写的却是5000呢?奇怪..
 楼主| huangbingg 发表于 2008-4-24 18:38 | 显示全部楼层

就确定下

周工出来答复下便可
wlsui 发表于 2008-4-24 22:50 | 显示全部楼层

软件延时是不可能精确的

只是一个大致的值<br />具体延时多长时间,跟处理器的主频,执行此段代码时有无中断打断等都有很大的关系<br />而且有些代码跟编译器的优化程度有关。如果需要精确定时,请考虑使用定时器。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;by&nbsp;zlgmcu&nbsp;engineer
qguangdong 发表于 2008-4-28 17:29 | 显示全部楼层

*

偶通常都用定时器做延时
biao.l 发表于 2008-5-2 11:15 | 显示全部楼层

上述程序不可能是NS级的

我用delayNs(30),就基本1S时间了,<br />想要准确一点,还是直接读TC的值吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

58

主题

270

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部