|
#include
#define uint unsigned int
sbit LED1=P0^0;
void delay(uint z);
void main()
{
while(1)
{
LED1=0;
delay(101);
LED1=1;
delay(101);
}
}
void delay(uint z)
{
uint x,y,a;
a=47;
while(a--);
for(x=81;x>0;x--)
for(y=z;y>0;y--);
}
//200.01845ms
//参数改为153则延时300.56532ms
发现只用for循环的delay会有较大误差,差个几百微秒,这时我插入了一个while循环,发现有微调的作用,最终调到了18微秒。不知道前辈们有没有更好的经验,定时就不用说了,呵呵,还没学到。
|
|