esp32cam 中断函数内使用delay不执行的问题
int pushButton = 12;
int outputButton = 13;
volatile byte state = LOW;
void setup() {
Serial.begin(115200);
pinMode(outputButton, OUTPUT);
// 创建中断:attachInterrupt()
attachInterrupt(digitalPinToInterrupt(pushButton),InterruptServiceRoutine,RISING);
}
void InterruptServiceRoutine() {
state = !state;
digitalWrite(outputButton, state);
Serial.println("开始等待");
delay(1000);
Serial.println("等待完成");
}
void loop() {
}
中断执行结果如图,发现中断程序并没有终止执行,而是直接跳过了delay,难怪我想让LED在中断程序中亮2秒再关的想法无法做到。