使用attachInterrupt()函数,利用Arduino的引脚触发中断程序。arduino不是所有引脚都能实现中断,具体要求见下表:

Arduino控制板 支持中断的引脚
Uno, Nano, Mini 2, 3
Mega, Mega2560, MegaADK 2, 3, 18, 19, 20, 21
Micro, Leonardo 0, 1, 2, 3, 7
Zero 除4号引脚以外的所有数字引脚
MKR1000 Rev.1 0, 1, 4, 5, 6, 7, 8, 9, A1, A2
Due 所有数字引脚

语法

attachInterrupt(digitalPinToInterrupt(pin), ISR, mode);

参数

pin: 中断引脚号
ISR: 中断服务程序名
mode:中断模式

中断模式(mode):

LOW: 当引脚为低电平时触发中断服务程序
CHANGE: 当引脚电平发生变化时触发中断服务程序
RISING: 当引脚电平由低电平变为高电平时触发中断服务程序
FALLING: 当引脚电平由高电平变为低电平时触发中断服务程序

注意事项:

  • 中断函数不能有任何参数,也没有任何返回值。
  • 通常ISR需要越短小精悍越好!每次Arduino只能运行一个ISR函数,其它ISR函数只有在当前的ISR函数执行结束以后,才能按照其优先级别顺序执行。
  • millis()函数的运行依赖Arduino开发板的中断功能,因此ISR函数中的millis()函数是无法正常运行的。micros() 也是类似的情况,不能使用delay()函数和millis()函数。 delayMicroseconds() 不需要任何计数器就可以运行,所以delayMicroseconds() 运行是不会受到影响的。
  • 一般情况下,ISR函数与主程序之间传递数据是依靠全局变量来实现的。为了确保全局变量在ISR函数中可以正常的工作,应该将可能被ISR函数中使用的全局变量声明为volatile类型。

Arduino 中断程序运行及注意事项相关推荐

  1. Arduino在程序运行的时候切换串口波特率

    由于某个器件的初始波特率是9600,我需要在初始化的时候把它设置为115200,再把串口波特率设置为115200. Ser->begin(9600);unsigned char t[8] = { ...

  2. 下列快捷键中能中断python程序运行的是_What is very important

    What is very important 答:all of the above 下列符合"中和"精神的是() 答:风调雨顺 宠辱不惊 为了解某高校大学生体育锻炼情况,在该学校随 ...

  3. 下列快捷键中能够中断python程序运行的是_例题学习

    105.关于Python循环结构,以下选项中描述错误的是 ( C ) A: Python通过for.while等保留字提供遍历循环和无限循环结构 B: break用来跳出最内层for或者while循环 ...

  4. arduino控制一位数码管、控制二位数码管动态显示(用不到中断程序)

    目的: 1.利用arduino控制一位共阳极数码管显示 2.利用arduino控制二位共阳极数码管显示 前言: 前段时间,在网上看到了一个视频,是关于二位数码管动态显示的视频,感觉很新奇,就想把它做出 ...

  5. LGT8F328P 开发板arduino环境搭建及中断程序

    LGT8F328P 开发板arduino环境搭建: 1. 在官网上下载 Arduino硬件支持包 http://www.lgtic.com/downloads/ Arduino开发平台相关 LGT8F ...

  6. arduino 中断 串口_Arduino中断的使用

    要搞清楚什么是中断,我们可以从生活中的一个例子了解下. 你正在家里看电视,突然家里座机响了,你起身去接电话,接完电话后继续回来看电 视.这就是生活中的中断现象,也就是一个正在做的事情被外部的事情打断, ...

  7. flask执行python程序_Flask app后如何执行代码(应用程序运行)开始

    但我想使用一种方法,它还可以保存相机中的所有相框(我已经有功能了).在 问题是,一旦我启动了Flask应用程序,我最多只能存储在localhost中打开web页面时捕获的帧.我希望能够在应用程序运行时 ...

  8. 子程序与中断程序的异同_专业解读PLC编程中断的原理和用法

    plc这样理解中断功能,在理解中断时,首先要清楚plc的运算周期或者说是扫描周期,有必要说下plc顺控循环执行的流程,这是理解中断的前提,必须要掌握,分为三部分,输入处理.程序处理.输出处理. 1.输 ...

  9. 子程序与中断程序的异同_【干货】plc怎样理解中断功能,其作用是什么?

    plc怎样理解中断功能: 在理解plc中断时,你首先要清楚plc的运算周期或者说是扫描周期.我们有必要说下plc顺控循环执行的流程,这是理解中断的前提,必须要掌握. 分为三部分:输入处理.程序处理.输 ...

最新文章

  1. 2018-3-9 论文(网络评论中非结构化信息表示与研究)笔记---模糊认知图的形式化表示
  2. 网页制作知识:XHTML 和 DOCTYPE 切换
  3. DW数据仓库与ODS的区别
  4. 新论文推荐:Auto-Keras:自动搜索深度学习模型的网络架构和超参数
  5. C#完美任意设置webBrowser框架默认的IE内核版本
  6. CSS的outline轮廓属性:轮廓属性
  7. C Primer Plus note1
  8. gVIM+zencoding快速开发HTML/CSS/JS(适用WEB前端)
  9. 在html中横坐标是纵坐标,excel 作图中次横坐标及次纵坐标的调试,以及excel自定义轴标签的步骤方法...
  10. iview的走马灯嵌套在模态框中,宽度为0的解决方案
  11. Linux 挂载windows网络共享文件 /etc/fstab功能详解
  12. python GUI编程tkinder
  13. 设计模式之--单例模式
  14. 高清电脑手机壁纸任你选,每天不重样!
  15. 110kv变电所无功补偿技术的研究
  16. 随机森林分类+随机森林回归+实例:用随机森林回归填补缺失值+机器学习调参思想+实例:随机森林在乳腺癌数据上的调参
  17. U-BLOX GPS 模块及GPRMC指令解析
  18. PHP初中高级学习在线文档下载
  19. 解决QQ邮箱接收不到Stream邮件问题
  20. 013 两个重要极限之一

热门文章

  1. 为激情为生---“激情团队宣言”
  2. 新技术预研Android
  3. 猫是如何躲开影子的?
  4. 网络基础3【网络层、数据链路层】
  5. 网络协议基础05--数据链路层
  6. Halcon连接大恒相机
  7. 【数据分析】SQL面试题整理
  8. word2013怎么去掉所有文字下面的波浪线
  9. 什么是数据资产管理?5个角度帮你参透数据资产管理
  10. python数字转字符串_字符串转换与格式化