熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂(lè)園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
|
發(fā)布時(shí)間: 2020-10-17 10:47
正文摘要:關(guān)于51單片機(jī)定時(shí)器的問(wèn)題,初始化一次,中斷函數(shù)一次。請(qǐng)教。 |
|
哈哈哈, 第一次, 你可以不用, 就影響開機(jī)上電第一次的時(shí)間, 后面 ,就好比 一桶水, 慢慢漏, 漏的時(shí)間就是你定時(shí)時(shí)間, 等漏完的時(shí)候, 你是不是有要加滿 ? 這個(gè)定時(shí)器, 就是同樣道理, 每次漏完 就要去給值. 而第一次, 是不是也要給值的啊 |
| 因?yàn)門H, TL在你定時(shí)器啟動(dòng)后,就已經(jīng)自動(dòng)計(jì)數(shù)到0進(jìn)入中斷了,此時(shí)TH, TL的值已經(jīng)是0了,所以要重裝。除非你用定時(shí)器的模式2,自動(dòng)重裝,每次定時(shí)器都按照你的初始賦值進(jìn)行自動(dòng)重裝。 |
|
單片機(jī)系統(tǒng)上電的時(shí)候 初始化一次 然后等定時(shí)到了,進(jìn)了中斷,再次進(jìn)行重裝載,重新定時(shí),這個(gè)模式不i是自動(dòng)重裝載模式噢朋友 |
| 一個(gè)是初始化,一個(gè)是重裝載 |
| 因?yàn)槌跏蓟笤诙〞r(shí)器進(jìn)入中斷時(shí),如果沒有再次設(shè)置初值,定時(shí)器會(huì)自動(dòng)默認(rèn)初值為0,除了定時(shí)器的方式2,因?yàn)橛凶詣?dòng)重裝載,不用另外賦初值。 |
| 因?yàn)檫@樣才能精確定時(shí),否則定時(shí)器溢出后產(chǎn)生中斷,然后進(jìn)入中斷函數(shù),由于函數(shù)中沒有對(duì)定時(shí)器設(shè)置初值,此時(shí)定時(shí)器默認(rèn)高低位初值都為0,重新進(jìn)行計(jì)時(shí) ,當(dāng)然也有例外,比如方式2,只需要在主函數(shù)中裝一次初值,然后中斷函數(shù)中就不用再裝初值了,其他幾個(gè)方式都需要在中斷函數(shù)中重新載入初值。 |
| 是因?yàn)?1的定時(shí)器四種方式中,只有方式2是自動(dòng)重裝載初值(THX里面的初值會(huì)賦予給TLX),其他的都在中斷后需要重新裝載初值 |
|
初始化:定義初值,沒有定義就TH=TL=65536 中斷函數(shù):每次執(zhí)行中斷就重定義初值一次,要是設(shè)置自動(dòng)重裝就不用設(shè)置,沒有定義就TH=TL=65536 |
Powered by 單片機(jī)教程網(wǎng)