请教一下,延时程序怎么计算延时时间。

[复制链接]
 楼主| impenger 发表于 2011-11-29 16:58 | 显示全部楼层 |阅读模式
经常在书上看到这样的延时程序,可是不知道具体的延时时间,那个大侠能说一下么?
void DelayMS(uint x)
{ uchar i;
   while(x--)for(i=0;i<m;i++);
}
  
.......................
省略的程序
.......................
........................
DelayMS(n)
m和n是具体的数值,谢谢。
huang1shan 发表于 2011-11-29 17:47 | 显示全部楼层
利用的是while循环,就是程序在这句一直运行,直到FOR语句完成,然后跳出
其实就是延时了多少机器周期
因为在while里运行了很多次
PaperKite 发表于 2011-11-30 14:11 | 显示全部楼层
可以用反汇编语句逐条指令时间相加,或用仿真,设好晶振频率,在延时函数前后做断点,看运行时间。
chenczy 发表于 2011-11-30 15:36 | 显示全部楼层
用示波器测最准了
huzaizai007 发表于 2011-11-30 16:27 | 显示全部楼层
跟晶振和单片机的机器时间有关……
keil里设置俩中断,算一下就成了
joinj 发表于 2011-11-30 19:02 | 显示全部楼层
用示波器测最准了
chenczy 发表于 2011-11-30 15:36


这个最可靠····找个IO在循环最内层取反  看波形····测完了换个BIT变量在里面取反,不然时间会变
菜鸟同学 发表于 2011-11-30 19:06 | 显示全部楼层
看反汇编计算指令执行的时间。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

66

帖子

1

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

1

主题

66

帖子

1

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