S32K NVIC配置(以外部中断为例)
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配置(以外部中断为例)相关推荐
- CC2530学习(四)休眠模式配置及外部中断/睡眠时钟唤醒
文章目录 一.硬件连接 二.寄存器描述(外部中断) (一).睡眠模式设置 (二).电源模式控制设置 三.示例代码(外部中断) 四.实验现象(外部中断) 五.寄存器描述(睡眠时钟中断) (一).睡眠模式 ...
- nmi中断配置_外部中断NMI中断.ppt
外部中断NMI中断.ppt * 1.先看其引脚结构再看功能1. 可编程的含义:通过对芯片编程,使芯片实现不同的功能. 中断比较多的情况下,使用中断控制器来管理中断. 用来管理系统的硬件中断. * 1. ...
- STM32震动感应控制继电器(使用循环VS使用外部中断EXTI和中断控制器NVIC)
参考:stm32的外部中断 震动感应 控制 继电器 作者:点灯小哥 发布时间: 2021-03-05 22:37:01 网址:https://blog.csdn.net/weixin_46016743 ...
- 28335GPIO及外部中断配置介绍
本文转载连接: https://blog.csdn.net/E_ROAD_BY_U/article/details/53083151 弄了两周终于把28335的启动流程.寄存器及中断向量表的映射方法. ...
- GD32系列单片机EXTI外部中断配置
文章目录 前言 一.EXTI-外部中断 二.程序说明 1.主函数 2.中断函数 总结 前言 学习嵌入式的时候不可避免会接触到中断这个概念,我们平时接触也是最多的,在刚开始学习stm32单片机的时候,听 ...
- 【STM32】外部中断
00. 目录 文章目录 00. 目录 01. 外部中断简介 02. 外部中断配置 03. 外部中断步骤 04. 硬件设计 05. 程序示例一 06. 程序示例二 07. 附录 08. 声明 01. 外 ...
- STM32——外部中断
目录 外部中断简述 什么是外部中断 传统单片机与新型单片机外部中断区别 STM32外部中断请求 STM32中断线与IO口的对应 STM32 中断服务函数 外部中断与中断服务函数的对应 中断服务函数列表 ...
- STM32 中断原理及外部中断的实现
STM32 中断原理及外部中断的实现 NVIC 中断优先级管理 中断寄存器 库函数配置 小结 STM32 外部中断 基础知识 库函数配置 外部中断配置示例 小结 内容较充实,作为个人的学习记录 NVI ...
- GPIO做输出还能作外部中断输入吗?
偶尔会有人问起STM32芯片的GPIO做输出时还是否可能作为外部中断触发输入,这里一起聊聊该话题. 作为STM32芯片,其外部中断触发源可以是硬件模式或软件模式.所谓软件模式就是通过操作相关寄存器产生 ...
- (十四)STM32——外部中断(EXTI)
目录 学习目标 内容 介绍 配置 代码 运行结果 总结 学习目标 本节内容我们将介绍一下外部中断,STM32F4 的每个 IO 都可以作为外部 中断的中断输入口,这点也是 STM32F4 的强大之处. ...
最新文章
- 友盟页面统计 - 关于Viewpager中的Fragment的生命周期
- IntelliJ IDEA 快捷键和设置
- linux中,项目生成的文件的权限为-rw-r-----
- 操作系统基础:进程知识笔记(三)
- 程序员最常见的谎话,太准了
- 关于爬虫中常见的两个网页解析工具的分析 —— lxml / xpath 与 bs4 / BeautifulSoup...
- 微信小程序消息推送自有服务器无法接收到信息,消息推送服务器配置次数用完的解决方式。
- Eclipse安装lombook
- java jar命令_Java命令行之jar命令
- ReentrantLock1.8源码
- Cyrus SASL Libary学习
- sql语句查询优化总结,建议及写法技巧(汇总)
- 使用ContentProvider管理联系人
- 晚清十大武林高手(电视里常引用的真实人物)
- CSR867x — 如何修改蓝牙设备名称
- 使用USB对两个电脑进行串口文件传输
- 基因组组装(genome assembly)和对应版本的基因注释包(gene annotation packages)
- 国内知名的信息与通讯调查研究咨询公司情况
- 从老板的裤裆拉链看 Google 管理之道
- PL/SQL语言必看书籍推荐