標題:
定時器怎么實現(xiàn)按秒計數(shù),做成時鐘計數(shù)源?求解。!
[打印本頁]
作者:
ZZZZZ134679
時間:
2022-12-25 09:38
標題:
定時器怎么實現(xiàn)按秒計數(shù),做成時鐘計數(shù)源?求解。。
定時器不就是在中斷執(zhí)行的時候才開始運行嗎,那么我進行主程序的時候定時器0不就停止計數(shù),那計數(shù)就不準確了
作者:
coody_sz
時間:
2022-12-25 14:22
建議樓主找一本單片機課本系統(tǒng)學一學比較好,你問的是很基本的一個知識。
定時器只要啟動就會自動運行,跟開不開中斷無關。使用自動重裝的模式,則定時器精度就跟你的晶振的精度一樣。
作者:
bg5skf
時間:
2022-12-25 14:26
您理解有誤!定時器啟動后就開始運行。
作者:
wulin
時間:
2022-12-25 14:43
你可以把定時器理解為單片機之外的一個硬件,當操控TRx=1; 定時器x就開始工作,與主程序在干什么沒有什么直接關系。如果開了定時器中斷,那么定時時間到,TFx = 1通知CPU,CPU放下手頭工作做個標記,去執(zhí)行中斷任務,完后回到標記處繼續(xù)原來的任務。
作者:
gb302
時間:
2022-12-25 16:04
主程序只是響應中斷,定時器的運行模式確定后,就會循環(huán)的運行
作者:
新昌小徐
時間:
2022-12-25 19:05
定時器只要在程序中執(zhí)行啟動就能運行起來,TR0=1;就是使定時器0運行起來的語句。定時器0運行起來的工作內(nèi)容就是每個機器周期加1。
什么是機器周期呢?51單片機的機器周期是晶振周期的12倍,如晶振頻率是12M,那么它的周期是12M分之一,那么機器周期就是1M分之一,一兆就是10的6次方,那么它的周期就是10的負6次方,就是一微秒。
那么定時器開始工作就是每12個晶振振蕩加一次數(shù),即每1微秒加1.
當加到最大值的時候,再加1就變成0,然后再向上加。
只有當把對應的定時器中斷打開的時候,如ET0=1;就是打開定時器0的中斷,那么定時器0的溢出信號才能產(chǎn)生中斷,執(zhí)行此中斷服務程序。
你的思維有點混亂,定時器不是在中斷的時候才運行,而是只要啟動定時器就能運行,一旦啟動,就對每個機器周期進行計數(shù)。計到最大值后,再加1就會溢出,必須打開中斷開關,才能利用溢出信號產(chǎn)生中斷。
舉個粟子,你的鬧鐘只要把電池電源開關打開,鬧鐘就會走,當鬧鐘走到設定的指針與當前的時鐘指針重合時,鬧鐘不一定會響,只有打開了鬧鐘開關,才會響起鬧鐘,提醒你。
你的意思是鬧鐘響(中斷)是使鐘表走動的動力?這顯示是荒謬的。
作者:
Hephaestus
時間:
2022-12-25 19:41
如果進入主程序定時器0就停止計數(shù),那么要定時器有何用?
作者:
大漠落日
時間:
2022-12-28 11:07
你們問的太不專業(yè)了,是不是寫設計,這種問題自已都沒有理解,上課時怎么學習的
作者:
2(┯_┯)
時間:
2023-1-1 18:26
定時器與主函數(shù)運行時就開始運行
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1