1
摘要
本篇应用笔记主要介绍 HC32F460 系列芯片的中断控制器(Interrupt Controller, INTC)模块,并通过展示外部管脚中断、软件中断、NMI 中断样例代码简要说明如何使用 INTC 模块。
2
INTC 简介
HC32F460 系列的中断控制器(INTC)模块丰富的功能,其中包括了对不可屏蔽中断
(NMI)、外部管脚中断(EXINT)、软件中断(SWI)、中断、事件使能的配置;外设模块中断源自由设置到除系统中断向量入口的任意入口。
INTC 主要特性:
Ÿ 外设中断向量入口中断源可配置
Ÿ 16 个可编程中断优先级
Ÿ 多种可选择的 NMI 中断源
Ÿ 16 个外部管脚中断
Ÿ 32 个软件中断
Ÿ 系统休眠模式唤醒源配置
Ÿ 系统停止模式唤醒源配置
Ÿ 支持 WFI、WFE后的唤醒
3
HC32F460 系列的 INTC
3.1
NMI 不可屏蔽中断
不可屏蔽中断(NMI)具有优先级,HC32F460 系列的 NMI 可选择多个中断事件请求,应用程序可通过查询 NMIFR 寄存器来确定 NMI 中断的来源,并通过 NMICFR 寄存器来清除对应标志位。
3.1.1 NMI 主要特点
Ÿ 可选择多个中断请求作为 NMI 信号来源:
- NMI 管脚中断
- 外部高速 XTAL 振荡停止中断
- 外部低速 XTAL32 振荡停止中断
- WDT 下溢、刷新错误中断
- SWDT 下溢、刷新错误中断
- 低电压监测 PVD1 中断
- 低电压监测 PVD2 中断
- SRAM 奇偶校验错误中断
- SRAM ECC 校验错误中断
- MPU 总线错误中断
Ÿ NMI 管脚中断数字滤波功能及滤波器时钟可设
Ÿ NMI 管脚中断上升沿、下降沿触发
3.2 外部管脚中断
HC32F460 系列有 16 个外部管脚中断事件,可通过寄存器配置每个通道的属性,包括数字滤波功能、触发电平选择。
3.3
软件中断
HC32F460 系列有 32 个软件中断请求,且与中断向量 0~31 一一对应,可通过软件置位寄存器INT_SWIER 的对应 bit,来产生一次软件中断事件请求。
3.4
中断源选择
HC32F460 系列一共有 16 个系统中断向量入口和 144 个外设中断向量入口,用户可通过中断源选择寄存器,将芯片的 239 个外设的中断请求配置到 144 个中断向量入口,灵活管理中断服务程序。
4
样例代码
4.1
代码介绍
用户可根据上述的工作流程编写自己的代码来学习验证该模块,也可以直接通过华大半导体的网站获得到设备驱动库(Device Driver Library, DDL)的样例代码并使用其中的 INTC 的样例进行验证。
4.2 代码运行
用户可以通过华大半导体的网站获得到 HC32F460 的 DDL 的样例代码(exint_nmi_swi),并配合评估用板(EV-HC32F460-LQFP100-050-V1.1)运行相关代码学习使用 INTC 模块。
5
总结
以上章节简要介绍了 HC32F460 系列的 INTC,说明了 INTC 模块的寄存器及部分操作流程,并且演示了如何使用 INTC 样例代码,在实际开发中用户可以根据自己的需要配置和使用 INTC 模块。