定時器中斷是由單片機中的定時器溢出而申請的中斷。51單片機中有兩個定時器T0和T1。STM32中共有11個定時器。
一、定時器中斷是什么意思
定時器中斷是由單片機中的定時器溢出而申請的中斷。
51單片機中有兩個定時器T0和T1:
(1)TF0:定時器T0溢出中斷請求。當(dāng)定時器TO產(chǎn)生溢出時,TO中斷請求標(biāo)志TF0置1,請求中斷處理。
(2)TF1:定時器T1溢出中斷請求。當(dāng)定時器Tl產(chǎn)生溢出時,T1中斷請求標(biāo)志TF1置1,請求中斷處理。
Stm32共有11個定時器:
1、兩個高級定時器:TIM1、TIM8-------------------------APB2
2、四個通用定時器:TIM2~TIM5-------------------------APB1
3、兩個基本定時器:TIM6、TIM7-------------------------APB1
4、兩個看門狗
5、一個系統(tǒng)嘀嗒定時器(SysTick)
二、定時器中斷原理
所謂中斷就是程序執(zhí)行的正常的時候,出現(xiàn)了突發(fā)事件,CPU停止當(dāng)前的程序的執(zhí)行,轉(zhuǎn)去處理突發(fā)事件,處理完畢后又返回原程序被中斷的位置繼續(xù)執(zhí)行。
中斷可以被分為內(nèi)部中斷和外部中斷,內(nèi)部中斷的來源來自CPU內(nèi)部(軟件中斷指令,溢出,除法錯誤等,例如操作系統(tǒng)從用戶態(tài)切換到內(nèi)核態(tài)需借助CPU內(nèi)部的軟件中斷),外部中斷的中斷源來自CPU外部,由外設(shè)提出請求。
中斷過程:一個完整的中斷傳送方式的處理過程應(yīng)包括中斷請求、中斷優(yōu)先權(quán)判別、中斷響應(yīng)、中斷處理和中斷返回等幾個步驟。
中斷源:
(1)INTO:外部中斷0請求,由P3.2引腳輸入。它有兩種觸發(fā)方式,通過IT0(TCON.O)來決定是電平觸發(fā)方式還是邊沿觸發(fā)方式。一旦輸入信號有效,則向CPU申請中斷,并且將中斷標(biāo)志IEO置1。
(2)INT1:外部中斷1請求,由P3.3引腳輸入。通過IT1(TCON.2)來決定是電平觸發(fā)方式還是邊沿觸發(fā)方式。一旦輸入信號有效,則向CPU申請中斷,并將中斷標(biāo)志IE1置1。
(3)TF0:定時器T0溢出中斷請求。當(dāng)定時器TO產(chǎn)生溢出時,TO中斷請求標(biāo)志TF0置1,請求中斷處理。
(4)TF1:定時器T1溢出中斷請求。當(dāng)定時器Tl產(chǎn)生溢出時,T1中斷請求標(biāo)志TF1置1,請求中斷處理。
(5)TI/RI:串行口發(fā)送/接收中斷請求。當(dāng)通過串行口發(fā)送或接收完一幀串行數(shù)據(jù)時,串行口中斷請求標(biāo)志TI或RI置1,請求中斷處理。
三、定時器中斷程序流程
定時器工作的流程可以按照這個順序(以51為例用定時器0方式一產(chǎn)生50毫秒的定時):
1、確定使用哪個定時器,使用哪種方式,這一步通過TMOD設(shè)置,TMOD的低四位是設(shè)置定時器0的,高四位是用來設(shè)置定時器1的,其中的M0,M1是用來設(shè)置定時器工作在哪種方式,GATE一般用不要設(shè)置,C/T是選擇計數(shù)模式還是定時模式的,如:TMOD=0X01,就說明定時器0工作在方式1。
2、接下來就要設(shè)置定時的時間,用定時器定時50毫秒,可以用這種方式TH0=(65535-50000)/256,TL0=(65535-50000)%256;可以這樣理解:因為這是定時器的初值,也就是說計數(shù)脈沖就是在這個數(shù)的基礎(chǔ)上向上遞增,到達65535后就溢出產(chǎn)生中斷。
3、第三步打開中斷,使用IE寄存器,首先打開總中斷EA=1,這一步是所有中斷所必須的,然后打開定時器0中斷,ET0=1。
4、這時準(zhǔn)備工作結(jié)束,啟動定時器,使用TCON寄存器,TR0=1,實現(xiàn)了一個50毫秒的定時。
-
單片機
+關(guān)注
關(guān)注
6032文章
44525瀏覽量
633258 -
定時器
+關(guān)注
關(guān)注
23文章
3241瀏覽量
114514 -
定時器中斷
+關(guān)注
關(guān)注
0文章
49瀏覽量
11165
發(fā)布評論請先 登錄
相關(guān)推薦
評論