標(biāo)題: 利用軟件循環(huán)方法進(jìn)行延時(shí)的延時(shí)時(shí)間計(jì)算方法 [打印本頁(yè)]

作者: 不倒翁.WZT    時(shí)間: 2016-12-4 11:48
標(biāo)題: 利用軟件循環(huán)方法進(jìn)行延時(shí)的延時(shí)時(shí)間計(jì)算方法
利用軟件循環(huán)方法進(jìn)行延時(shí)的延時(shí)時(shí)間計(jì)算方法
本計(jì)算方法很簡(jiǎn)單,特別在做各種時(shí)序的延時(shí)時(shí),非常方便和準(zhǔn)確。
當(dāng)硬件晶振實(shí)際安裝和軟件編程都設(shè)定為24MHz時(shí),適合本計(jì)算方法。當(dāng)硬件晶振實(shí)際安裝和軟件編程都設(shè)定為12MHz時(shí),延時(shí)時(shí)間會(huì)增大一倍,計(jì)算時(shí)公式中的us量均增加一倍。
    本計(jì)算方法在循環(huán)次數(shù)在255以內(nèi),計(jì)算沒有誤差,當(dāng)循環(huán)次數(shù)達(dá)到256時(shí)將有0.5us誤差,隨著循環(huán)次數(shù)繼續(xù)增大,誤差還將繼續(xù)增加,當(dāng)循環(huán)次數(shù)達(dá)到2560時(shí)將有5us誤差,這個(gè)誤差量是可以忍受的。
......
void Delay1us(unsigned int i)
{                       
while(i--);     
}
......
{
  Delay1us(80);
  ......
}
當(dāng)晶振為24MHz時(shí)的計(jì)算公式
設(shè):X=計(jì)劃延時(shí)時(shí)間值  i=循環(huán)次數(shù)值  
已知:循環(huán)次數(shù)i=80,求:延時(shí)時(shí)間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                                
已知:延時(shí)時(shí)間X=368us,求:循環(huán)次數(shù)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
當(dāng)晶振為12MHz時(shí)的計(jì)算公式
設(shè):X=計(jì)劃延時(shí)時(shí)間值  i=循環(huán)次數(shù)值  
已知:循環(huán)次數(shù)i=80,求:延時(shí)時(shí)間X      
解:X=25us+9us(i-1)                 
   X=25us+9us(80-1)                  
   X=25us+9us*79                     
   X=25us+711us                       
   X=736us                                
已知:延時(shí)時(shí)間X=368us,求:循環(huán)次數(shù)i
解:i=(X-25us)/9us+1
i=(736us-25us)/9us+1
i=711us/9us+1
i=79+1
i=80

kile軟件利用大循環(huán)的方法進(jìn)行延時(shí)的延時(shí)時(shí)間計(jì)算方法.docx.zip

11.1 KB, 下載次數(shù): 18, 下載積分: 黑幣 -5


作者: admin    時(shí)間: 2016-12-4 15:23
謝謝分享很好  不過(guò)樓主的壓縮包是空的呢?是不是搞錯(cuò)了?
作者: 不倒翁.WZT    時(shí)間: 2016-12-4 21:14
標(biāo)題: RE: 利用軟件循環(huán)方法進(jìn)行延時(shí)的延時(shí)時(shí)間計(jì)算方法
admin 發(fā)表于 2016-12-4 15:23
謝謝分享很好  不過(guò)樓主的壓縮包是空的呢?是不是搞錯(cuò)了?

看看這回怎樣
作者: 不倒翁.WZT    時(shí)間: 2016-12-4 21:21
admin 發(fā)表于 2016-12-4 15:23
謝謝分享很好  不過(guò)樓主的壓縮包是空的呢?是不是搞錯(cuò)了?

再發(fā)一遍,看看怎樣?

作者: 不倒翁.WZT    時(shí)間: 2016-12-5 07:55
標(biāo)題: RE: 利用軟件循環(huán)方法進(jìn)行延時(shí)的延時(shí)時(shí)間計(jì)算方法
admin 發(fā)表于 2016-12-4 15:23
謝謝分享很好  不過(guò)樓主的壓縮包是空的呢?是不是搞錯(cuò)了?

真是對(duì)不起,怎么會(huì)出現(xiàn)這樣的錯(cuò)誤?給你連發(fā)兩個(gè)壓縮包還是失敗的,這回連壓縮包都沒有,不知什么原因。在我的帖子上又發(fā)了一個(gè),這個(gè)11K的壓縮包應(yīng)該是個(gè)真的。
作者: 特立獨(dú)行solider    時(shí)間: 2016-12-5 11:00
同樣是這個(gè)問(wèn)題呀
作者: 不倒翁.WZT    時(shí)間: 2016-12-6 05:41
標(biāo)題: RE: 利用軟件循環(huán)方法進(jìn)行延時(shí)的延時(shí)時(shí)間計(jì)算方法
特立獨(dú)行solider 發(fā)表于 2016-12-5 11:00
同樣是這個(gè)問(wèn)題呀

11.1KB的壓縮包不是個(gè)空的,我自己解壓了一下,是正確的,是一個(gè)WPS文檔。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1