![]() |
你的定時器在while里一直初始化,導致定時器無法正常走時,它的預裝載寄存器數一直沒變 |
如果說你定時器的初始化函數放在while()里,那么你就一直在進行初始化,定時器不會走時的 |
HC6800-ES-V2.0 發表于 2019-2-2 08:47 好的 新人不懂規矩 下次會注意的 謝謝老哥 問題已經解決了 |
#include51.h 發表于 2019-2-2 18:04 新人不懂規矩 下次會注意的 問題已經解決啦 |
參與人數 1 | 黑幣 +15 | 收起 理由 |
---|---|---|
![]() | + 15 |
主要是沒有自動重載造成的!兩個辦法: 1、設置自動重載 2、中斷內再加載一次初值 |
兩位老兄對程序都很精通; |
第一:以后直接貼程序,不要貼這個圖,如果要修改,很不方便,可能就沒人理你了 第二:你的第二個程序,要把time()函數放在主循環while(1)之前啊,在主循環內,每次都重新設置定時器,當然就是你現在的結果哦。 第三:if (i==1000)這句,最好把條件改為i>=1000 |
非自動重裝定時器,中斷后要加一句TR0=1;才會繼續定時。 |