飞凌OK6410学习之中断的学习
来源:互联网 发布:淘宝ifashion衣服质量 编辑:程序博客网 时间:2024/05/17 05:16
接下来就是中断了,记得我有个同学说,你没有搞懂中断说明你没有学单片机,是呀,中断确实是单片机的精华部分,废话不多说,直接进入正题:
中断也是一种异常模式,这在我们上一节的异常学习中就知道了。
中断有GPIO中断、UART中断、触摸屏中断等等。。。。
下面谈谈如何使用中断
1、 进行中断初始化(以按键为例)
A、 设置中断源
B、 设置中断控制寄存器
C、 打开总开关
首先找到中断源,在地板手册上面可以看到
同时在核心板上面可以找到
可以知道GPN是控制按键的,那么设置中断控制源头的代码就是:
然后接下来需要配置中断控制器:
所以可以得出设置中断寄存器的代码
继续,总开关是否打开?
总中断的开关需要看cpsr程序状态控制寄存器如下
设置代码如下:
注意:CPU每执行一条指令之前都会判断是否会有中断发生
若果有中断发生:硬件会执行
1、 CPU进入IRQ中断;
2、 之前的Cpsr保存到spsr_irq
3、 使用当前模式下面的R13/R14_irq
4、 把下一条指令的地址存到R14_irq
5、 跳到0x18处执行
软件会执行:
1、 保存现场
2、 处理中断
A、 分辨中断
B、 调用相应的处理函数
3、 恢复现场
LR存放的是发生中断是那条指令的下一条指令地址,先看保存现场指令
为了更深入理解,我给个图解
最后一步还需要清除中断:
清中断源
清中断控制器
清除代码如下
这就是我的第一个中断程序
- 飞凌OK6410学习之中断的学习
- 飞凌OK6410学习之中断的学习 继续。。
- 飞凌OK6410学习之串口的学习
- 飞凌OK6410之时钟的学习
- 飞凌OK6410之异常模式的学习
- 飞凌Ok6410之SDRAM的学习
- 飞凌OK6410之IIC的学习1
- 飞凌OK6410之IIC的学习2
- 飞凌OK6410之LCD的学习
- 飞凌OK6410之触摸屏的学习
- OK6410之触摸屏的学习
- 飞凌OK6410学习之看门狗
- OK6410驱动学习之first_drv
- ok6410学习之触摸屏篇
- ok6410学习之触摸屏篇
- (1)ok6410学习之makefile学习
- (4)ok6410学习之汇编指令学习
- (8)ok6410学习之自己的bootloader编写架构
- Windows下zlib库和libPng库的编译和使用
- C++11(及现代C++风格)
- win7下qt安装
- Collection , List , Set 和 Map 用法和区别
- python IDE和语法
- 飞凌OK6410学习之中断的学习
- java 设计模式-结构模式之桥梁模式
- 杭州还不错的IT公司,想跳槽了,不知道下一站在哪里
- 冯诺依曼解决的一个抛硬币问题
- 第一周项目2拓展
- 矩形脉冲频谱分析
- auto_ptr 详解
- 解开jfffs2镜像文件方法
- android 发送广播 接收广播 动态广播接收