1.8.10.外部中断

本文介绍了SoC中的外部中断概念及其工作原理,包括外部中断与内部中断的区别、按键如何利用外部中断实现,以及两种主要的触发模式:电平触发和边沿触发。此外,还详细解释了关键寄存器EXT_CON、EXT_PEND和EXT_MASK的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.8.10.1、什么是外部中断?数据手册在哪里?
(1)SoC支持的中断类型中有一类叫外部中断。内部中断就是指的中断源来自于SoC内部(一般是内部外设),譬如串口、定时器等部件产生的中断;外部中断是SoC外部的设备,通过外部中断对应的GPIO引脚产生的中断。
(2)按键在SoC中就使用外部中断来实现。具体实现方法是:将按键电路接在外部中断的GPIO上,然后将GPIO配置为外部中断模式。此时人通过按按键改变按键电路的电压高低,这个电压高低会触发GPIO对应的外部中断,通过引脚传进去给CPU处理。
(3)外部中断相关的介绍和寄存器都在2.2.6章节(属于GPIO部分)


1.8.10.2、电平触发和边沿触发
(1)外部中断的触发模式主要有2种:电平触发和边沿触发。
(1)电平触发就是说GPIO上的电平只要满足条件,就会不停触发中断。电平触发分为高电平触发和低电平触发。电平触发的特点是,只要电平满足条件就会不停触发中断。
(2)边沿触发分为上升沿触发、下降沿触发和双边沿触发三种。边沿触发不关心电平常规状态,只关心电平变化的瞬间(边沿触发不关心电平本身是高还是低,只关心变化是从高到低还是从低到高的这个过程)。
分析按键的工作:如果我们关注的是按键按下和弹起这两个事件本身,那么应该用边沿触发来处理按键;如果我们关心的是按键按下/弹起的那一段时间,那么应该用电平触发。


1.8.10.3、关键寄存器:CON、PEND、MASK
(1)外部中断的主要配置寄存器有3个:EXT_CON、EXT_PEND、EXT_MASK
(2)EXT_CON配置外部中断的触发方式。触发方式就是说外部电平怎么变化就能触发中断,也就是说这个外部中断产生的条件是什么
(3)EXT_PEND寄存器是中断挂起寄存器。这个寄存器中每一位对应一个外部中断,平时没有中断时值为0。当发生了中断后,硬件会自动将这个寄存器中该中断对应的位置1,我们去处理完这个中断后应该手工将该位置0。这个PEND寄存器的位就相当于是一个标志,如果发生了中断但是我们暂时忙来不及去处理时,这个位一直是1(这就是挂起),直到我有空了去处理了这个中断才会手工清除(写代码清除)这个挂起位表示这个中断被我处理了。

(4)EXT_MASK寄存器就是各个外部中断的使能/禁止开关。


《朱老师物联网大讲堂》学习笔记

学习地址:www.zhulaoshi.org


外部中断:

EINT0~EINT15

EINT16~31


在这里中断分,

串口,定时器等部件产生的中断属于内部中断,

外部中断和内部中断,


按键在SOC中用的是外部中断,

实现:将按键电路接在外部中断GPIO上,

然后GPIO配置为外部中断模式,

此时人通过按键来改变电压高低,

这个电压高低会触发GPIO对应的外部中断,通过引脚传进去给CPU处理。


外部中断的相关寄存器,

在这里外部中断主要配置的寄存器有3个,

EXT_CON

配置外部中断的触发方式,




分析X210开发板的按键对应的EINT编号:

EINT2、EINT3、EINT16、EINT17、EINT18、EINT19


EXT_PEND,

是中断挂机寄存器,

当没有中断的时候,

该位为0,有中断时为1,

没有处理中断则一直是1,也就是挂起,

处理该中断后,清除这位。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值