【精选】Arduino中断的使用.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【精选】Arduino中断的使用

要搞清楚什么是中断,我们可以从生活中的一个例子了解下。 你正在家里看电视,突然家里座机响了,你起身去接电话,接完电话后继续回来看电 视。这就是生活中的中断现象,也就是一个正在做的事情被外部的事情打断,当执行完外 部事情后,继续做原本的事情。 什么是中断? 所谓中断,是指CPU 在正常运行程序时,由于内部/外部事件或由程序预先安排的事 件,引起CPU 中断正在运行的程序,而转到为内部/外部事件或为预先安排的事件服务的 程序中去,服务完毕,再返回去执行波暂时中断的程序 由于某个事件的发生,CPU 暂停当前正在执行的程序,转而执行处理该事件的一个程 序。该程序执行完成后,CPU 接着执行被暂停的程序。这个过程称为中断。 根据中断源的位置,有两种类型的中断。有的中断源在CPU 的内部,称为内部中断。大 多数的中断源在CPU 的外部,称为外部中断。 根据中断引脚的不同,或者CPU 响应中断的不同条件,也可以把中断划分为可屏蔽中断 和不可屏蔽中断两种。 使用中断的好处 1、实行分时操作提高CPU 的效率只有当服务对象向CPU 发出中断申请时才去为它服务 这样我们就可以利用中断功能同时为多个对象服务从而大大提高了CPU 的工作效率 2、实现实时处理 利用中断技术各个服务对象可以根据需要随时向CPU 发出中断申请及时发现和处理中断 请求并为 进入正题 我们在本次试验中使用ocrobot mango (Arduino UNO 兼容板),IDE 使用1.0.1 版本。 在OCROBOT MANGO (UNO 也一样)中,有两个 可以使用的外部中断,0 (数字引脚2 )和1 (数 字引脚3 ),本次例子中我们使用D2 引脚作为中 断引脚,使用A0 引脚控制LED。原理图如下: 5V Arduino pin2 GND 标准的数字输入与输出--没有中断 如果你按照上面的电路图进行了接线,把下面的代码编译上传进入Arduino 。 代码用来读取你输入的值,然后作为条件进行比较,(按下开关,LED 状态不会立刻改变, 要按住一会儿才能改变) 1. int pbIn = 2; // 定义输入信号引脚 2. int ledOut = A0; // 定义输出指示灯引脚 3. int state = LOW; // 定义默认输入状态 4. void setup () 5. { 6. // 设置输入信号引脚为输入状态、输出引脚为输出状态 7. pinMode (pbIn, INPUT); 8. pinMode (ledOut, OUTPUT); 9. } 10.void loop () 11. { 12. state = digitalRead (pbIn); //读取微动开关状态 13. digitalWrite (ledOut, state); //把读取的状态赋予 LED 指示灯 14. //模拟一个长的流程或者复杂的任务 15. for (int i = 0; i 100; i++) 16. { 17. //延时 10 毫秒 18. delay (10); 19. } 20. } 使用中断 现在,我们使用相同的电路连接图,然后修改代码以使用硬件中断。然后把下面的代 码下载进入控制板中,当按下按钮时,LED 的状态就会立刻改变,尽管代码仍然是在主循 环中,而且是同样的延时。(按下开关,LED 状态就会立刻变化) 1. int pbIn = 0; // 定义中断引脚为 0 ,也就是D2 引脚 2. int ledOut = A0; // 定义输出指示灯引脚 3. volatile int state = LOW; // 定义默认输入状态 4. void s

文档评论(0)

tazhiq2 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档