理论教育 《Arduino UNO开发板外部中断在灭火机器人程序设计中的应用》

《Arduino UNO开发板外部中断在灭火机器人程序设计中的应用》

时间:2023-06-30 理论教育 版权反馈
【摘要】:灭火机器人的程序将使用外部中断的方法。有关Arduino UNO 开发板的外部中断介绍,已在3.1.1 节与3.2.4 节介绍过。本节将围绕灭火机器人详细介绍外部中断的学习,以便读者最大限度地掌握相关知识。在程序的运行中,时常需要监控一些事件的发生,比如对某一传感器的返回数据进行解析。图6-6-5中断程序Arduino UNO 的外部中断见表6-6-1。如果在程序中途,不需要使用外部中断了,可以用中断分离函数detachInterrupt来取消这一中断设置。

《Arduino UNO开发板外部中断在灭火机器人程序设计中的应用》

灭火机器人的程序将使用外部中断的方法。有关Arduino UNO 开发板的外部中断介绍,已在3.1.1 节与3.2.4 节介绍过。按以往教学经验,学习外部中断具有较大的难度,而外部中断是每一种单片机的高级用法,使用得好,则有利于提高程序的运行效率。本节将围绕灭火机器人详细介绍外部中断的学习,以便读者最大限度地掌握相关知识。

Arduino 程序在loop()中是不断地循环的。在程序的运行中,时常需要监控一些事件的发生,比如对某一传感器的返回数据进行解析。使用轮询的方式检测,特别加上有些延时语句的使用,会导致效率比较低,而且随着程序功能的增加,轮询到指定功能时需要等待的时间变长。而使用中断方式检测,可以到达实时检测的效果。

中断程序可以看作是一段独立于主程序之外的程序,当中断触发时,控制器会暂停当前正在运行的主程序,而跳转去运行中断程序,中断程序运行完后,会再回到之前主程序暂停的位置,继续运行主程序,如此便可做到实时响应处理事件的效果。中断程序如图6-6-5 所示。

图6-6-5 中断程序

Arduino UNO 的外部中断见表6-6-1。

表6-6-1 外部中断

注:中断号越低,优先级越高,如int.0 高于int.1。

attachInterrupt (interrupt, function, mode) 函数:(www.daowen.com)

interrupt 表示中断号,UNO 板只能用0 或1,即代表2 号、3 号数字接口

fuction 表示中断函数名,即用来调用定义的中断函数;

mode 表示中断触发方式。

当中断发生时,delay()函数和millis()的数值将不会继续发生变化。当中断发生时,串口收到的数据可能会丢失,此时需要声明一个变量来在未发生中断时存储变量。如果在程序中途,不需要使用外部中断了,可以用中断分离函数detachInterrupt(interrupt)来取消这一中断设置。

中断允许在后台运行一些重要任务,默认使能中断。禁止中断时部分函数无法工作,通信中接收到的消息也可能会丢失。noInterrupts() 为禁止中断函数,interrupts() 为重启中断函数。

禁止中断、重新启用中断的使用方法如下:

灭火机器人的程序代码如下:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