打印

一个关于延时函数的问题

[复制链接]
2524|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dongjia|  楼主 | 2007-1-22 14:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我是个新手,在单片机方面刚刚上路,所以问个菜鸟问题。
下面这个函数我看不明白,请各位告诉我,谢谢。
1、i,j,k都是代表什么?
2、i=20,j=20,k=248是怎么得来的?

void delay02s(void)  //延时0.2秒子程序
{
  unsigned char i,j,k;
  for(i=20;i>0;i--)
  for(j=20;j>0;j--)
  for(k=248;k>0;k--);
}

相关帖子

沙发
倚天剑| | 2007-1-22 16:51 | 只看该作者

是经验值

for(k=248;k>0;k--);应该延时0.5mSec  200mSec = (20*20*0.5)mSec
k = 248; 可以是用软件仿真凑出来的,是经验值

使用特权

评论回复
板凳
dongjia|  楼主 | 2007-1-23 08:58 | 只看该作者

还可以是这样啊

谢谢大虾,我回去还得好好看看。

使用特权

评论回复
地板
c2619985| | 2007-1-24 15:09 | 只看该作者

2楼的?

不知道晶振是多大的情况下
没法计算延时的大小

使用特权

评论回复
5
skylinee| | 2007-1-25 17:53 | 只看该作者

怎么能说是经验值呢!

  比较准确一点的办法,是用汇编,看你这段程序用到了那些指令,然后计算指令周期,根据晶体频率方可以算出!

使用特权

评论回复
6
hziee30| | 2007-2-7 15:15 | 只看该作者

要精确的话还不如直接用汇编。

使用特权

评论回复
7
lyqun8002| | 2007-2-7 15:23 | 只看该作者

不好!

0.2秒、200毫秒,在单片机中也算是很长时间了,而其切这段时间除了中断,什么也不能做,不好!还不如用中断计时;没有时钟参考,搂主是咋的出0.2秒的?

使用特权

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

本版积分规则

13

主题

38

帖子

0

粉丝