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