导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→如何计算单片机一个For循环所需要的时间?[guest]

 *第19080篇: 如何计算单片机一个For循环所需要的时间?

  
楼 主:guest 2004年2月10日16:46
 如何计算单片机一个For循环所需要的时间?
如何计算单片机一个For循环所需要的时间?
  
2楼:guest 2004年2月10日16:48
 如何计算单片机一个For循环所需要的时间
如何计算单片机一个For循环所需要的时间?如何计算单片机一个For循环所需要的时间?

例如:
for(i=999;i>  0;i--);
 所用的时间?

  
3楼:hpzjw 2004年2月10日17:22
 看汇编代码
看汇编代码
  
4楼:aaa973 2004年2月10日17:14
 计算指令行数, 或者用c51的计时器
以下是引用guest在2004-2-10 16:46:06的发言:
如何计算单片机一个For循环所需要的时间?如何计算单片机一个For循环所需要的时间?

一个办法是看指令的条数。假设用12M晶振,指令运行是12分频,可以看成指令运行频率为12M/12=1M,也就是一条指令需要 1/1m = 1us(1微秒)。调用一些系统函数时,你可能不知道该函数到底需要用几条指令,那么可以用另一个更准确的方法:计时/计数器。

在你的 for 部分之前初始化计时器,让它开始计时,例如
TMOD = 0x01;            // 计时器TC0 工作模式1,16位计时器
TH0 = 0;    // 计时器高位的初值,随便多少(0-255)
TL0 = 0;    // 计时器低位的初值,随便
TR0 = 1;    // 开始计时

for ()  {  } ....    // 你的语句

然后用keil的调试功能,显示timer0窗口,单步运行,你可以看到计时器开始以后,每运行一步,计时器的值加1。用12M晶振时,计时器的1个值表示1毫秒。你看for循环期间,计时器跑了多少,就可以算出时间了。


>>>>>>对该主题发表你的看法

本主题贴数4,分页: [第1页]


[上一篇主题]:MC35模块输出音量偏小的问题

[下一篇主题]:tpic6b595时序