疑惑…單片機(jī)進(jìn)入中斷后不能執(zhí)行調(diào)延時(shí)程序?中斷服務(wù)程序里已寫延時(shí)程序…
疑惑…單片機(jī)進(jìn)入中斷后不能執(zhí)行調(diào)延時(shí)程序?中斷服務(wù)程序里已寫延時(shí)程序…
通常在中斷子程序中是不調(diào)用延時(shí)子程序的,這樣會(huì)增加中斷處理時(shí)間,如果有其它低級(jí)中斷了,就會(huì)延誤響應(yīng)中斷了。所以,中斷子程序中不要寫調(diào)用延時(shí)子程序,中斷子程序也不要寫得過(guò)長(zhǎng),處理過(guò)多的任務(wù),要盡快處理后及時(shí)返回,如果中斷一次有很多任務(wù)需要執(zhí)行完全,可以在中斷子程序中設(shè)置一個(gè)標(biāo)志位,在主程序中查這個(gè)標(biāo)志位,當(dāng)標(biāo)志為1時(shí),就在主程序中完成這些任務(wù),這樣就不會(huì)影響其它中斷源的中斷,也不會(huì)使中斷產(chǎn)生混亂。
但不知,你這提問(wèn)是想幫你寫程序昵,還是幫你分析中斷程序的寫法。
求教stc15系列單片機(jī)延時(shí)函數(shù)實(shí)際延時(shí)時(shí)間長(zhǎng)了一倍是什么原因?
用軟件延時(shí)都是不準(zhǔn)確的,特別是延時(shí)越長(zhǎng)誤差越大。雖然是用一些軟件生成的,但編譯時(shí)生成的HEX代碼不一定是按生成軟件計(jì)算的來(lái)生成的,這樣,實(shí)際誤差就更大。
STC-ISP軟件也可以生成延時(shí)代碼,同樣,時(shí)間越長(zhǎng)誤差越大。
你這延時(shí)2秒,要準(zhǔn)確就用定時(shí)器,何必用延時(shí)程序。
單片機(jī)C語(yǔ)言編程中延時(shí)函數(shù)和定時(shí)器中斷有何關(guān)系
延時(shí)函數(shù)(延時(shí)子程序)是主程序正常運(yùn)行時(shí)執(zhí)行的,—主程序運(yùn)行的時(shí)間即是延時(shí)函數(shù)的延時(shí)時(shí)間。定時(shí)器中斷是在主程序中插入的事件,是在主程序的某個(gè)時(shí)間點(diǎn),跳出主程序去執(zhí)行定時(shí)器中斷要做的事情。
所以如果一個(gè)延時(shí)子程序不停地被中斷(包括定時(shí)器中斷或者其他中斷)打斷,就沒(méi)有時(shí)間完成自身運(yùn)行一次所需的那些語(yǔ)句。
等到它自身運(yùn)行完一次,可能原定延時(shí)時(shí)間的很多倍百科已經(jīng)過(guò)去了。
為什么進(jìn)入中斷后不執(zhí)行中斷中的延時(shí)函數(shù)
1)