利用軟件循環方法進行延時的延時時間計算方法 本計算方法很簡單,特別在做各種時序的延時時,非常方便和準確。 當硬件晶振實際安裝和軟件編程都設定為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
|