- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
PAGE1
PAGE1
外部中断使用
外部中断是单片机中非常重要的功能之一,它允许单片机在外部信号触发时中断当前执行的程序,转而去执行特定的中断服务程序(ISR)。这对于实时响应外部事件非常有用,例如按键按下、传感器触发等。在ArduinoLeonardo系列中,基于ATmega32U4微控制器,提供了多个外部中断引脚,可以在中断发生时执行特定的代码。
外部中断引脚
ArduinoLeonardo系列的外部中断引脚如下:
数字引脚0(RX)
数字引脚1(TX)
数字引脚2
数字引脚3
数字引脚7
数字引脚8
数字引脚9
数字引脚10
数字引脚11
数字引脚12
数字引脚13
这些引脚可以通过attachInterrupt函数来启用中断功能。
启用外部中断
启用外部中断的基本步骤如下:
选择中断引脚:确定你希望使用哪个引脚作为中断引脚。
定义中断服务程序:编写中断服务程序(ISR),当外部中断发生时,单片机会执行这个程序。
启用中断:使用attachInterrupt函数将中断引脚与中断服务程序关联起来。
attachInterrupt函数
attachInterrupt函数的语法如下:
voidattachInterrupt(interrupt,function,mode);
interrupt:中断引脚的编号。对于ArduinoLeonardo,可以使用0到7,分别对应数字引脚2到9。
function:中断服务程序的函数指针。这是一个没有参数和返回值的函数。
mode:中断触发模式,可以是以下几种之一:
LOW:低电平触发。
CHANGE:任何电平变化都会触发。
RISING:上升沿触发。
FALLING:下降沿触发。
示例:按键中断
假设我们有一个按键连接到数字引脚2,当按键按下时,我们希望LED灯闪烁一次。下面是具体的实现代码:
硬件连接
按键:一端连接到数字引脚2,另一端连接到GND。
LED:阳极连接到数字引脚13,阴极通过一个限流电阻连接到GND。
代码示例
//定义LED引脚
constintledPin=13;
//定义按键中断引脚
constintbuttonPin=2;
//定义中断服务程序
voidhandleInterrupt(){
//翻转LED状态
digitalWrite(ledPin,!digitalRead(ledPin));
}
voidsetup(){
//初始化LED引脚为输出模式
pinMode(ledPin,OUTPUT);
//初始化按键引脚为输入模式
pinMode(buttonPin,INPUT);
//附着中断,按键按下时触发中断
attachInterrupt(digitalPinToInterrupt(buttonPin),handleInterrupt,FALLING);
}
voidloop(){
//主程序循环,这里可以放置其他代码
//当按键按下时,中断服务程序handleInterrupt会被调用
}
代码解释
定义引脚:
ledPin:定义LED连接的引脚为13。
buttonPin:定义按键连接的引脚为2。
中断服务程序:
handleInterrupt:这是一个简单的中断服务程序,当按键按下时(即引脚2从高电平变为低电平),LED状态会被翻转一次。
初始化:
pinMode(ledPin,OUTPUT):将LED引脚设置为输出模式。
pinMode(buttonPin,INPUT):将按键引脚设置为输入模式。
attachInterrupt(digitalPinToInterrupt(buttonPin),handleInterrupt,FALLING):将按键引脚2与中断服务程序handleInterrupt关联起来,并设置为下降沿触发。
主程序循环:
loop:主程序循环中可以放置其他代码,但当按键按下时,中断服务程序handleInterrupt会被调用,LED状态会翻转一次。
示例:多中断引脚
假设我们有多个按键,分别连接到数字引脚2和3,当任意一个按键按下时,我们希望LED灯闪烁一次。下面是具体的实现代码:
硬件连接
按键1:一端连接到数字引脚2,另一端连接到GND。
按键2:一端连接到数字引脚3,另一端连接到GND。
LED:阳极连接到数字引脚13,阴极通过一个限流电阻连接到GND。
代码示例
/
您可能关注的文档
- Renesas 系列:RA4M1 系列 (低功耗)_(7).RA4M1系列的时钟系统.docx
- Renesas 系列:RA4M1 系列 (低功耗)_(8).RA4M1系列的存储器配置.docx
- Renesas 系列:RA4M1 系列 (低功耗)_(9).RA4M1系列的通信接口.docx
- Renesas 系列:RA4M1 系列 (低功耗)_(10).RA4M1系列的安全特性.docx
- Renesas 系列:RA4M1 系列 (低功耗)_(11).RA4M1系列的开发工具与环境.docx
- Renesas 系列:RA4M1 系列 (低功耗)_(12).RA4M1系列的编程与调试技巧.docx
- Renesas 系列:RA4M1 系列 (低功耗)_(13).RA4M1系列的应用案例.docx
- Renesas 系列:RA4M1 系列 (低功耗)_(14).RA4M1系列的功耗优化技巧.docx
- Renesas 系列:RA4M1 系列 (低功耗)_(15).RA4M1系列的系统设计与集成.docx
- Renesas 系列:RA4M1 系列 (低功耗)_(16).RA4M1系列的故障诊断与维修.docx
最近下载
- 电能“发、输、变、配、用”五环节简介.pptx VIP
- 先进算力中心建设规划方案.docx VIP
- 安装钳工基础知识全集课件.ppt VIP
- 部编版六年级语文上册第三单元 习作_____让生活更美好 课件(共32张PPT).pptx VIP
- 医疗器械唯一标识管理制度(UDI).docx VIP
- 感术行动专项实施方案.docx VIP
- 企业案例广州超算中心 企业案例广州超算中心、项目建设规划、项目需求分析 1.3项目建设规划.docx VIP
- 音频处理软件:Adobe Audition二次开发_17.社区资源与支持.docx VIP
- 数控铣床第一章 数控铣床概述.ppt VIP
- 偏差报告单【范本模板】.doc VIP
文档评论(0)