程序设计基础第十章外部中断_第1页
程序设计基础第十章外部中断_第2页
程序设计基础第十章外部中断_第3页
程序设计基础第十章外部中断_第4页
程序设计基础第十章外部中断_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第十章外部中断程序运行中,我们时常需要监控一些事件的发生,如对某一传感器的检测结果做出反应。使用轮询的方式检测,效率较低,等待时间较长,而使用中断方式检测,可以到达实时检测的效果。如图3-13所示,中断程序可以看作是一段独立于主程序之外的程序,当中断触发时,控制器会暂停当然正在运行的主程序,而跳转去运行中断程序,中断程序运行完后,会再回到之前主程序暂停的位置,继续运行主程序。如此便可做到实时响应处理事件的效果。外部中断的使用外部中断是由外部设备发起请求的中断。要使用外部中断,你需要了解中断引脚的位置,根据你外部设备选择中断模式,并编写一个中断触发后执行的中断函数。l 中断引脚与中断编号在不同型

2、号的Arduino控制器上中断引脚的位置也不同,只有中断信号发生在带外部中断功能的引脚上,Arduino才能捕获到这个中断信号并做出响应,表3-3例举了Arduino常见型号的中断引脚对应的外部中断编号。 Arduino型号Int.0Int.1int.2int.3int.4int.5UNO23 MEGA2321201918Leonardo3201 Due所有引脚均可使用外部中断其中int0,int1等都为中断的编号。l 中断模式你还需要了解设备触发外部中断的输入信号类型,以此来设置中断模式。中断模式也就是中断触发的方式。在大多数Arduino上支持表3-4中的四种中断触发方式: LOW低电平触

3、发CHANGE电平变化触发,高电平变低电平、低电平变高电平RISING上升沿触发,低电平变高电平FALLING下降沿触发,高电平变低电平在Arduino Due中,还可以使用高电平(HIGH)触发中断,另外Arduino Due上的每一个I/O口都是可以触发中断的,其中断编号便是引脚编号。 中断函数你还需要编写一个响应中断的处理程序中断函数,中断触发后,便让Arduino运行这个函数。中断函数就是当中断触发后要去执行的函数,这个函数不能带任何参数,且返回类型为空,如:void Holle() Serial.println(holle);当中断触发后,Arduino便会执行这个函数中的语句。 这

4、些准备工作做好后,我们还需要在Setup() 中,使用attachInterrupt() 函数对中断引脚进行初始化配置,以开启Arduino的外部中断功能,其方法如下:attachInterrupt(interrupt, function, mode)l 参数interrupt:中断编号。注意,这里的中断编号并不是引脚编号function:中断函数名。中断触发后,即会运行的函数名称mode:中断模式。例如:attachInterrupt(0, Hello, LOW);如果我们使用的是UNO,该语句即会开启2号引脚(中断编号0)上的外部中断功能,并指定下降沿时触发该中断。当2号引脚上电平由高变低

5、后,该中断会被触发,Arduino即会运行Hello() 函数中的语句。如果你不需要使用外部中断了,你可以用中断分离函数detachInterrupt() 来关闭中断功能。detachInterrupt(interrupt)禁用外部中断。l 参数interrupt:需要禁用中断编号。外部中断触发蜂鸣器警报这里我们要制作一个防盗报警装置,装置放在需要看守的物体旁边,通过数字红外障碍传感器检测前方是否有物体,如果没有检测到物体就触发蜂鸣器报警。l 数字红外障碍传感器数字红外障碍传感器(图3-14)是一种通过红外光反射来检测障碍物的传感器。模块会发出调制过的38KHz红外光,红外光经障碍物反射后由一体化接收头接收。当检测范围内有障碍物时,模块输出低电平;无障碍物时,模块输出高电平。在编写这个中断程序前,我们先要清楚适合项目的中断触发方式,这里我们将红外障碍传感器连接到Arduino UNO的2号引脚上,并将中断1设为电平改变触发,当电平由底变高时,说明物体被拿走,则触

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论