51学习之延时程序
时间:11-23
来源:互联网
点击:
延时本是一简单的事。在上学时也学过,上班后也见人家用。就是一简单的for循环啊!
可是我同样写了。可是不能延时啊。有这样的么?
上网小查了下说是:你定义参数是char型,就只能到256;是int 型,就取到65535.
问题出来了,我想延时长点,定义的int,直接填了150000.无知是可怕的啊!吸取教训,改到了50000行了吧?
一运行,还是不行!
没办法,只好调人家原程序了。人用的是两级for循环,50000*3 。一试成了。
再看自己的,还是不行。
照人家的改自己的程序,不行,不行,还是不行。
一个字一个字对,发现问题了,人家定义uint ,我的是int ,就这吗?可是,可是,没多大差别吧?算了,改改试试。一改unit ,成了。
看来问题就是这了,仔细想,终于想明白了这里头的玄机。
uint
程序如下:
Delay()
{int i,j;
for(i=0;i<32000;i++);
}
从网上看的:一般延时us,只用单个for,一般ms级的都用两个for就OK了。要是精确定时,就要用定时器了。我自己总结了下:单for,写到5000,还能看到灯闪;最在写到32000,灯闪,能知道,但是看不到灭的状态。双for,写到7000*3,差不多就可看到灭的状态。如果,执行一句要1us,大概就是20ms.至少要到ms级人眼才能识别。
51学习延时程 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)