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   阅读(537)   评论(0)
 标签: maker ESP32

涨知识
I2S

I2S(Inter—IC Sound)总线, 又称集成电路内置音频总线,是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准。

评论:
相关文章
小鹏物联网 MicroPython 智能浇花方案

相信很多人都有把绿植给养死的经历,可能是浇水过多、忘记浇水、较长时间不在家不能浇水等,本文介绍一种可以灵活定制的智能浇花方案。


MicroPython 开发ESP32应用之线程介绍及实例分析

MicroPython 在 ESP32 上支持线程(Thread)功能,通过_thread模块实现。线程允许程序并发执行多个任务,适合处理需要同时运行的场景,例如传感器数据采集和网络通信。


盛思发布掌控板3.0

掌控板3.0升级了主控,还主打AI。带有双麦克风阵列,增加了音频解码芯片,板载了一个1W喇叭,还把之前的单色屏幕换成了1.47寸的彩色屏幕,有更多的可玩性。


ESP32 MicroPython采集模拟传感器数值

使用了 MicroPython 库,通过 定时器(Timer) 和 ADC(模数转换器) 功能来实时读取传感器数据。使用定时器可以实现高精度、非阻塞、低资源消耗的周期性任务,保证实时性和可靠性,特别适用于嵌入式系统中的多任务处理和低功耗场景。


ESP32 使用DAC模拟输出完成两路呼吸灯

ESP32的DAC函数可以实现真正的模拟输出。


在 ESP32 上使用 LEDC (PWM)

ESP32 没有Arduino输出 PWM 的 analogWrite(pin, value) 方法,取而代之的 ESP32 有一个 LEDC 来实现PWM功能。


Micropython基于ESP32的多线程开发

本文学习如何使用ESP32开发板来进行多线程的开发。


ESP8266 Arduino WIFI

ESP8266有三种工作模式,分别为:AP,STA,AP混合STA


ESP32 SPI

ESP32有四个SPI外设,分别为SPI0、SPI1、HSPI和VSPI。


ESP32 I2C

ESP32有2个硬件I2C总线接口,接口可以配置为主机或从机模式。

搜索
小鹏STEM教研服务

专属教研服务系统,助您构建STEM课程体系,打造一站式教学环境。