STM32F103zet6电容触摸按键中断设置详解
需积分: 47 111 浏览量
更新于2024-08-09
1
收藏 2.55MB PDF 举报
"中断设置过程-基于stm32f103zet6实现电容触摸按键控制led - 单片机"
这篇文档介绍了基于dsPIC33F系列单片机的中断设置过程,用于实现类似STM32F103ZET6芯片中电容触摸按键控制LED的功能。中断系统在微控制器中扮演着重要角色,它允许处理器在执行任务的同时响应外部事件。
**中断设置过程**
1. **初始化**
- **非嵌套中断**:如果不需要中断嵌套,设置INTCON1寄存器的NSTDIS位(INTCON1<15>)为1,以禁止中断嵌套。
- **优先级分配**:通过编程IPCx控制寄存器,为每个中断源分配用户定义的优先级。优先级根据具体应用和中断源类型设定。若不需多级优先级,所有中断源的IPCx寄存器可设置为相同的非零值。
- **清除中断标志**:清零IFSx寄存器中与外设相关的中断标志状态位,以确保中断开始时标志是干净的。
- **开启中断**:通过置1对应IECx寄存器中的中断允许控制位,允许所需的中断源。
**中断服务程序 (ISR)**
- ISR的声明和初始化IVT(中断向量表)取决于使用的编程语言(C或汇编)和开发工具。在ISR中,通常需要清除与处理的中断源对应的IFSx寄存器中断标志,否则ISR执行完后可能会立即再次触发。
- **汇编语言的ISR**:在汇编语言编写的ISR中,需使用RETFIE指令结束ISR,以恢复堆栈中的PC值、SRL值和CPU优先级。
**陷阱服务程序 (Trap Service Routine, TSR)**
TSR的处理方式与ISR类似,但还需要清除INTCON1寄存器中的相应陷阱状态标志,防止TSR的重复进入。
**禁止中断**
- **全局中断禁止**:通过PUSH指令保存当前SR(状态寄存器)值到堆栈,然后使用OEh与SRL进行逻辑或操作,强制CPU优先级设置为7,以禁止所有用户中断。
- **恢复中断**:使用POP指令恢复先前的SR值,允许用户中断再次生效。
- **优先级限制**:只能禁止优先级7及以下的用户中断,无法禁止优先级为8至15的陷阱源。
- **临时禁止中断**:DISI指令可用于临时禁止优先级为1至6的中断,但无法禁止优先级为7的中断源。
**中断初始化注意事项**
- 设备复位时,所有用户中断源的优先级默认设置为4,这可以通过IPCx寄存器重新配置。
文档中的信息适用于dsPIC33F系列,但这里讨论的中断原理和设置方法在很多单片机中都是通用的,如STM32F103ZET6,尽管具体的寄存器和中断机制可能有所不同。在实际应用中,开发者需要查阅具体MCU的参考手册,以了解其特有的中断系统配置方法。
1106 浏览量
1592 浏览量
6186 浏览量
305 浏览量
1118 浏览量
217 浏览量
2023-05-22 上传
109 浏览量
126 浏览量
物联网_赵伟杰
- 粉丝: 46
- 资源: 3953
最新资源
- 智睿学校选课系统 v3.2.0
- javascript-pw-generator
- 带有Blynk和全息图的蜂窝物联网-项目开发
- SkytecBotRewrite:Skytec Bot
- 基于欧姆龙的PLC实验.rar
- java-array-classwork1-CalebC94:GitHub Classroom创建的java-array-classwork1-CalebC94
- expo-sample-app
- crossphp简洁高效PHP开发框架 v1.6.0
- 海康威视LED屏DS-TVL224文本语音二次开发代码
- Leetcode
- 智睿录取查询报名系统 v8.2.0
- website-2.0
- 索尔玛兹·波托利奥
- letmehear:有声书批处理器(resplitter)
- jhipster-sample-application
- MSR Paraphrase Corpus data.zip