导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→计算指令行数, 或者用c51的计时器

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

   aaa973 
aaa973发表的帖子 

 计算指令行数, 或者用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循环期间,计时器跑了多少,就可以算出时间了。


发表时间:2004年2月10日17:14:04

  
回复该帖

本主题共有 4 帖,分页:>>>>>该主题的所有内容[4]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  48431.[详细]看汇编代码
摘要:看汇编代码......(10字)
- [hpzjw][1191次] 2004年2月10日

[上一篇帖子]:看汇编代码
[下一篇帖子]:如何计算单片机一个For循环所需要的时间?如何计算单片机一个For循环所需要的时间? /P P