打印

请问,这个延时函数的延时时间是怎么算的?

[复制链接]
6499|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hlhfootbal|  楼主 | 2007-6-17 14:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void delay_us(unsigned int Delay_Time){    //延迟15us
  unsigned char i;
  while(--Delay_Time){
  i=20;
  while(--i);          //0.75us延时
  };
}
说明:时钟16MHz

相关帖子

沙发
computer00| | 2007-6-17 14:44 | 只看该作者

试出来的。

使用特权

评论回复
板凳
hlhfootbal|  楼主 | 2007-6-17 20:15 | 只看该作者

怎么试啊,是不是用汇编写精确一些啊?

使用特权

评论回复
地板
FREETECH_S| | 2007-6-18 08:54 | 只看该作者

我这样算

(1/系统频率)*指令周期*i*Delay_Time+调用语延时函数的指令时间

使用特权

评论回复
5
hlhfootbal|  楼主 | 2007-6-18 17:37 | 只看该作者

谢谢,LS

C语言编写的也能这样算吗?

使用特权

评论回复
6
h0uwenb0| | 2007-6-19 19:21 | 只看该作者

我的拙见

不知你用的C编译调试的时候是不是有汇编代码,如果有找到那部分,然后计算.

如果没有,请试以下方法,不过你要有好的显波器才行:

写段程序,控制单片机某个引脚不停的输出高低电平之间调用以个延时函数,用显波器数中间的间隔就行了,只要你的显波器够好,达到你的要求不难.

如果没有那么好的设备,可以用这个延时写个时钟程序,让它多走一段时间然后跟据正常时钟比较,经过计算也可以修正过来,走得时间越久,计算值就越精确.

使用特权

评论回复
7
hlhfootbal|  楼主 | 2007-6-19 19:34 | 只看该作者

谢谢,LS

使用特权

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

本版积分规则

133

主题

417

帖子

1

粉丝