疑惑…單片機進入中斷后不能執(zhí)行調延時程序?中斷服務程序里已寫延時程序…

疑惑…單片機進入中斷后不能執(zhí)行調延時程序?中斷服務程序里已寫延時程序…

通常在中斷子程序中是不調用延時子程序的,這樣會增加中斷處理時間,如果有其它低級中斷了,就會延誤響應中斷了。所以,中斷子程序中不要寫調用延時子程序,中斷子程序也不要寫得過長,處理過多的任務,要盡快處理后及時返回,如果中斷一次有很多任務需要執(zhí)行完全,可以在中斷子程序中設置一個標志位,在主程序中查這個標志位,當標志為1時,就在主程序中完成這些任務,這樣就不會影響其它中斷源的中斷,也不會使中斷產生混亂。

但不知,你這提問是想幫你寫程序昵,還是幫你分析中斷程序的寫法。

求教stc15系列單片機延時函數實際延時時間長了一倍是什么原因?

用軟件延時都是不準確的,特別是延時越長誤差越大。雖然是用一些軟件生成的,但編譯時生成的HEX代碼不一定是按生成軟件計算的來生成的,這樣,實際誤差就更大。

STC-ISP軟件也可以生成延時代碼,同樣,時間越長誤差越大。

你這延時2秒,要準確就用定時器,何必用延時程序。

單片機C語言編程中延時函數和定時器中斷有何關系

延時函數(延時子程序)是主程序正常運行時執(zhí)行的,—主程序運行的時間即是延時函數的延時時間。定時器中斷是在主程序中插入的事件,是在主程序的某個時間點,跳出主程序去執(zhí)行定時器中斷要做的事情。

所以如果一個延時子程序不停地被中斷(包括定時器中斷或者其他中斷)打斷,就沒有時間完成自身運行一次所需的那些語句。

等到它自身運行完一次,可能原定延時時間的很多倍百科已經過去了。

為什么進入中斷后不執(zhí)行中斷中的延時函數

1)