|
|
大家在寫18B20函數(shù)的時候,因為DS18B20是慢速器件,需要延時,特別是初始化函數(shù)延時達480us之久,在使用一些程序時嚴重干擾其他程序正常運行,特別是點陣屏和數(shù)碼管,出現(xiàn)閃爍的現(xiàn)象。筆者在編寫程序的過程積累了經(jīng)驗,把一些工作比較久的函數(shù)當成延時來用,效果十分好,提高了程序效率。如下:
void reset_18b20()
{
DQ=0;
display(); //巧妙的把顯示函數(shù)當延時來用
DQ=1;
Conversion(); //巧妙的把農(nóng)歷轉(zhuǎn)換函數(shù)當延時來用
if(DQ)
err=1;
while(!DQ);
err=0;
}
上述例子是兩個函數(shù),一個是顯示函數(shù),一個是陽歷轉(zhuǎn)陰歷函數(shù),都是占用時間比較久的。經(jīng)過調(diào)試,顯示函數(shù)運行時間大約在480us,剛剛好。這樣,既調(diào)用了顯示函數(shù),又起到了延時作用,無需使用效率低的延時函數(shù)。
|
|