电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
创作
电子发烧友网>电子资料下载>电子资料>ARDUINO微控制器外部中断处理

ARDUINO微控制器外部中断处理

2022-10-27 | zip | 0.03 MB | 次下载 | 2积分

资料介绍

描述

用户指南可以从 GitHub 下载

用户指南,外部中断的可扩展异步处理

概述

Arduino 微控制器规格和功能多种多样。但该系列的共同点是,这些微控制器提供了一种在外部事件发生时对其进行处理的方法,这是通过使用中断来实现的。外部事件可以是任何东西。例如,PIR 的激活、开关状态的改变等。

Arduino 开发环境和软件库提供了一种方法来设计和定义最终用户代码例程(中断服务例程 (ISR)),只要发生外部中断,就可以调用这些例程。当触发外部中断时,微控制器将停止正在运行的最终用户代码的操作,并将控制权传递给关联的 ISR,该 ISR 已被定义为最终用户应用程序的一部分。

如果需要一个解决方案来处理多个外部中断,那么每个中断都需要定义一个特定的 ISR 来处理相关的触发事件 - 需要设计 ISR 来处理特定和单独的要求。此外,ISR 可能会受到虚假触发的影响,例如“脏”切换。这通常被称为“反弹”,是 ISR 设计需要解决的问题。因此,挑战在于设计解决方案,将中断处理作为整体解决方案的一部分,识别中断的各种设置要求以处理此类外部事件。

支持的外部中断数量取决于特定的 Arduino 微控制器。因此,为项目选择微控制器将受到最终用户解决方案所需的外部中断数量的影响。

该框架提供了一个“容器”,可以对其进行配置以满足外部中断的任何特定设置要求,并且可以轻松地将最终用户代码添加到该容器中。

该方法将允许按优先级顺序处理外部中断(同时触发时和实时),但在主处理代码指示的时间(异步)。也就是说,该方法允许捕获外部中断,如触发,但在其相关的中断服务例程 (ISR) 之外进行操作。

该解决方案是围绕 ARDUINO MEGA 2560 微控制器开发的,但可以针对任何数量的外部中断直接针对任何板进行修改,直至特定微控制器和此框架设置的最大限制。

MEGA 2560 支持多达六个外部中断,这些外部中断可供最终用户开发人员轻松访问,并映射到数字输入引脚。然而,该方法很容易扩展以同时使用一个、两个、三个、...或所有六个外部中断,使其成为需要多个外部中断进程和处理的解决方案基础的理想框架。对于支持超过六个中断的微控制器,需要对底层框架进行扩展。但是,对于可能开发的大多数应用程序,认为六个中断的限制不应成为限制因素。如果需要更多,则可以通过增加通用 ISR 和相关数据支持结构的数量来扩展该方法。

异步处理是通过通用中断处理程序的设计和实现实现的,并由中断队列管理概念支持,该概念提供了将中断事件与其最终处理分开的方法。

当一个外部中断被触发时,它会在 setup() 过程中被映射和建立指定的(通用)ISR。然后,ISR 只会将中断事件插入中断队列,此时不会进行进一步的处理。然而,为了避免虚假/脏中断的“反弹”,每个 ISR 都包含一个去抖动机制,该机制可以通过配置参数进行更改。必要时,可以为每个映射的外部中断定义不同的中断“反弹”值,以反映触发电路的“清洁度”。

如果同时触发多个外部中断,则 ARDUINO 微控制器将按照微控制器规范确定的定义优先级顺序“触发”它们各自的 ISR。

中断队列以先进先出 (FIFO) 为基础进行操作和管理。因此,该方法保留了在现实世界中触发外部中断的顺序。

然而,如预期的那样,异步中断处理这样的方法确实会带来一些开销。该方法不适用于具有绝对和关键处理需求的应用,其中时序约束至关重要;这是一种适用于许多非关键解决方案的方法。

设计要求(目标)

在设计这个框架时,设定了许多目标,这些目标是为外部中断处理提供一个解决方案:

  • 将发生的外部中断事件与其发生的处理分离,为上层的最终用户应用程序代码提供自由和控制。也就是说,一种解决方案将提供独立于“捕获”接收到的中断及其最终处理的处理
  • 无需大量修改即可“插入”的容器
  • 可扩展,提供处理多个外部中断的框架
  • 对每个可能的外部中断都是高度可配置的。例如,如果需要,需要对每个中断进行不同的配置
  • 可以在继续处理之前支持唯一或非唯一外部中断事件捕获/记录
  • 考虑到虚假中断。也就是说,为“脏”切换提供去抖。

该框架的功能主要如上所述。然而,一个有趣的特性是它能够允许外部中断是“唯一的”或“非唯一的”。这里不再赘述这个特性,而是将那些对框架感兴趣的人参考用户指南,在那里可以找到更完整的描述(参见用户指南,外部中断的可扩展异步处理)。


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费