0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

MSPM0L1306開(kāi)發(fā)板教程之GPIO的中斷

創(chuàng)易棧 ? 來(lái)源:創(chuàng)易棧 ? 2023-05-14 09:40 ? 次閱讀

導(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)清除。

c5b0219c-f10e-11ed-90ce-dac502259ad0.png

第二種稱為DMA事件路由(DMA Event Route),這個(gè)是外設(shè)與DMA的之間的點(diǎn)對(duì)點(diǎn)連接,路徑不可配置,中斷標(biāo)志會(huì)自動(dòng)清除

c5d25d0c-f10e-11ed-90ce-dac502259ad0.png

第三種稱為通用事件路由(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)。

c5f01ba8-f10e-11ed-90ce-dac502259ad0.png

下圖是MSPM0L系列的事件的路由表,綠色線是Event Publisher的路徑,紅色是Event Subscriber的路徑。

c6293654-f10e-11ed-90ce-dac502259ad0.png

在本次的教程中,將使接在用PA7按鍵觸發(fā)PA0的LED點(diǎn)亮和熄滅,軟件上使用CPU中斷和通用事件路由兩種方式。

實(shí)操例程1

首先是CPU中斷的方式

用上一個(gè)GPIO的例程,在SYSCONFIG中,設(shè)置Key的中斷為允許,中斷方式為上升沿和下降沿都會(huì)觸發(fā),保存設(shè)置就可以了

c690cf1c-f10e-11ed-90ce-dac502259ad0.png

程序也是比較簡(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)文件中找到中斷向量表。

c6bf362c-f10e-11ed-90ce-dac502259ad0.png

整個(gè)程序也是比較簡(jiǎn)單。

c6e044b6-f10e-11ed-90ce-dac502259ad0.png

配套工程名為 Interrput_CPU。

實(shí)操例程2

第二種是使用通用事件路由的方法,讓key直接觸發(fā)LED的翻轉(zhuǎn),不經(jīng)過(guò)CPU。

只需要在Key中配置事件發(fā)布通道,這里選擇的是1通道。

c70a5328-f10e-11ed-90ce-dac502259ad0.png

然后在LED中,配置事件訂閱通道,這里還是選擇1通道,就可以成功的把key的事件和LED連接起來(lái),同時(shí)在輸出策略這里配置為翻轉(zhuǎn),就可以實(shí)現(xiàn)LED的亮和滅。

c741e11c-f10e-11ed-90ce-dac502259ad0.png

最后保存配置就可以了,來(lái)到程序中,可以看到main什么都不需要寫(xiě),甚至連中斷都不需要打開(kāi),因?yàn)檫@個(gè)是觸發(fā)是通過(guò)外設(shè)到外設(shè)的連接,沒(méi)有經(jīng)過(guò)CPU干預(yù),所以除了初始化配置也就沒(méi)有任何額外的代碼。

c76de168-f10e-11ed-90ce-dac502259ad0.png

配套工程名為 Interrput_Event。

MSPM0是允許靜態(tài)事件路由和通用事件路由同時(shí)存在的,在GPIO事件路由表中,可以看到CPU IRQ和FPUB兩個(gè)事件路由,也就是說(shuō),我們還可以寫(xiě)一個(gè)中斷函數(shù)來(lái)控制其他的外設(shè)。

c76de168-f10e-11ed-90ce-dac502259ad0.png

