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

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

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

華芯微特MCU的嵌套向量中斷控制器與外部中斷/事件控制器的使用方法

電子工程師 ? 來(lái)源:華芯微特32位MCU ? 作者:華芯微特32位MCU ? 2021-06-04 12:08 ? 次閱讀

01.

嵌套向量中斷控制器(NVIC)

NVIC的全稱(chēng)是Nested vectoredinterrupt controller,即嵌套向量中斷控制器。

Cortex-M0和Cortex-M4提供了“嵌套向量中斷控制器(NVIC)”用以管理中斷事件。其中M0和M4提供的中斷優(yōu)先級(jí)及個(gè)數(shù)不一致,為了讓您更加簡(jiǎn)單的使用這一功能,下面小編將以SWM190為例,給大家展示如何使用SWM系列產(chǎn)品的NVIC。

SWM190系列32位MCU(以下簡(jiǎn)稱(chēng)SWM190)內(nèi)嵌ARM CortexTM-M0內(nèi)核,其中斷優(yōu)先級(jí)分為4級(jí),可通過(guò)中斷優(yōu)先級(jí)配置寄存器(IRQn)進(jìn)行配置。

特性

l 4位中斷優(yōu)先級(jí)

l 支持嵌套和向量中斷

l 硬件完成現(xiàn)場(chǎng)的保存和恢復(fù)

l 動(dòng)態(tài)改變優(yōu)先級(jí)

l 確定的中斷時(shí)間

l 可屏蔽中斷

在中斷發(fā)生時(shí),內(nèi)核比較中斷優(yōu)先級(jí),并自動(dòng)獲取入口地址,并保護(hù)現(xiàn)場(chǎng),將指定寄存器中數(shù)據(jù)入棧,此過(guò)程無(wú)需軟件參與。中斷服務(wù)程序結(jié)束后,由硬件完成出棧工作。同時(shí)支持“尾鏈”模式及“遲滯”模式,有效的優(yōu)化了中斷發(fā)生及背對(duì)背中斷的執(zhí)行效率,提高了中斷的實(shí)時(shí)性。嵌套向量中斷控制器管理著包括核異常等中斷。關(guān)于更多的異常和NVIC編程的說(shuō)明請(qǐng)參考SWM190數(shù)據(jù)手冊(cè)及M0權(quán)威指南。

02.

