單片機(jī)中C語(yǔ)言延時(shí)函數(shù)
延時(shí)模塊:其中問(wèn)號(hào)代表要填的數(shù),要延時(shí)多少,到表格中去找數(shù)據(jù),然后填上就OK!切忌3條FOR語(yǔ)句不能顛倒順序
本文引用地址:http://m.butianyuan.cn/article/201611/318536.htmvoid Delay()
{
unsigned char a,b,c;
for(a=0;a;a++)
for(b=0;b;b++)
for(c=0;c;c++);
}
數(shù)據(jù)表如下
//
延時(shí)時(shí)間 a的值 b的值 c的值 延時(shí)誤差(us)
10us 1 1 1 -0.5
20us 1 1 8 0
30us 1 1 15 +0.5
40us 2 1 9 0
50us 1 1 28 0
60us 1 1 35 +0.5
70us 1 1 42 +1
80us 1 1 48 0
90us 1 1 55 +0.5
100us 1 1 61 -0.5
200us 1 1 128 0
300us 3 1 63 +1.5
400us 2 1 129 0
500us 5 1 63 +0.5
600us 6 1 63 0
700us 7 1 63 -0.5
800us 1 3 175 +0.5
900us 9 1 63 -1.5
1ms 1 3 219 -1.5
2ms 2 3 220 +3
3ms 3 3 220 +3
Xms X 3 220 +3
(X的范圍為2到255)
基本上我們平時(shí)用到的延時(shí)都在這里了,每種延時(shí)的誤差都很小,最大也不過(guò)3us,有的甚至沒(méi)有誤差,已經(jīng)很精確了,如果想延時(shí)1秒鐘,你可以連續(xù)調(diào)用延時(shí)250ms的程序4次,總共延時(shí)誤差12us,這樣的誤差已經(jīng)不算誤差了,用匯編語(yǔ)言編寫還達(dá)不到這個(gè)程度。
現(xiàn)在你不再為延時(shí)不精確擔(dān)憂了,參照表中的數(shù)據(jù)寫延時(shí),想延時(shí)多少就能延時(shí)多少。
再次重申:此表格是根據(jù)我的延時(shí)模塊編寫,這也是大多數(shù)朋友都習(xí)慣用的一個(gè)模塊,如果你用其他模塊或是改動(dòng)了我的模塊,延時(shí)都不準(zhǔn)的,不信大家可以試試?。?!
評(píng)論