Arduino 中断控制函数执行顺序 - 让第一个函数循环直到中断发生
在 Arduino 中,你可以使用中断来实现让第一个函数一直循环执行,直到中断结束后再执行下一个函数。下面是一个示例代码:
首先,你需要定义一个标志变量来表示中断是否发生。在 Arduino 中,你可以使用'volatile'关键字来定义一个全局的标志变量,以确保它在中断发生时能够被正确地更新。
volatile bool interruptFlag = false;
然后,你需要编写第一个函数的代码,并在代码的适当位置检查中断标志。如果中断标志为真,则退出循环并清除标志。否则,继续执行循环。
void firstFunction() {
// 循环执行的代码
while (true) {
// 检查中断标志
if (interruptFlag) {
interruptFlag = false; // 清除中断标志
break; // 退出循环
}
// 继续执行循环
// ...
}
}
接下来,你需要编写中断处理函数,并在其中设置中断标志为真。
void interruptHandler() {
interruptFlag = true;
}
最后,你可以在'setup()'函数中注册中断处理函数,并调用第一个函数。
void setup() {
// 初始化代码
// ...
// 注册中断处理函数
attachInterrupt(digitalPinToInterrupt(interruptPin), interruptHandler, CHANGE);
// 调用第一个函数
firstFunction();
}
void loop() {
// 循环执行的代码
// ...
}
在这个例子中,当中断发生时,Arduino会立即跳转到中断处理函数中,并设置中断标志为真。当第一个函数检测到中断标志为真时,它会退出循环并清除中断标志。然后,Arduino会继续执行下一个函数(在'loop()'函数中)。
原文地址: https://www.cveoy.top/t/topic/px2r 著作权归作者所有。请勿转载和采集!