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

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

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

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

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

01.

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

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

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

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

特性

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

l 支持嵌套和向量中斷

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

l 動態(tài)改變優(yōu)先級

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

l 可屏蔽中斷

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

02.

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

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

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

SWM190提供了32個(gè)中斷供外設(shè)與核交互,其排列如表格 1所示??梢酝ㄟ^中斷配置模塊,將任意模塊或具體IO的中斷連接至指定中斷編號。具體使用參考中斷配置模塊。

03.

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

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

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

在SWM190固件庫中對外部中斷的配置進(jìn)行了說明,下面將根據(jù)庫函數(shù)對SWM190的EXTI配置,首先來看一下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)體類型,該類型在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,將對應(yīng)中斷線連接至NVIC。并將引腳外部中斷打開。具體配置函數(shù)如下所示:

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

接下來我們看下中斷服務(wù)子函數(shù),中斷服務(wù)子函數(shù)與上面配置的外部中斷線相對應(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)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • led
    led
    +關(guān)注

    關(guān)注

    240

    文章

    22926

    瀏覽量

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

    關(guān)注

    134

    文章

    8970

    瀏覽量

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

    關(guān)注

    112

    文章

    15924

    瀏覽量

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

    關(guān)注

    3

    文章

    4240

    瀏覽量

    62013
  • NVIC
    +關(guān)注

    關(guān)注

    0

    文章

    35

    瀏覽量

    11646

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

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

收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    ARM處理中斷向量

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

    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)用場合中廣泛應(yīng)用。其中最常見的
    的頭像 發(fā)表于 10-26 17:47 ?3094次閱讀

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

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

    CLINT中斷控制器優(yōu)先級和搶占

    提供軟件、定時(shí)外部中斷。CLINT 塊還保存與軟件和定時(shí)中斷相關(guān)的內(nèi)存映射控制和狀態(tài)寄存
    的頭像 發(fā)表于 10-08 09:30 ?610次閱讀
    CLINT<b class='flag-5'>中斷控制器</b>優(yōu)先級和搶占

    PLIC平臺級中斷控制器介紹

    的。 U54內(nèi)核的平臺級中斷控制器 (PLIC) 最多可支持 132 個(gè)具有 7 個(gè)優(yōu)先級的外部中斷源。 Memory Map U54 內(nèi)核 PLIC 控制寄存
    的頭像 發(fā)表于 10-07 17:53 ?1003次閱讀
    PLIC平臺級<b class='flag-5'>中斷控制器</b>介紹

    AXI中斷控制器(INTC)v4.1簡介

    LogiCORE? IP AXI中斷控制器(INTC)內(nèi)核接收來自外圍設(shè)備的多個(gè)中斷輸入,并將它們合并到或中斷輸出到系統(tǒng)處理。
    的頭像 發(fā)表于 10-07 11:45 ?1335次閱讀
    AXI<b class='flag-5'>中斷控制器</b>(INTC)v4.1簡介