delay

1. 毫秒级的延时

延时1ms;

void delay_1ms(void){

unsigned int i;

for(i=1;i<(unsigned int)(xtal*143-2);i++);

}

在上式中,xtal 为晶振频率,单位为MHz. AVR 延时程序

当晶振频率为8M 时,延时函数软件仿真的结果为1000.25μs.当晶振频率为4M 时,延时函数软件仿真结果为999.5μs. AVR 延时程序

如果需要准确的1ms 延时时间,则本计算公式只供参考,应通过软件仿真后,再确定循环的次数及循环初值,并且循环中还必须关闭全局中断,防止中断影响延时函数的延时时间。

下面的函数可以获得1ms 的整数倍的延时时间:

void delay(unsigned int n)

{unsigned int i;

for(i=0;i

delay_1ms();

}如果需要准确的延时时间,则本计算公式只供参考,应通过软件仿真后,再确定循环的次数及循环初值. AVR 延时程序

2. 微秒延时

晶振4M ,编辑器ICCAVR ,芯片mega16

//最大延时时间131.072ms

void delay(unsigned int i) //延时时间T=2*(i+1)us其中1=

{

while(--i);}

免费下载该文档:delay

delay的相关文档搜索

相关文档