Nested Vectored Interrupt Controller (NVIC)

包含在Cortex-M4F 中,

优先级有16级

中断相关寄存器

ISER[0-3]:Interrupt Set Enable Register

ICER[0-3]:Interrupt Clear Enable Register

ISPR[0-3]:Interrupt Set Pending Register

ICPR[0-3]:Interrupt Clear Pending Register

IABR[0-3]:Interrupt Active bit Register

IP[0-122]:Interrupt Priority Register

STIR:Software Trigger Interrupt Register

以外部中断PORTC_IRQn 为例

查看S32K1xx_DMA_INT_mapping.xlsm

屏幕剪辑的捕获时间: 2019/8/4 6:59

第三列 NVIC Interrupt ID 表示中断号

第四列 ISER, ICER, ISPR, ICPR, and IABR 寄存器号,等于NVIC Interrupt ID 整除32

第五列 IPR寄存器号 *实际为每个寄存器存4个中断源优先级,程序已经分开定义成了0-122 直接IPR[NVIC interrupt ID]即可

初始化时在应用模块配置好后(如外部中断需要在PCR中配置IRQC),加下以下NVIC 配置

S32_NVIC->ICPR[PORTC_IRQn/32] = 1 << (PORTC_IRQn % 32); /* clr any pending IRQ*/

S32_NVIC->ISER[PORTC_IRQn/32] = 1 << (PORTC_IRQn % 32); /* enable IRQ */

S32_NVIC->IP[PORTC_IRQn] = 0xA0; /* priority 10 of 0-15*/

中断程序写对应用.s 里中断指向的程序

void PORTC_IRQHandler (void) {

PORTC->ISFR=0xFFFFFFFFu;/* Clear button IRQ flag */

}

完整程序:

#include "S32K144.h" /* include peripheral declarations S32K144 */

#define PTD0 0 /* Port PTD0, bit 0: FRDM EVB output to blue LED */

#define PTC12 12 /* Port PTC12, bit 12: FRDM EVB input from BTN0 [SW2] */

void PORTC_IRQHandler (void) {

PORTC->ISFR=0xFFFFFFFFu;

/* Perform read-after-write to ensure flag clears before ISR exit */

PTD->PTOR |= 1<<0; /* Toggle output on port D0 (blue LED) */

}

int main(void) {

/* Enable clocks to peripherals (PORT modules) */

PCC-> PCCn[PCC_PORTC_INDEX] = PCC_PCCn_CGC_MASK; /* Enable clock to PORT C */

PCC-> PCCn[PCC_PORTD_INDEX] = PCC_PCCn_CGC_MASK; /* Enable clock to PORT D */

/* Configure port C12 as GPIO input (BTN 0 [SW2] on EVB) */

PORTC->DFCR=1;                                //Digital Filter Clock=LPO

PORTC->DFWR=8;                                //Digital Filter width=8

PORTC->DFER=1<<PTC12;                        //Enable Digital Filter

PTC->PDDR &= ~(1<<PTC12); /* Port C12: Data Direction= input (default) */

PORTC->PCR[12] = 0x00090110; /* Port C12: MUX = GPIO, input filter enabled,Interrupt on rising edge */

S32_NVIC->ICPR[PORTC_IRQn/32] = 1 << (PORTC_IRQn % 32); /* clr any pending IRQ*/

S32_NVIC->ISER[PORTC_IRQn/32] = 1 << (PORTC_IRQn % 32); /* enable IRQ */

S32_NVIC->IP[PORTC_IRQn] = 0xA0; /* priority 10 of 0-15*/

/* Configure port D0 as GPIO output (LED on EVB) */

PTD->PDDR |= 1<<PTD0; /* Port D0: Data Direction= output */

PORTD->PCR[0] = 0x00000100; /* Port D0: MUX = GPIO */

for(;;) {

}

}

转载于:https://www.cnblogs.com/ningmeng-lizi/p/11312879.html

