新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > DSP芯片TMS320f2812的外中斷

        DSP芯片TMS320f2812的外中斷

        作者: 時間:2011-06-06 來源:網(wǎng)絡 收藏

        一.實驗目的
        1.通過實驗熟悉F2812A的響應過程。
        2.學會C語言程序設計,以及運用程序控制程序流程。
        二.實驗原理
        1.中斷及中斷處理過程
        (1)中斷簡介
        中斷是一種由硬件或軟件驅動的信號,在接到此信號時,將當前程序懸掛起來,
        轉向去執(zhí)行另外一個任務,稱為中斷服務程序(ISR)。TMS320f28x 可支持32 個ISR,
        可由硬件或軟件觸發(fā)。
        所有的C28x 中斷,可以分成可屏蔽中斷和不可屏蔽中斷兩種,軟件中斷是不可屏蔽的。
        (2)處理中斷的步驟
        ①接收中斷請求。請求由軟件或硬件發(fā)出。
        ②響應中斷請求。對于可屏蔽中斷,需要滿足若干條件,才發(fā)生響應;而對于不可屏蔽中
        斷,則立即響應。
        ③準備執(zhí)行中斷服務程序。
        -完成當前正在執(zhí)行的指令;將進入流水線但還未解碼的指令清除。
        -自動保存若干寄存器的值到數(shù)據(jù)堆棧和系統(tǒng)堆棧。
        -取得用戶定義的中斷向量表中當前中斷向量,中斷向量指向中斷服務程序入口。
        ④執(zhí)行中斷服務程序。中斷服務程序包含中斷返回指令,這樣返回時可以出棧以前保存的
        關鍵寄存器數(shù)據(jù),從而恢復中斷服務程序執(zhí)行前的現(xiàn)場。
        (4)外中斷
        可以響應兩個外中斷。
        2.ICETEK-CTR板的鍵盤接口
        顯示/控制模塊ICETEK-CTR通過接口P8連接小鍵盤,接收小鍵盤傳送的掃描碼,并在
        每個掃描碼結束后保存,同時向DSP的XINT2 發(fā)送中斷信號;當DSP讀鍵盤時將掃描碼送到
        數(shù)據(jù)總線上。小鍵盤上每次按下一個鍵將產(chǎn)生2個掃描碼、2 次中斷。
        3.程序編制
        由一個不含中斷處理程序的工程通過改寫加入中斷處理程序部分大致需要如下操作(假設
        使用INT2):
        (1)編制中斷服務程序:可以用C語言程序實現(xiàn)(參見實驗程序),編寫單獨的一個函數(shù)XINT,
        此函數(shù)使用interrupt 修飾,沒有參數(shù)和返回值。
        (2)構造中斷向量表:程序中“InitPieVectTable();”是初始化向量表,
        “PieVectTable.XINT2 = XINT2_isr;”把中斷服務程序和向量表該中斷對應起來。
        (3)主程序中進行初始化設置:使能中斷,清中斷等。
        4.實驗程序流程圖(如下圖9-1所示):

        本文引用地址:http://www.104case.com/article/150624.htm

        圖9-1 程序流程圖
        三.實驗設備
        計算機,ICETEK-F2812-EDU實驗箱(或ICETEK 仿真器+ICETEK-F2812-A系統(tǒng)板+相關連
        線及電源)。
        四.實驗內容與步驟
        1.實驗準備
        (1)連接實驗設備:請參看本書第一部分、二。
        (2)連接實驗箱附帶的鍵盤的PS2插頭到ICETEK-CTR的“鍵盤接口”P8。
        (3)將ICETEK-CTR板的供電電源開關撥動到“開”的位置。
        2.設置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文件的內容,理解各語句作用。
        5.編譯、下載程序。
        6.運行程序,觀察結果。
        運行程序,按一下小鍵盤上任意一個鍵,注意觀察ICETEK-CTR板上指示燈閃爍的情況。
        7.觀察中斷函數(shù)的執(zhí)行
        選擇“Debug”菜單中“Halt”暫停運行程序,在XINT2 中斷程序中的語句上加軟件斷
        點,重新運行程序(選擇“Debug”菜單中“Run”),觀察何時程序停留在斷點上。
        8.退出CCS
        五.預習要求
        1.了解F2812A的中斷響應過程。

        2.了解C語言中斷程序設計。
        六.注意事項
        本實驗要注意連接實驗箱的連接。
        七.思考題
        修改程序完成按鍵中斷控制的指示燈依次逐一點亮功能。
        八.實驗報告要求
        1.說明該實驗中,每次按下鍵盤均會發(fā)生幾次中斷?
        2.說明該實驗中產(chǎn)生連續(xù)的中斷的條件。
        3.說明xint2 中斷函數(shù)被執(zhí)行的條件。



        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 永州市| 夹江县| 莱阳市| 乌鲁木齐市| 津南区| 偏关县| 当阳市| 长阳| 乐安县| 锡林郭勒盟| 宁南县| 中西区| 罗定市| 江陵县| 南华县| 咸丰县| 延安市| 田林县| 安龙县| 林州市| 清流县| 冀州市| 海兴县| 益阳市| 通州市| 威信县| 濮阳县| 扶风县| 东港市| 射洪县| 金华市| 岗巴县| 枣强县| 武宣县| 天镇县| 克什克腾旗| 祁连县| 乐都县| 云林县| 兰州市| 和田县|