如何计算C延时程序的准确时间

[复制链接]
3159|8
 楼主| 512365098 发表于 2011-9-28 08:57 | 显示全部楼层 |阅读模式
在很多场合,需要用到延时程序,一般都是几毫秒,但不知道该如何验证,到底是不是这么多。我看到一般都是用for循环语句来实现,有的一层,有的是两层嵌套,不知道里面的数字是如何得来的,请高手指教。
 楼主| 512365098 发表于 2011-9-28 08:58 | 显示全部楼层
举个例子,这是n ms的延时。
for( i = 0;i < n; i++ )
    {
        for( j = 0;j < 3;j++ )
          _NOP();
    }
21ID 发表于 2011-9-28 09:34 | 显示全部楼层
计算cyclecount,根据时钟来计算
 楼主| 512365098 发表于 2011-9-28 09:55 | 显示全部楼层
但是不知道一条C指令转换成多少条具有一个"cyclecount”的指令?
lilihua0721 发表于 2011-9-28 12:59 | 显示全部楼层
一般根据时钟来计算,换算成机器指令时间,延时程序最好用汇编编写
永远的不知 发表于 2011-9-28 16:04 | 显示全部楼层
实在不好计算,就用示波器查看。
21ID 发表于 2011-9-28 18:03 | 显示全部楼层
在simulator下看 4# 512365098
 楼主| 512365098 发表于 2011-9-29 16:11 | 显示全部楼层
示波器也是测量出来的,只是想通过理论来验证下,估计是不太好算,一条C指令不知道能转化成多少条“基本指令”?
永远的不知 发表于 2011-9-29 16:49 | 显示全部楼层
本帖最后由 永远的不知 于 2011-9-29 16:51 编辑

8# 512365098

要想弄清楚,你可以反汇编一下,如果用汇编编过延时,估计也就明白了。
不能看C指令,不同C指令编译出的汇编指令数量也不同,时间自然也不同。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:在路上……

0

主题

532

帖子

1

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