S32K NVIC配置(以外部中断为例)相关推荐

  1. CC2530学习(四)休眠模式配置及外部中断/睡眠时钟唤醒

    文章目录 一.硬件连接 二.寄存器描述(外部中断) (一).睡眠模式设置 (二).电源模式控制设置 三.示例代码(外部中断) 四.实验现象(外部中断) 五.寄存器描述(睡眠时钟中断) (一).睡眠模式 ...

  2. nmi中断配置_外部中断NMI中断.ppt

    外部中断NMI中断.ppt * 1.先看其引脚结构再看功能1. 可编程的含义:通过对芯片编程,使芯片实现不同的功能. 中断比较多的情况下,使用中断控制器来管理中断. 用来管理系统的硬件中断. * 1. ...

  3. STM32震动感应控制继电器(使用循环VS使用外部中断EXTI和中断控制器NVIC)

    参考:stm32的外部中断 震动感应 控制 继电器 作者:点灯小哥 发布时间: 2021-03-05 22:37:01 网址:https://blog.csdn.net/weixin_46016743 ...

  4. 28335GPIO及外部中断配置介绍

    本文转载连接: https://blog.csdn.net/E_ROAD_BY_U/article/details/53083151 弄了两周终于把28335的启动流程.寄存器及中断向量表的映射方法. ...

  5. GD32系列单片机EXTI外部中断配置

    文章目录 前言 一.EXTI-外部中断 二.程序说明 1.主函数 2.中断函数 总结 前言 学习嵌入式的时候不可避免会接触到中断这个概念,我们平时接触也是最多的,在刚开始学习stm32单片机的时候,听 ...

  6. 【STM32】外部中断

    00. 目录 文章目录 00. 目录 01. 外部中断简介 02. 外部中断配置 03. 外部中断步骤 04. 硬件设计 05. 程序示例一 06. 程序示例二 07. 附录 08. 声明 01. 外 ...

  7. STM32——外部中断

    目录 外部中断简述 什么是外部中断 传统单片机与新型单片机外部中断区别 STM32外部中断请求 STM32中断线与IO口的对应 STM32 中断服务函数 外部中断与中断服务函数的对应 中断服务函数列表 ...

  8. STM32 中断原理及外部中断的实现

    STM32 中断原理及外部中断的实现 NVIC 中断优先级管理 中断寄存器 库函数配置 小结 STM32 外部中断 基础知识 库函数配置 外部中断配置示例 小结 内容较充实,作为个人的学习记录 NVI ...

  9. GPIO做输出还能作外部中断输入吗?

    偶尔会有人问起STM32芯片的GPIO做输出时还是否可能作为外部中断触发输入,这里一起聊聊该话题. 作为STM32芯片,其外部中断触发源可以是硬件模式或软件模式.所谓软件模式就是通过操作相关寄存器产生 ...

  10. (十四)STM32——外部中断(EXTI)

    目录 学习目标 内容 介绍 配置 代码 运行结果 总结 学习目标 本节内容我们将介绍一下外部中断,STM32F4 的每个 IO 都可以作为外部 中断的中断输入口,这点也是 STM32F4 的强大之处. ...

最新文章

  1. 友盟页面统计 - 关于Viewpager中的Fragment的生命周期
  2. IntelliJ IDEA 快捷键和设置
  3. linux中,项目生成的文件的权限为-rw-r-----
  4. 操作系统基础:进程知识笔记(三)
  5. 程序员最常见的谎话,太准了
  6. 关于爬虫中常见的两个网页解析工具的分析 —— lxml / xpath 与 bs4 / BeautifulSoup...
  7. 微信小程序消息推送自有服务器无法接收到信息,消息推送服务器配置次数用完的解决方式。
  8. Eclipse安装lombook
  9. java jar命令_Java命令行之jar命令
  10. ReentrantLock1.8源码
  11. Cyrus SASL Libary学习
  12. sql语句查询优化总结,建议及写法技巧(汇总)
  13. 使用ContentProvider管理联系人
  14. 晚清十大武林高手(电视里常引用的真实人物)
  15. CSR867x — 如何修改蓝牙设备名称
  16. 使用USB对两个电脑进行串口文件传输
  17. 基因组组装(genome assembly)和对应版本的基因注释包(gene annotation packages)
  18. 国内知名的信息与通讯调查研究咨询公司情况
  19. 从老板的裤裆拉链看 Google 管理之道
  20. PL/SQL语言必看书籍推荐

热门文章

  1. WinForm自定义ListBox显示样式
  2. java 获取linux 服务器字体_Java获得本地字体列表
  3. 英特尔2021至强cpu性能排行天梯图
  4. win10非核心版本的计算机上
  5. 【第4篇】人工智能(AI)语音测试原理和实践
  6. 战神引擎清理数据教程[保留跟不保留账号
  7. Solidworks 课程大纲(虎课网)
  8. 每天二十分钟学习python_每天 3 分钟,小闫带你学 Python(二十三)
  9. 网卡驱动DM9000-基于uboot
  10. Filesystem Hierachy Standar 学习