標題: 利用軟件循環方法進行延時的延時時間計算方法 [打印本頁]
作者: 不倒翁.WZT 時間: 2016-12-4 11:48
標題: 利用軟件循環方法進行延時的延時時間計算方法
利用軟件循環方法進行延時的延時時間計算方法
本計算方法很簡單,特別在做各種時序的延時時,非常方便和準確。
當硬件晶振實際安裝和軟件編程都設定為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
-
-
kile軟件利用大循環的方法進行延時的延時時間計算方法.docx.zip
2016-12-5 07:50 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
11.1 KB, 下載次數: 18, 下載積分: 黑幣 -5
作者: admin 時間: 2016-12-4 15:23
謝謝分享很好 不過樓主的壓縮包是空的呢?是不是搞錯了?
作者: 不倒翁.WZT 時間: 2016-12-4 21:14
標題: RE: 利用軟件循環方法進行延時的延時時間計算方法
看看這回怎樣
作者: 不倒翁.WZT 時間: 2016-12-4 21:21
再發一遍,看看怎樣?
作者: 不倒翁.WZT 時間: 2016-12-5 07:55
標題: RE: 利用軟件循環方法進行延時的延時時間計算方法
真是對不起,怎么會出現這樣的錯誤?給你連發兩個壓縮包還是失敗的,這回連壓縮包都沒有,不知什么原因。在我的帖子上又發了一個,這個11K的壓縮包應該是個真的。
作者: 特立獨行solider 時間: 2016-12-5 11:00
同樣是這個問題呀
作者: 不倒翁.WZT 時間: 2016-12-6 05:41
標題: RE: 利用軟件循環方法進行延時的延時時間計算方法
11.1KB的壓縮包不是個空的,我自己解壓了一下,是正確的,是一個WPS文檔。
| 歡迎光臨 (http://www.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |