複製鏈接
請複製以下鏈接發送給好友

定時器中斷

鎖定
定時器中斷是由單片機中的定時器溢出而申請的中斷。51單片機中有兩個定時器T0和T1。STM32中共有11個定時器。
中文名
定時器中斷
外文名
Timer Interrupt
所屬學科
自動控制
所屬學科
電子信息工程
性    質
由定時器溢出引發的中斷程序
應    用
程序延時、計算時間等
相關硬件
51單片機、STM32單片機等

定時器中斷產品參數

定時器中斷是由單片機中的定時器溢出而申請的中斷。
51單片機中有兩個定時器T0和T1:
TF0:定時器T0溢出中斷請求。當定時器TO產生溢出時,TO中斷請求標誌TF0置1,請求中斷處理。
TF1:定時器T1溢出中斷請求。當定時器Tl產生溢出時,T1中斷請求標誌TF1置1,請求中斷處理。
Stm32共有11個定時器:
1.兩個高級定時器:TIM1、TIM8-------------------------APB2
2.四個通用定時器:TIM2~TIM5-------------------------APB1
3.兩個基本定時器:TIM6、TIM7-------------------------APB1
4.兩個看門狗
5.一個系統嘀嗒定時器(SysTick)

定時器中斷定時/計數器

定時/計數器T0和T1分別是由兩個8位的專用寄存器組成,即定時/計數器T0由TH0和TL0組成,T1由TH1和TL1組成。此外,其內部還有2個8位的特殊功能寄存器TMOD和TCON,TMOD負責控制和確定T0和T1的功能和工作模式,TCON用來控制T0和T1啓動或停止計數,同時包含定時/計數器的狀態。 [1] 
TF1:定時器1溢出標誌。定時/計數器溢出時由硬件置位。中斷處理時由硬件清除。或用軟件清除。
TF0:定時器0溢出標誌。定時/計數器溢出時由硬件置位。中斷處理時由硬件清除,或用軟件清除。

定時器中斷中斷

所謂中斷就是程序執行的正常的時候,出現了突發事件,CPU停止當前的程序的執行,轉去處理突發事件,處理完畢後又返回原程序被中斷的位置繼續執行。
中斷可以被分為內部中斷和外部中斷,內部中斷的來源來自CPU內部(軟件中斷指令,溢出,除法錯誤等,例如操作系統從用户態切換到內核態需藉助CPU內部的軟件中斷),外部中斷的中斷源來自CPU外部,由外設提出請求。

定時器中斷中斷過程

一個完整的中斷傳送方式的處理過程應包括中斷請求中斷優先權判別、中斷響應中斷處理中斷返回等幾個步驟。 [1] 

定時器中斷中斷源

(1)INTO:外部中斷0請求,由P3.2引腳輸入。它有兩種觸發方式,通過IT0(TCON.O)來決定是電平觸發方式還是邊沿觸發方式。一旦輸入信號有效,則向CPU申請中斷,並且將中斷標誌IEO置1。
(2)INT1:外部中斷1請求,由P3.3引腳輸入。通過IT1(TCON.2)來決定是電平觸發方式還是邊沿觸發方式。一旦輸入信號有效,則向CPU申請中斷,並將中斷標誌IE1置1。
(3)TF0:定時器T0溢出中斷請求。當定時器TO產生溢出時,TO中斷請求標誌TF0置1,請求中斷處理。
(4)TF1:定時器T1溢出中斷請求。當定時器Tl產生溢出時,T1中斷請求標誌TF1置1,請求中斷處理。
(5)TI/RI:串行口發送/接收中斷請求。當通過串行口發送或接收完一幀串行數據時,串行口中斷請求標誌TI或RI置1,請求中斷處理。

定時器中斷工作流程

定時器工作的流程可以按照這個順序(以51為例用定時器0方式一產生50毫秒的定時)
1、確定使用哪個定時器,使用哪種方式,這一步通過TMOD設置,TMOD的低四位是設置定時器0的,高四位是用來設置定時器1的,其中的M0,M1是用來設置定時器工作在哪種方式,GATE一般用不要設置,C/T是選擇計數模式還是定時模式的,如:TMOD = 0X01,就説明定時器0工作在方式1。
2、接下來就要設置定時的時間,用定時器定時50毫秒,可以用這種方式TH0 = (65535 - 50000) / 256,TL0 = (65535 - 50000) % 256;可以這樣理解:因為這是定時器的初值,也就是説計數脈衝就是在這個數的基礎上向上遞增,到達65535後就溢出產生中斷。
3、第三步打開中斷,使用IE寄存器,首先打開總中斷EA = 1,這一步是所有中斷所必須的,然後打開定時器0中斷,ET0 =1。
4、這時準備工作結束,啓動定時器,使用TCON寄存器,TR0 = 1,實現了一個50毫秒的定時。
參考資料
  • 1.    姜志海,黃玉清,劉連鑫.單片機原理及應用(第3版):電子工業出版社,2013年08月