利用软件循环方法进行延时的延时时间计算方法 本计算方法很简单,特别在做各种时序的延时时,非常方便和准确。 当硬件晶振实际安装和软件编程都设定为24MHz时,适合本计算方法。当硬件晶振实际安装和软件编程都设定为12MHz时,延时时间会增大一倍,计算时公式中的us量均增加一倍。 本计算方法在循环次数在255以内,计算没有误差,当循环次数达到256时将有0.5us误差,随着循环次数继续增大,误差还将继续增加,当循环次数达到2560时将有5us误差,这个误差量是可以忍受的。 ...... void Delay1us(unsigned int i) { while(i--); } ...... { Delay1us(80); ...... } 当晶振为24MHz时的计算公式 设:X=计划延时时间值 i=循环次数值 已知:循环次数i=80,求:延时时间X值 解:X=12.5us+4.5us(i-1) X=12.5us+4.5us(80-1) X=12.5us+4.5us*79 X=12.5us+355.5us X=368us 已知:延时时间X=368us,求:循环次数i值 解:i=(X-12.5us)/4.5us+1 i=(368us-12.5us)/4.5us+1 i=355.5us/4.5us+1 i=79+1 i=80 当晶振为12MHz时的计算公式 设:X=计划延时时间值 i=循环次数值 已知:循环次数i=80,求:延时时间X值 解:X=25us+9us(i-1) X=25us+9us(80-1) X=25us+9us*79 X=25us+711us X=736us 已知:延时时间X=368us,求:循环次数i值 解:i=(X-25us)/9us+1 i=(736us-25us)/9us+1 i=711us/9us+1 i=79+1 i=80
|