外部中斷/事件控制器(EXTI

EXTI的全程是External interrupt/event controller,即外部中斷/事件控制器,管理了控制器的32個(gè)中斷/事件線。每個(gè)中斷/事件線都對(duì)應(yīng)一個(gè)電平或者邊沿檢測(cè),電平檢測(cè)支持高電平/低電平檢測(cè);邊沿檢測(cè)包括上升沿/下降沿/雙邊沿觸發(fā)。

EXTI 可以實(shí)現(xiàn)對(duì)每個(gè)中斷/事件線進(jìn)行單獨(dú)配置,可以單獨(dú)配置為中斷或者事件,以及觸發(fā)事件的屬性。

SWM190提供了32個(gè)中斷供外設(shè)與核交互,其排列如表格 1所示。可以通過(guò)中斷配置模塊,將任意模塊或具體IO的中斷連接至指定中斷編號(hào)。具體使用參考中斷配置模塊。

03.

SWM190 EXTI功能配置庫(kù)函數(shù)

下面我們以最簡(jiǎn)單的按鍵輸入為例,用外部中斷的方法實(shí)現(xiàn)按鍵控制。在此例程中,我們將A4設(shè)為按鍵輸入引腳,A5設(shè)為輸出引腳,外接LED燈,通過(guò)按鍵翻轉(zhuǎn)LED的狀態(tài)來(lái)觀察現(xiàn)象。

我們之前有講到GPIO的配置方法,在這里就不在做贅述,將按鍵引腳通過(guò)GPIO_Init函數(shù)設(shè)為上拉輸入,并與外部按鍵電路連接,將LED輸出引腳通過(guò)GPIO_Init設(shè)置為輸出,與外部LED引腳相連。然后進(jìn)行外部中斷配置:

在SWM190固件庫(kù)中對(duì)外部中斷的配置進(jìn)行了說(shuō)明,下面將根據(jù)庫(kù)函數(shù)對(duì)SWM190的EXTI配置,首先來(lái)看一下EXTI_Init函數(shù)的原型void EXTI_Init(GPIO_TypeDef * GPIOx, uint32_t n, uint32_t mode)。這個(gè)函數(shù)的實(shí)現(xiàn)是在SWM190_exti.c文件中,若要使用該函數(shù)在相應(yīng)的應(yīng)用程序的前面包含SWM190_exti.h頭文件。

函數(shù)的第一個(gè)參數(shù)為GPIO_ TypeDef,它是一個(gè)結(jié)構(gòu)體類(lèi)型,該類(lèi)型在SWM190_gpio.h中被定義。具體參數(shù)為指定GPIO端口,有效值包括GPIOA、GPIOB、GPIOC、GPIOD、GPIOE;

第二個(gè)參數(shù)為uint32_t n指定GPIO引腳,有效值包括PIN0、PIN1、PIN2、。。. 。。. PIN14、PIN15;

第三個(gè)參數(shù)為uint32_t mode,為EXTI觸發(fā)方式配置,有效值包括EXTI_FALL_EDGE(下降沿觸發(fā)中斷)、EXTI_RISE_EDGE(上升沿觸發(fā)中斷)、EXTI_BOTH_EDGE(雙邊沿觸發(fā)中斷)、EXTI_LOW_LEVEL(低電平觸發(fā)中斷)、EXTI_HIGH_LEVEL(高電平觸發(fā)中斷);

配置GPIO中斷引腳后,需要使能NVIC,將對(duì)應(yīng)中斷線連接至NVIC。并將引腳外部中斷打開(kāi)。具體配置函數(shù)如下所示:

b59feb96-c4c6-11eb-9e57-12bb97331649.jpg

接下來(lái)我們看下中斷服務(wù)子函數(shù),中斷服務(wù)子函數(shù)與上面配置的外部中斷線相對(duì)應(yīng),在中斷服務(wù)函數(shù)中我們清中斷并進(jìn)行LED的翻轉(zhuǎn)。

b5c45cd8-c4c6-11eb-9e57-12bb97331649.jpg

04.

實(shí)驗(yàn)現(xiàn)象

下載好程序后,按下按鍵時(shí)LED點(diǎn)亮,再按下按鍵時(shí)LED熄滅,如此循環(huán)。

編輯:jq

聲明:本文內(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)投訴
  • led
    led
    +關(guān)注

    關(guān)注

    240

    文章

    22988

    瀏覽量

    654484
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    9006

    瀏覽量

    366021
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16028

    瀏覽量

    176637
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4256

    瀏覽量

    62223
  • NVIC
    +關(guān)注

    關(guān)注

    0

    文章

    35

    瀏覽量

    11657

原文標(biāo)題:華芯微特小課堂--MCU之EXTI

文章出處:【微信號(hào):gh_ed4f95bde4df,微信公眾號(hào):華芯微特32位MCU】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    stm32怎樣觸發(fā)軟件中斷

    了解STM32中斷系統(tǒng) STM32微控制器具有豐富的中斷系統(tǒng),包括NVIC(嵌套向量中斷控制器
    的頭像 發(fā)表于 09-02 09:32 ?344次閱讀

    【「ARM MCU嵌入式開(kāi)發(fā) | 基于國(guó)產(chǎn)GD32F10x芯片」閱讀體驗(yàn)】+閱讀中斷

    ⑤、設(shè)置中斷向量表 EXTI外部中斷及事件控制器 作者采用示意圖,結(jié)構(gòu)框圖,圖文并茂的方式講解,有助于閱讀者更高效的理解EXTI中斷特性。
    發(fā)表于 09-01 23:59

    【GD32 MCU 入門(mén)教程】GD32 MCU 常見(jiàn)外設(shè)介紹(3)NVIC 介紹

    NVIC(Nested vectored interrupt controller,嵌套向量中斷控制器)是Cortex-M處理的一部分,它是可編程的,且寄存
    的頭像 發(fā)表于 08-12 10:02 ?285次閱讀
    【GD32 <b class='flag-5'>MCU</b> 入門(mén)教程】GD32 <b class='flag-5'>MCU</b> 常見(jiàn)外設(shè)介紹(3)NVIC 介紹

    屏驅(qū)MCU-SWM320系列

    特性? 內(nèi)核 ? 32 位 ARM? Cortex?-M4 內(nèi)核 ? 24 位系統(tǒng)定時(shí) ? 工作頻率最高 120MHz ? 硬件單周期乘法 ? 集成嵌套向量中斷控制器(NVIC),提
    發(fā)表于 08-05 09:31

    CKS32F107xx系列MCU中斷和事件

    本章節(jié)首先將以MCU開(kāi)發(fā)人員常接觸到的“中斷”、“事件”和“中斷事件”三個(gè)名詞的概念展開(kāi),然后去闡述彼此的主要區(qū)別,最后借助MCU的GPIO外部
    的頭像 發(fā)表于 07-22 09:29 ?444次閱讀
    CKS32F107xx系列<b class='flag-5'>MCU</b>的<b class='flag-5'>中斷</b>和事件

    PLC中斷功能的作用及使用方法

    在工業(yè)自動(dòng)化控制系統(tǒng)中,PLC(Programmable Logic Controller,可編程邏輯控制器)作為核心的控制單元,承擔(dān)著處理各種控制邏輯、實(shí)現(xiàn)自動(dòng)化操作的重要任務(wù)。而
    的頭像 發(fā)表于 06-15 17:54 ?1563次閱讀

    電機(jī)控制器mcu的作用 電機(jī)控制器mcu的功用是什么

    (Microcontroller Unit,簡(jiǎn)稱(chēng)MCU),它負(fù)責(zé)處理輸入信號(hào)、執(zhí)行控制算法以及輸出控制指令。本文將詳細(xì)介紹電機(jī)控制器MCU
    的頭像 發(fā)表于 06-04 17:20 ?1632次閱讀

    什么是中斷向量偏移,為什么要做中斷向量偏移?

    當(dāng)MCU中有兩段或以上程序的時(shí)候(第一個(gè)程序?yàn)橛脩鬊ootLoader程序,其他的為APP程序,這個(gè)在前期視頻《什么是ISP?什么是IAP》中有講過(guò)),APP程序中都需要做中斷向量偏移,那么什么是中斷向量偏移,為什么要做
    的頭像 發(fā)表于 01-30 09:47 ?1440次閱讀
    什么是<b class='flag-5'>中斷向量</b>偏移,為什么要做<b class='flag-5'>中斷向量</b>偏移?

    arm中斷是怎么實(shí)現(xiàn)的

    ARM中斷的實(shí)現(xiàn)是通過(guò)中斷控制器和異常模式實(shí)現(xiàn)的。ARM處理通過(guò)中斷控制器來(lái)接收和處理外部中斷
    的頭像 發(fā)表于 01-05 15:18 ?728次閱讀

    )SWM166D8U6 M0+內(nèi)核帶CAN 高抗干擾屏驅(qū)MCU

    SWM166D8U6 是一顆主要應(yīng)用于屏幕驅(qū)動(dòng)的32位MCU,內(nèi)嵌 ARM? Cortex?-M0 內(nèi)核,憑借其出色的性能以及高可靠
    發(fā)表于 11-20 16:52

    單片機(jī)的NVIC與EXTI中斷詳解

    NVIC的全稱(chēng)是Nested vectoredinterrupt controller,即嵌套向量中斷控制器控制著整個(gè)芯片中斷相關(guān)的功能,
    的頭像 發(fā)表于 11-01 12:35 ?4727次閱讀
    單片機(jī)的NVIC與EXTI<b class='flag-5'>中斷</b>詳解

    ARM處理中斷向量

    在ARM處理中,當(dāng)一個(gè)中斷信號(hào)被觸發(fā)時(shí),中斷控制器會(huì)發(fā)出一個(gè)中斷請(qǐng)求,并將該請(qǐng)求傳遞給CPU。 CPU接收到中斷請(qǐng)求后,會(huì)根據(jù)
    的頭像 發(fā)表于 10-30 17:19 ?1409次閱讀

    AT32F系列PWC USART接收喚醒SLEEP的使用方法

    演示AT32F系列 PWC USART接收喚醒SLEEP的使用方法。通常任意一個(gè)被嵌套向量中斷控制器響應(yīng)的外設(shè)中斷都能將系統(tǒng)從SLEEP模式
    發(fā)表于 10-27 06:13

    STM32如何配置外部中斷?STM32外部中斷配置步驟

    STM32如何配置外部中斷?STM32外部中斷配置步驟? 作為一款現(xiàn)代化的微控制器,STM32系列芯片在各種應(yīng)用場(chǎng)合中廣泛應(yīng)用。其中最常見(jiàn)的
    的頭像 發(fā)表于 10-26 17:47 ?3211次閱讀

    STM32學(xué)習(xí)筆記一外部中斷

    STM32 的每個(gè) IO 都可以作為外部中斷中斷輸入口。STM32F103 的中斷控制器支持 19 個(gè)外部
    的頭像 發(fā)表于 10-24 14:12 ?1247次閱讀
    STM32學(xué)習(xí)筆記一<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>