導(dǎo)語(yǔ):
前面已經(jīng)演示了如何配置GPIO的輸入和輸出,這次就接著講GPIO的中斷如何使用
TOUR
首先MSPM0把CPU中斷,DMA觸發(fā),以及外設(shè)觸發(fā)外設(shè),都統(tǒng)稱為事件(Event)觸發(fā)源稱為事件發(fā)布者(Event Publisher),相應(yīng)中斷的外設(shè)被稱為事件訂閱者(Event Subscriber)。
Event的傳播路由分為三類,第一個(gè)是靜態(tài)事件路由(Static Event Route),就是指的事件發(fā)布者(Event Publisher)到事件訂閱者(Event Subscriber)是固定路徑,不可配置,例如外設(shè)到CPU的中斷,中斷標(biāo)志位需要手動(dòng)清除。
第二種稱為DMA事件路由(DMA Event Route),這個(gè)是外設(shè)與DMA的之間的點(diǎn)對(duì)點(diǎn)連接,路徑不可配置,中斷標(biāo)志會(huì)自動(dòng)清除
第三種稱為通用事件路由(Generic Event Route),就是外設(shè)到外設(shè),外設(shè)到DMA,CPU之間的可配置連接,例如定時(shí)器觸發(fā)ADC,IO觸發(fā)IO,這些都是通用事件路由,中斷標(biāo)志會(huì)自動(dòng)清除。
特別說(shuō)明的是,在通用事件路由中,Event Publisher是一個(gè),Event Subscriber最多支持到兩個(gè),也就是說(shuō),一個(gè)事件可以觸發(fā)最多兩個(gè)動(dòng)作,例如一個(gè)按鍵可以觸發(fā)兩個(gè)GPIO進(jìn)行翻轉(zhuǎn)。
下圖是MSPM0L系列的事件的路由表,綠色線是Event Publisher的路徑,紅色是Event Subscriber的路徑。
在本次的教程中,將使接在用PA7按鍵觸發(fā)PA0的LED點(diǎn)亮和熄滅,軟件上使用CPU中斷和通用事件路由兩種方式。
實(shí)操例程1
首先是CPU中斷的方式
用上一個(gè)GPIO的例程,在SYSCONFIG中,設(shè)置Key的中斷為允許,中斷方式為上升沿和下降沿都會(huì)觸發(fā),保存設(shè)置就可以了
程序也是比較簡(jiǎn)單,第一步需要開(kāi)啟PA的中斷,中斷函數(shù)使用的是GROUP1_IRQHandler,為什么是這個(gè)中斷函數(shù),其實(shí)上面的事件路由表已經(jīng)寫(xiě)了,GPIO到CPU的靜態(tài)事件路由,中斷請(qǐng)求使用的是GRP1.
關(guān)于中斷函數(shù)的名稱,可以在啟動(dòng)文件中找到中斷向量表。
整個(gè)程序也是比較簡(jiǎn)單。
配套工程名為 Interrput_CPU。
實(shí)操例程2
第二種是使用通用事件路由的方法,讓key直接觸發(fā)LED的翻轉(zhuǎn),不經(jīng)過(guò)CPU。
只需要在Key中配置事件發(fā)布通道,這里選擇的是1通道。
然后在LED中,配置事件訂閱通道,這里還是選擇1通道,就可以成功的把key的事件和LED連接起來(lái),同時(shí)在輸出策略這里配置為翻轉(zhuǎn),就可以實(shí)現(xiàn)LED的亮和滅。
最后保存配置就可以了,來(lái)到程序中,可以看到main什么都不需要寫(xiě),甚至連中斷都不需要打開(kāi),因?yàn)檫@個(gè)是觸發(fā)是通過(guò)外設(shè)到外設(shè)的連接,沒(méi)有經(jīng)過(guò)CPU干預(yù),所以除了初始化配置也就沒(méi)有任何額外的代碼。
配套工程名為 Interrput_Event。
MSPM0是允許靜態(tài)事件路由和通用事件路由同時(shí)存在的,在GPIO事件路由表中,可以看到CPU IRQ和FPUB兩個(gè)事件路由,也就是說(shuō),我們還可以寫(xiě)一個(gè)中斷函數(shù)來(lái)控制其他的外設(shè)。
這里需要說(shuō)明的是,GPIO里的FPUB_0(事件發(fā)布端口)和FSUB_0(事件訂閱端口)對(duì)應(yīng)的是某一組GPIO里面的0-15管腳,F(xiàn)PUB_1和FSUB_2對(duì)應(yīng)的是16-31管腳,也就是說(shuō),如果你想1個(gè)按鍵控制兩個(gè)LED,這兩個(gè)LED必須在不同GPIOx,或者至少在同一個(gè)GPIOx的不同區(qū)域(不能同時(shí)在0-15管腳或者16-31管腳)。
審核編輯:湯梓紅
-
cpu
+關(guān)注
關(guān)注
68文章
10807瀏覽量
210850 -
中斷
+關(guān)注
關(guān)注
5文章
895瀏覽量
41349 -
定時(shí)器
+關(guān)注
關(guān)注
23文章
3232瀏覽量
114332 -
開(kāi)發(fā)板
+關(guān)注
關(guān)注
25文章
4899瀏覽量
97064 -
GPIO
+關(guān)注
關(guān)注
16文章
1189瀏覽量
51839
原文標(biāo)題:MSPM0L1306開(kāi)發(fā)板教程3 - GPIO的中斷
文章出處:【微信號(hào):創(chuàng)易棧,微信公眾號(hào):創(chuàng)易?!繗g迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論