打印

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

[复制链接]
1729|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 | 只看该作者
用示波器测最准了

使用特权

评论回复
5
huzaizai007| | 2011-11-30 16:27 | 只看该作者
跟晶振和单片机的机器时间有关……
keil里设置俩中断,算一下就成了

使用特权

评论回复
6
joinj| | 2011-11-30 19:02 | 只看该作者
用示波器测最准了
chenczy 发表于 2011-11-30 15:36


这个最可靠····找个IO在循环最内层取反  看波形····测完了换个BIT变量在里面取反,不然时间会变

使用特权

评论回复
7
菜鸟同学| | 2011-11-30 19:06 | 只看该作者
看反汇编计算指令执行的时间。

使用特权

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

本版积分规则

1

主题

66

帖子

1

粉丝