實驗原理
中斷:當(dāng)外圍設(shè)備需要請求服務(wù)時,向CPU發(fā)出中斷請求,CPU響應(yīng)外圍設(shè)備中斷,停止執(zhí)行當(dāng)前程序,轉(zhuǎn)去執(zhí)行一個外圍設(shè)備服務(wù)的程序,此服務(wù)程序稱為中斷服務(wù)處理程序,或稱中斷服務(wù)子程序。中斷處理完畢,CPU又返回來執(zhí)行原來的程序。
中斷類型有圖中的幾種,其中復(fù)位中斷的優(yōu)先級是最高的;
優(yōu)先級次于復(fù)位中斷的是不可屏蔽中斷,當(dāng)使能時,不可屏蔽中斷即發(fā)生。
接下來的是12個可屏蔽硬件中斷,這種類型的中斷需要滿足一定條件下才能發(fā)生。需要在全局中斷使能、不可屏蔽中斷使能、可屏蔽中斷使能、中斷標志寄存器相應(yīng)位置1且沒有更高級的中斷在執(zhí)行的前提下才能發(fā)生。
接下來看一下硬件原理圖,實驗過程中使用的是USER0和USER1,對應(yīng)接口名字分別是“GPIO0[6]和GPIO6[1]”。
以USER0為例,當(dāng)按鍵按下時,GPIO0[6]為高電平,當(dāng)按鍵松開時,GPIO0[6]為低電平。
基于StarterWare控制外設(shè)時可調(diào)用對應(yīng)的API接口,無需配置復(fù)雜的寄存器。GPIO管腳復(fù)用配置的函數(shù)源碼可以查看GPIO.c。
配置GPIO管腳方向的函數(shù)源碼和函數(shù)使用說明可以查看gpio.c。其中,第一個參數(shù)時GPIO的基地址,第二個參數(shù)是GPIO的編號,第三個參數(shù)設(shè)置GPIO的方向。
中斷使用流程分為7個步驟:
(2)使能DSP全局中斷。
(3)配置按鍵腳的中斷觸發(fā)類型。包括上升沿、下降沿、雙邊觸發(fā)三種觸發(fā)方式。
(4)使能按鍵管腳所在的BANK中斷。
(5)注冊中斷服務(wù)函數(shù)。注冊中斷服務(wù)函數(shù)是重點,這個函數(shù)決定了中斷之后要做什么。
(6)映射中斷到DSP的12個可屏蔽中斷。
(7)使能DSP的可屏蔽中斷。
中斷使用的部分函數(shù)源碼和函數(shù)使用說明可以查看interrupt.c。
部分的函數(shù)源碼和函數(shù)使用說明可以查看gpio.c。
以中斷觸發(fā)類型配置函數(shù)為例,函數(shù)源碼和函數(shù)使用說明可以查看gpio.c。其中,第一個參數(shù)是GPIO的基地址,第二個參數(shù)是GPIO的編號,第三個參數(shù)設(shè)置中斷類型。
配置GPIO輸出值的函數(shù)源碼和函數(shù)使用說明可以查看gpio.c。其中,第一個參數(shù)是GPIO的基地址,第二個參數(shù)是GPIO的編號,第三個參數(shù)設(shè)置GPIO的電平。
操作現(xiàn)象
導(dǎo)入工程
編譯工程
將CCS連接開發(fā)板并加載程序
點擊運行程序
查看現(xiàn)象,按下USER1按鍵,核心板兩個LED開始循環(huán)點亮。按下USER0按鍵,核心板個LED停止循環(huán)點亮。
-
led燈
+關(guān)注
關(guān)注
22文章
1592瀏覽量
108000 -
DSP控制
+關(guān)注
關(guān)注
0文章
12瀏覽量
10592 -
GPIO
+關(guān)注
關(guān)注
16文章
1204瀏覽量
52099 -
中斷控制器
+關(guān)注
關(guān)注
0文章
59瀏覽量
9456 -
按鍵中斷
+關(guān)注
關(guān)注
0文章
15瀏覽量
6448
發(fā)布評論請先 登錄
相關(guān)推薦
評論