DSP芯片TMS320f2812的外中斷
一.實驗?zāi)康?br />
1.通過實驗熟悉F2812A的中斷響應(yīng)過程。
2.學(xué)會C語言中斷程序設(shè)計,以及運用中斷程序控制程序流程。
二.實驗原理
1.中斷及中斷處理過程
(1)中斷簡介
中斷是一種由硬件或軟件驅(qū)動的信號,DSP在接到此信號時,將當前程序懸掛起來,
轉(zhuǎn)向去執(zhí)行另外一個任務(wù),稱為中斷服務(wù)程序(ISR)。TMS320f28x DSP可支持32 個ISR,
可由硬件或軟件觸發(fā)。
所有的C28x 中斷,可以分成可屏蔽中斷和不可屏蔽中斷兩種,軟件中斷是不可屏蔽的。
(2)DSP處理中斷的步驟
①接收中斷請求。請求由軟件或硬件發(fā)出。
②響應(yīng)中斷請求。對于可屏蔽中斷,需要滿足若干條件,才發(fā)生響應(yīng);而對于不可屏蔽中
斷,則立即響應(yīng)。
③準備執(zhí)行中斷服務(wù)程序。
-完成當前正在執(zhí)行的指令;將進入流水線但還未解碼的指令清除。
-自動保存若干寄存器的值到數(shù)據(jù)堆棧和系統(tǒng)堆棧。
-取得用戶定義的中斷向量表中當前中斷向量,中斷向量指向中斷服務(wù)程序入口。
④執(zhí)行中斷服務(wù)程序。中斷服務(wù)程序包含中斷返回指令,這樣返回時可以出棧以前保存的
關(guān)鍵寄存器數(shù)據(jù),從而恢復(fù)中斷服務(wù)程序執(zhí)行前的現(xiàn)場。
(4)外中斷
TMS320f2812 可以響應(yīng)兩個外中斷。
2.ICETEK-CTR板的鍵盤接口
顯示/控制模塊ICETEK-CTR通過接口P8連接小鍵盤,接收小鍵盤傳送的掃描碼,并在
每個掃描碼結(jié)束后保存,同時向DSP的XINT2 發(fā)送中斷信號;當DSP讀鍵盤時將掃描碼送到
數(shù)據(jù)總線上。小鍵盤上每次按下一個鍵將產(chǎn)生2個掃描碼、2 次中斷。
3.程序編制
由一個不含中斷處理程序的工程通過改寫加入中斷處理程序部分大致需要如下操作(假設(shè)
使用INT2):
(1)編制中斷服務(wù)程序:可以用C語言程序?qū)崿F(xiàn)(參見實驗程序),編寫單獨的一個函數(shù)XINT,
此函數(shù)使用interrupt 修飾,沒有參數(shù)和返回值。
(2)構(gòu)造中斷向量表:程序中“InitPieVectTable();”是初始化向量表,
“PieVectTable.XINT2 = &XINT2_isr;”把中斷服務(wù)程序和向量表該中斷對應(yīng)起來。
(3)主程序中進行初始化設(shè)置:使能中斷,清中斷等。
4.實驗程序流程圖(如下圖9-1所示):
圖9-1 程序流程圖
三.實驗設(shè)備
計算機,ICETEK-F2812-EDU實驗箱(或ICETEK 仿真器+ICETEK-F2812-A系統(tǒng)板+相關(guān)連
線及電源)。
四.實驗內(nèi)容與步驟
1.實驗準備
(1)連接實驗設(shè)備:請參看本書第一部分、二。
(2)連接實驗箱附帶的鍵盤的PS2插頭到ICETEK-CTR的“鍵盤接口”P8。
(3)將ICETEK-CTR板的供電電源開關(guān)撥動到“開”的位置。
2.設(shè)置Code Composer Studio 2.21在硬件仿真(Emulator)方式下運行
請參看本書第一部分、四、2。
3.啟動Code Composer Studio 2.21:請參看本書第一部分、五、2。
選擇菜單Debug→Reset CPU。
4.打開工程文件
工程目錄:C:ICETEK-F2812-A-EDUlabDSP281x_examplesLab0304-Xintxint.pjt
瀏覽xint.c文件的內(nèi)容,理解各語句作用。
5.編譯、下載程序。
6.運行程序,觀察結(jié)果。
運行程序,按一下小鍵盤上任意一個鍵,注意觀察ICETEK-CTR板上指示燈閃爍的情況。
7.觀察中斷函數(shù)的執(zhí)行
選擇“Debug”菜單中“Halt”暫停運行程序,在XINT2 中斷程序中的語句上加軟件斷
點,重新運行程序(選擇“Debug”菜單中“Run”),觀察何時程序停留在斷點上。
8.退出CCS
五.預(yù)習(xí)要求
1.了解F2812A的中斷響應(yīng)過程。
2.了解C語言中斷程序設(shè)計。
六.注意事項
本實驗要注意連接實驗箱的連接。
七.思考題
修改程序完成按鍵中斷控制的指示燈依次逐一點亮功能。
八.實驗報告要求
1.說明該實驗中,每次按下鍵盤均會發(fā)生幾次中斷?
2.說明該實驗中產(chǎn)生連續(xù)的中斷的條件。
3.說明xint2 中斷函數(shù)被執(zhí)行的條件。