Transcript Interrupt

[1024] Lecture 4
Interrupt
 認識Interrupt 中斷機制
 認識MSP430的中斷裝置
 藉由GPIO實作Interrupt Service Routine
Interrupt
Review- Interrupt 概念
 開啟回應中斷訊號
 利用中斷訊號中斷當前工作
 藉由中斷向量執行中斷副程式(ISR,
Interrupt Service Routine)
 清除中斷旗標(IF, Interrupt Flag)
 由中斷副程式返回
Interrupt
MSP430F5438 中斷裝置
Interrupt
MSP430F5438 中斷裝置
Interrupt
Interrupt 實作,以GPIO為例
 藉由GPIO觸發中斷訊號
 MSP430的P1及P2具有中斷能力
 撰寫程式回應EVM上的Key 1~Key5
所觸發的中斷
Interrupt
GPIO中斷的相關暫存器
 PxIE
 PxIES
 PxIFG
 PxIV
Interrupt
PxIE Interrupt Enable registers
 控制是否回應來自GPIO的中斷,是
一個可讀寫的暫存器
 PxIE中的每個bit 對應到PORTx的每
個pin腳。
 PxIE的設定:
Bit 1 = The interrupt is enabled.
Bit 0 = The interrupt is disabled.
Interrupt
PxIES Interrupt Edge Select registers
 控制來自GPIO的中斷是上沿觸發或是下
沿觸發,是一個可讀寫的暫存器。
 PxIES中的每個bit 對應到PORTx的每個
pin腳。
 PxIES的設定:
Bit 1 = High-to-low transition trigger.
Bit 0 = Low-to-high transition trigger.
Interrupt
PxIFG Interrupt Flag registers
 中斷旗標,在全域中斷和GPIO中斷啟動
回應,由中斷訊號產生時自動設1,需要
編輯指令將其復位。
 PxIFG中的每個bit 對應到PORTx的每個
pin腳。
 PxIFG的設定:
Bit 1 = 有中斷訊號進入.
Bit 0 =沒有中斷訊號進入.
Interrupt
PxIV Interrupt Vector
 中斷向量
 以P2為例,P2.x所觸發的中斷皆會進入
P2的中斷副程式,P2IV的值會讓我們知
道是由哪一個pin觸發
Interrupt
PxIV Interrupt Vector
Interrupt
中斷副程式的寫法
 #pragma vector=PORT2_VECTOR
 __interrupt void Port_2(void)
Interrupt
主程式的配置
 Global Interrupt Enable:
__bis_SR_register(GIE);
Interrupt
範例1
 利用EVM上的按鈕1 (S1)觸發中斷,切換D3
的狀態。
 範例程式下載↓
http://ares.ee.nchu.edu.tw/nslab/microlab102/lab4-1.c
Interrupt
範例1
 在主程式中配置D2、D3交替閃爍。
 在主程式中配置S1的GPIO輸入。
 在主程式中開啟全域中斷以及S1 腳位的回應
 配置為Falling Edge觸發。
Interrupt
範例1
 撰寫一個中斷副程式,中斷向量為
PORT2_VECTOR
 中斷副程式中,切換D3的值
 加入delay 避免按鍵彈跳
 清除S1對應的Interrupt Flag.
[1024] Lecture 4
Lab4-1:
編輯範例1,加入S2觸發中斷功能。
Interrupt
範例2
 利用S1、S2觸發中斷,以P2IV判斷中斷訊號
來源,並以LCM顯示。
 範例程式下載↓
http://ares.ee.nchu.edu.tw/nslab/microlab102/lab4-2.c
http://ares.ee.nchu.edu.tw/nslab/microlab102/lcd.h
Interrupt
範例2
 如範例1,在主程式中撰寫各項配置。
並閃爍D2,以及在LCM上顯示
“Stand by”。
 如範例1,撰寫一個中斷副程式,當中以
switch(P2IV) 選擇程式敘述。
 自msp430x54x.h 或User’s Guide中查詢對應的
P2IV值,撰寫對應的程式敘述。
[1024] Lecture 4
Lab4-2:
以範例2為基礎,加入S3~S5的中斷功能。
在中斷副程式中,我們要讓LCM顯示觸發中斷
的按鈕是哪一個。
[1024] Lecture 4
 完成後,找到專案裡面的source file,以附
檔形式寄到 [email protected],並在
主旨中註明姓名、系級與學號,
source檔名稱請利於辨識。
EX:
 主旨:
微處理機實習 LAB3 胡國治 電機碩二 7101064123