ESP32 外部中断

外部中断是单片机实时地处理外部事件的一种内部机制。

当外部事件发生后,单片机判断外部事件是否符合条件,如果符合外部中断条件,则停止CPU正在执行的程序,转而进行中断事件的处理;中断处理完毕后,又返回被中断的程序处,继续执行。


在ArduinoIDE开发环境下,使用attachInterrupt函数建立外部中断。

attachInterrupt(pin, callback, mode)

pin: 用于触发中断的引脚

callback: 中断处理程序

mode: 中断模式,即信号在哪种情况下产生中断,有这几种情况:RISING(上升沿触发)、FALLING(下降沿触发)、CHANGE(边缘触发)、ONLOW(低电平触发)、ONHIGH(高电平触发)


示例程序如下:

#include <Arduino.h>

const int led = 18;
const int button = 35;

volatile boolean state = HIGH;

// 中断函数
void irq1()
{
    //改变状态值,主循环根据这个值来控制LED
    state = !state;
}

void setup()
{
    pinMode(led, OUTPUT);
    pinMode(button, INPUT);

    // 初始化外部中断、pin
    // 当按键按下时,引脚34输入的电平由高变低,触发中断函数irq1
    attachInterrupt(button, irq1, FALLING);    // 设置外部中断
}

void loop()
{
    //根据state的值控制LED点亮或熄灭
    digitalWrite(led, state);
    delay(1);
}


- 本文内容来自网络,如有侵权,请联系本站处理。

2022-09   阅读(966)   评论(0)
 标签: 创客 ESP32

涨知识
新冠肺炎

新型冠状病毒肺炎(Corona Virus Disease 2019,COVID-19),简称“新冠肺炎”,世界卫生组织命名为“2019冠状病毒病” [1-2] ,是指2019新型冠状病毒感染导致的肺炎。

评论:
相关文章
【ESP32 C++教程】Unit4-2 模拟量传感器

本小节讲解模拟量传感器使用,旋转电位器,DHT11温湿度传感器和实现自定义传感器类。


【ESP32 C++教程】Unit4-1 数字量传感器

本小节讲解Sensor类及派生类、数字量传感器使用和传感器的推荐交互流程。


【ESP32 C++教程】Unit3-2 触摸输入

本小节讲解ESP32内置触摸引脚的用法,


【ESP32 C++教程】Unit3-1 按键输入

本小节主要介绍按键信号转换、Button类及派生类、和Button交互推荐流程。


【ESP32 C++教程】Unit2-2 Ws2812灯珠

本小节主要介绍Ws2812灯珠的使用、对父类进行扩展实现自定义功能,和指针向下强制转换的使用。


【ESP32 C++教程】Unit2-1 RGB三色LED

本小节主要介绍RGB三色LED的使用,以及多态的具体实现。


【ESP32 C++教程】Unit1-3 ESP32 Arduino 开发框架

ESP32 Arduino Framework是专门针对ESP32开发板的Arduino应用开发框架,为用户开发IOT应用、HMI应用提供一致的开发体验。


ESPConnect:基于浏览器的ESP32管理器

ESPConnect是一个基于现代浏览器的管理器,在你需要快速验证、调试、管理文件、检查状态的时候,它能帮你省下大量打开和切换重型工具的时间。


用ESP32做一个FM收音机

本文介绍两种使用TEA5767收音机模块实现FM收音机的方案,感兴趣的朋友可在此基础上实现更丰富的功能。


GPIOViewer:让ESP32引脚状态一览无余!

GPIOViewer 是一个强大的 Arduino 库,专门为 ESP32 芯片设计,可以实时监控 ESP32 芯片上的所有 GPIO 引脚状态。它可以帮助你快速直观地了解每个引脚的当前状态,例如高电平、低电平、输入、输出、中断等等。