打印
[ZLG-ARM]

关于周工的延时程序

[复制链接]
1258|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huangbingg|  楼主 | 2008-4-24 13:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
周工好:
    这是你们书上的延时程序:
void DelayNs(uint32 dly)
{
    uint32 i;
    for(;dly>0;dly--)
       for(i=0;i<50000;i++);
}
有两个问题:

1.我想肯定若我调用delayNs(1),是不是就是延时1纳秒呢?你们精确测过吗?
2.此函数延时量i是50000,为啥有时你们书上写的却是5000呢?奇怪..

相关帖子

沙发
huangbingg|  楼主 | 2008-4-24 18:38 | 只看该作者

就确定下

周工出来答复下便可

使用特权

评论回复
板凳
wlsui| | 2008-4-24 22:50 | 只看该作者

软件延时是不可能精确的

只是一个大致的值
具体延时多长时间,跟处理器的主频,执行此段代码时有无中断打断等都有很大的关系
而且有些代码跟编译器的优化程度有关。如果需要精确定时,请考虑使用定时器。
                                   by zlgmcu engineer

使用特权

评论回复
地板
qguangdong| | 2008-4-28 17:29 | 只看该作者

*

偶通常都用定时器做延时

使用特权

评论回复
5
biao.l| | 2008-5-2 11:15 | 只看该作者

上述程序不可能是NS级的

我用delayNs(30),就基本1S时间了,
想要准确一点,还是直接读TC的值吧

使用特权

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

本版积分规则

58

主题

270

帖子

0

粉丝