• 嵌入式学习笔记(35)外部中断


    6.9.1什么是外部中断

    (1)内部中断就是指中断源来自于SoC内部(一般是内部外设),譬如串口、定时器等部件产生的中断;外部中断是SoC外部的设备,通过外部中断对应的GPIO引脚产生的中断。

    (2)按键在SoC中就使用了外部中断来实现。具体实现方法是:将按键电路接在外部中断的GPIO上,然后将GPIO配置为外部中断模式。此时人通过按按键改变按键电路的高低,这个电压高低会出发GPIO对应的外部中断,通过引脚传进去给CPU处理。

    (3)外部中断相关的介绍和寄存器都在2.2.6章节(属于GPIO部分)

    6.9.2电平触发和边沿触发

    (1)外部中断的触发方式有2种:电平触发和边沿触发

    (2)电平触发就是说GPIO上的电平只要满足条件,就会不停的触发中断。电平触发分为高电平触发和低电平触发。

    (3)边沿触发分为上升沿触发、下降沿触发和双边沿触发三种。边沿触发不关心电平的常规状态,只关心电平变化的瞬间(边沿触发不关心电平本身是高还是低,只关心变化是从高到低还是从低到高这个过程)。

    分析按键的工作:如果我们关注的是按键按下和弹起这两个事件本身,那么应该用边沿触发来处理按键;如果我们关心的是按键按下/弹起的那一段时间,那么应该用电平触发。

    6.9.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寄存器就是各个外部中断的使能/禁止开关。

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

    EINT2、EINT3、EINT16、EIN717、EINT18、EINT19

    嵌入式物联网的学习之路非常漫长,不少人因为学习路线不对或者学习内容不够专业而错失高薪offer。不过别担心,我为大家整理了一份150多G的学习资源,基本上涵盖了嵌入式物联网学习的所有内容。在评论区或私信我“嵌入式”三个字,即可0元领取学习资源,让你的学习之路更加顺畅!记得点赞、关注、收藏、转发哦!

  • 相关阅读:
    【SpringBoot】YAML 配置文件
    v0.9.6 开源跨平台个人知识管理工具 TidGi-Desktop
    Java学习笔记3.10.4 异常处理 - throw关键字
    AcWing 286. 选课,《算法竞赛进阶指南》
    Docker 的使用
    17.2、JavaWeb-简介、JDBC的缺点、入门使用、mybatis的使用、条件查询、mybatis的参数传递
    在Jupyter中使用AI写代码,如有神助,太惊艳了
    软体机器人与拓扑优化
    SpringBoot+Shiro+Vue实现身份验证
    【计算思维】蓝桥杯STEMA 科技素养考试真题及解析 4
  • 原文地址:https://blog.csdn.net/m0_70888041/article/details/133433784