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