![]() |
發(fā)布時間: 2019-2-1 22:47
正文摘要:目的是實現(xiàn)1s間隔的led閃爍 第一張圖是標準程序 第二張里我把i作為全局變量提到大循環(huán)中 為什么就無法實現(xiàn)(燈一直亮) |
你的定時器在while里一直初始化,導(dǎo)致定時器無法正常走時,它的預(yù)裝載寄存器數(shù)一直沒變 |
如果說你定時器的初始化函數(shù)放在while()里,那么你就一直在進行初始化,定時器不會走時的 |
HC6800-ES-V2.0 發(fā)表于 2019-2-2 08:47 好的 新人不懂規(guī)矩 下次會注意的 謝謝老哥 問題已經(jīng)解決了 |
#include51.h 發(fā)表于 2019-2-2 18:04 新人不懂規(guī)矩 下次會注意的 問題已經(jīng)解決啦 |
參與人數(shù) 1 | 黑幣 +15 | 收起 理由 |
---|---|---|
![]() | + 15 |
主要是沒有自動重載造成的!兩個辦法: 1、設(shè)置自動重載 2、中斷內(nèi)再加載一次初值 |
兩位老兄對程序都很精通; |
第一:以后直接貼程序,不要貼這個圖,如果要修改,很不方便,可能就沒人理你了 第二:你的第二個程序,要把time()函數(shù)放在主循環(huán)while(1)之前啊,在主循環(huán)內(nèi),每次都重新設(shè)置定時器,當然就是你現(xiàn)在的結(jié)果哦。 第三:if (i==1000)這句,最好把條件改為i>=1000 |
非自動重裝定時器,中斷后要加一句TR0=1;才會繼續(xù)定時。 |
Powered by 單片機教程網(wǎng)