這里需要說(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管腳)。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • cpu
    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)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    MSPM0L1306開(kāi)發(fā)板程之OPA

    MSPM0L系列的OPA是一個(gè)軌到軌輸入輸出的可編程運(yùn)算放大器,最大為32x,可以軟件配置為零漂移斬波放大器以提高精度和漂移性能,有專門(mén)優(yōu)化的輸入管腳的型號(hào)可以達(dá)到10pA的輸入偏置電流,標(biāo)準(zhǔn)模式為6MHz帶寬,低功耗模式下帶寬為1MHz,電流100uA。
    發(fā)表于 07-15 09:58 ?1911次閱讀
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>開(kāi)發(fā)板</b>教<b class='flag-5'>程之</b>OPA

    電賽:mspm0l1306開(kāi)發(fā)板可以燒錄程序,但是程序運(yùn)行不了,怎么解決這個(gè)問(wèn)題?

    mspm0l1306開(kāi)發(fā)板可以燒錄程序,但是程序運(yùn)行不了,怎么解決這個(gè)問(wèn)題?
    發(fā)表于 08-01 00:53

    MSPM0L1306開(kāi)發(fā)板程之開(kāi)發(fā)環(huán)境搭建

    TI的MSPM0L系列的開(kāi)發(fā),可以使用KEIL,IAR,CCS等開(kāi)發(fā)環(huán)境。仿真器可以使用ARM開(kāi)發(fā)常用的JLINK,以及TI的XDS仿真器。
    的頭像 發(fā)表于 04-23 10:11 ?1.1w次閱讀
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>開(kāi)發(fā)板</b>教<b class='flag-5'>程之</b><b class='flag-5'>開(kāi)發(fā)</b>環(huán)境搭建

    MSPM0L1306開(kāi)發(fā)板程之GPIO輸入輸出

    GPIO算是所有MCU入門(mén)的第一步,今天的教程就來(lái)教大家設(shè)置MSPM0L系列的GPIO的輸入輸出功能。
    的頭像 發(fā)表于 05-04 17:22 ?6164次閱讀
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>開(kāi)發(fā)板</b>教<b class='flag-5'>程之</b><b class='flag-5'>GPIO</b>輸入輸出

    MSPM0L1306開(kāi)發(fā)板程之運(yùn)行模式

    今天的教程講下MSPM0L系列的運(yùn)行模式。
    的頭像 發(fā)表于 05-29 11:21 ?2853次閱讀
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>開(kāi)發(fā)板</b>教<b class='flag-5'>程之</b>運(yùn)行模式

    MSPM0L1306開(kāi)發(fā)板程之DMA

    DMA使用是一個(gè)不需要CPU干預(yù),自己搬運(yùn)數(shù)據(jù)的模塊,在前面講中斷事件的章節(jié)里面,就有提到過(guò)事件的DMA通道,DMA事件路由(DMA Event Route)。
    的頭像 發(fā)表于 06-09 18:21 ?2616次閱讀
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>開(kāi)發(fā)板</b>教<b class='flag-5'>程之</b>DMA

    MSPM0L1306開(kāi)發(fā)板程之ADC

    MSPM0L系列的ADC是一個(gè)12bit的SAR ADC,采樣頻率最高1.45MHz,最高可做到11.2位的實(shí)際有效位(ENOB)。
    的頭像 發(fā)表于 06-10 10:16 ?3579次閱讀
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>開(kāi)發(fā)板</b>教<b class='flag-5'>程之</b>ADC

    MSPM0L1306開(kāi)發(fā)板程之通用定時(shí)器

    MSPM0L系列的通用定時(shí)器(TIMG)是一個(gè)16位的自動(dòng)重裝定時(shí)器,支持向下和上下計(jì)數(shù)兩種模式,同時(shí)帶有兩個(gè)比較捕獲單元,可以做到輸出比較,輸入捕獲,PWM輸出,單脈沖輸出等功能。
    的頭像 發(fā)表于 06-30 15:50 ?4051次閱讀
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>開(kāi)發(fā)板</b>教<b class='flag-5'>程之</b>通用定時(shí)器

    MSPM0L1306開(kāi)發(fā)板程之I2C

    MSPM0L系列的I2C支持主從模式,有7位地址位可以設(shè)置,速率最大1Mbps,無(wú)論是主機(jī)或者從機(jī),發(fā)送和接收都有獨(dú)立的8個(gè)字節(jié)FIFO。
    的頭像 發(fā)表于 06-30 15:50 ?3880次閱讀
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>開(kāi)發(fā)板</b>教<b class='flag-5'>程之</b>I2C

    MSPM0L1306開(kāi)發(fā)板教程- NVM(FLASH)

    MSPMPL系列中的NVM(Non Volatile Memory)非易失性存儲(chǔ),也就是我們常說(shuō)的FLASH。
    的頭像 發(fā)表于 07-08 10:52 ?2696次閱讀
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>開(kāi)發(fā)板</b>教程- NVM(FLASH)

    MSPM0L1306開(kāi)發(fā)板教程-SPI

    MSPM0L系列的SPI控制器最大頻率是16MHz,支持3線和4線的模式,帶有4個(gè)片選(CS),其中CS3支持命令模式(Command Mode)。
    的頭像 發(fā)表于 07-08 10:56 ?2417次閱讀
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>開(kāi)發(fā)板</b>教程-SPI

    MSPM0L1306開(kāi)發(fā)板程之COMP

    MSPM0L帶有模擬比較器功能,可以用于模擬信號(hào)的比較,用于中斷MCU或者觸發(fā)MCU其他外設(shè)。
    的頭像 發(fā)表于 07-15 09:56 ?1916次閱讀
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>開(kāi)發(fā)板</b>教<b class='flag-5'>程之</b>COMP

    MSPM0L1306開(kāi)發(fā)板程之WWDT

    窗口看門(mén)狗WWDT,MSPM0L系列的看門(mén)狗的時(shí)鐘使用的是32KHz的LFCLK,計(jì)數(shù)器有25位,寄存器可以有8個(gè)可選的計(jì)數(shù)周期,加上時(shí)鐘的最大8分頻,也就是有64檔計(jì)數(shù)周期可選,從1.95ms到8190s,有兩個(gè)閾值,關(guān)閉窗口(closed window)和打開(kāi)窗口(open window)。
    的頭像 發(fā)表于 07-15 10:01 ?1341次閱讀
    <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>開(kāi)發(fā)板</b>教<b class='flag-5'>程之</b>WWDT

    TI MSPM0L1306開(kāi)發(fā)板簡(jiǎn)介

    看參考設(shè)計(jì)的時(shí)候看到了這個(gè)芯片,和以往爛大街的芯片不一樣,它發(fā)布于今年3月。這個(gè)芯片更是TI這個(gè)老師傅狠狠的將活注入到MCU里面產(chǎn)生的奇妙產(chǎn)物。
    的頭像 發(fā)表于 12-15 10:00 ?6290次閱讀
    TI <b class='flag-5'>MSPM0L1306</b><b class='flag-5'>開(kāi)發(fā)板</b>簡(jiǎn)介

    MSPM0L1306 LaunchPad開(kāi)發(fā)套件(LP?MSPM0L1306)

    電子發(fā)燒友網(wǎng)站提供《MSPM0L1306 LaunchPad開(kāi)發(fā)套件(LP?MSPM0L1306).pdf》資料免費(fèi)下載
    發(fā)表于 10-29 09:44 ?0次下載
    <b class='flag-5'>MSPM0L1306</b> LaunchPad<b class='flag-5'>開(kāi)發(fā)</b>套件(LP?<b class='flag-5'>MSPM0L1306</b>)