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