《Arduino开发实战指南:机器人卷》一2.5 中断函数

简介:

本节书摘来华章计算机《Arduino开发实战指南:机器人卷》一书中的第2章 ,第2.5节,黄文恺 伍冯洁 陈 虹 编著更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.5 中断函数

单片机的中断可概述为:由于某一随机事件的发生,单片机暂停原程序的运行,转去执行另一程序(随机事件),处理完毕后又自动返回原程序继续运行,其发生过程如图2.2所示,其中中断源、主程序、中断服务程序简述如下。
中断源:引起中断的原因,或能发生中断申请的来源。
主程序:单片机现在运行的程序。
中断服务程序:处理中断事件的程序。

2.5.1 interrupts()和noInterrupts()

在Arduino中,interrupts函数与noInterrupts函数分别负责打开与关闭总中断,这两个函数均为无返回值函数,无参数。

2.5.2 attachInterrupt(interrput,function,mode)

attachInterrupt函数用于设置外部中断,有3个参数,分别表示中断源、中断处理函数和触发模式,它们的具体含义如下。
中断源:可选0或者1,对应2或者3号数字引脚。
中断处理函数:指定中断的处理函数,是一段子程序,当中断发生时执行该子程序部分,其中参数值为函数的指针。
触发模式:有四种类型——LOW(低电平触发)、CHANGE(变化时触发)、RISING(低电平变为高电平触发)、FALLING(高电平变为低电平触发)
数字引脚D2口接按钮开关,D4口接LED1(红色),D5口接LED2(绿色),LED3为板载LED灯,每秒闪烁一次。使用中断0来控制LED1,中断1来控制LED2。按下按钮,马上响应中断,由于中断响应速度快,LED3不受影响,继续闪烁。该示例的程序清单如下:

volatile int state1=LOW,state2=LOW;
int LED1=4;
int LED2=5;
int LED3=13;                    // 使用板载的LED灯
void setup()
{ 
  pinMode(LED1,OUTPUT);
  pinMode(LED2,OUTPUT);
  pinMode(LED3,OUTPUT);
  attachInterrupt(0,LED1_Change,LOW);        // 低电平触发
  attachInterrupt(1,LED2_Change,CHANGE);    // 任意电平变化触发
}
void loop()
{ 
  digitalWrite(LED3,HIGH); 
  delay(500);
  digitalWrite(LED3,LOW);
  delay(500);
}
void LED1_Change()
{ 
  state1=!state1;
  digitalWrite(LED1,state1);
  delay(100);
}
void LED2_Change()
{
  state2=!state2;
  digitalWrite(LED2,state2);
  delay(100);
}

2.5.3 detachInterrupt(interrput)

detachInterrupt函数用于取消中断,参数interrupt表示所要取消的中断源。

相关文章
|
12月前
|
机器学习/深度学习 数据采集 监控
量化交易机器人开发风控模型对比分析与落地要点
本文系统对比规则止损、统计模型、机器学习及组合式风控方案,从成本、鲁棒性、可解释性等维度评估其在合约量化场景的适用性,结合落地实操建议,为不同阶段的交易系统提供选型参考。
|
传感器 人工智能 机器人
基于Arduino的泡茶机器人
基于Arduino的泡茶机器人
539 1
|
传感器 人工智能 机器人
具身智能9大开源工具全景解析:人形机器人开发必备指南
本文旨在对具身智能、人形机器人、协作机器人、AI机器人、端到端AI系统、AI Agent、AI Agentic、空间智能或世界模型等前沿领域中具有重要影响力的开源软件产品或工具进行深入分析,重点聚焦于支持这些先进AI能力实现的工具、平台和框架。
4201 8
|
人工智能 开发框架 机器人
AstrBot:轻松将大模型接入QQ、微信等消息平台,打造多功能AI聊天机器人的开发框架,附详细教程
AstrBot 是一个开源的多平台聊天机器人及开发框架,支持多种大语言模型和消息平台,具备多轮对话、语音转文字等功能。
10218 38
AstrBot:轻松将大模型接入QQ、微信等消息平台,打造多功能AI聊天机器人的开发框架,附详细教程
|
机器学习/深度学习 人工智能 自然语言处理
TsingtaoAI具身智能机器人开发套件及实训方案
该产品套件创新性地融合了先进大模型技术、深度相机与多轴协作机械臂技术,构建了一个功能强大、灵活易用的人机协作解决方案。其核心在于将智能决策、精准感知与高效执行完美结合,为高校实训领域的发展注入新动力。
1453 10
|
人工智能 自动驾驶 安全
Cosmos:英伟达生成式世界基础模型平台,加速自动驾驶与机器人开发
Cosmos 是英伟达推出的生成式世界基础模型平台,旨在加速物理人工智能系统的发展,特别是在自动驾驶和机器人领域。
1567 15
Cosmos:英伟达生成式世界基础模型平台,加速自动驾驶与机器人开发
|
编解码 网络协议 机器人
顶顶通电话机器人开发接口对接大语言模型之实时流TTS对接介绍
大语言模型通常流式返回文字,若一次性TTS会导致严重延迟。通过标点断句或流TTS可实现低延迟的文本到语音转换。本文介绍了电话机器人接口适配流TTS的原理及技术点,包括FreeSWITCH通过WebSocket流TTS放音,以及推流协议和旁路流对接的详细说明。
1514 1
|
传感器 IDE 机器人
基于Arduino的扫地机器人
基于Arduino的扫地机器人
1203 1
|
人工智能 自然语言处理 机器人
9.9K star!大模型原生即时通信机器人平台,这个开源项目让AI对话更智能!
"😎高稳定、🧩支持插件、🦄多模态 - 大模型原生即时通信机器人平台"
596 0
|
数据采集 自动驾驶 机器人
数据喂得好,机器人才能学得快:大数据对智能机器人训练的真正影响
数据喂得好,机器人才能学得快:大数据对智能机器人训练的真正影响
1213 1

热门文章

最新文章