在arduino中使用中断处理布尔值
我已经做了一些研究,我遇到了几个关于按钮如何被用作中断的例子。然而,我尝试实现的设计使用模拟传感器。现在,我想做的是让我的模拟传感器标记一个布尔值来告诉中断执行,而不是一个按钮。我该怎么做 这是我根据研究得出的结论:在arduino中使用中断处理布尔值,arduino,interrupt,interrupt-handling,Arduino,Interrupt,Interrupt Handling,我已经做了一些研究,我遇到了几个关于按钮如何被用作中断的例子。然而,我尝试实现的设计使用模拟传感器。现在,我想做的是让我的模拟传感器标记一个布尔值来告诉中断执行,而不是一个按钮。我该怎么做 这是我根据研究得出的结论: boolean isWall; attachInterrupt(isWall, interruptFunction, RISING); void loop() { if(analogSensor.response > 450) {
boolean isWall;
attachInterrupt(isWall, interruptFunction, RISING);
void loop() {
if(analogSensor.response > 450) {
isWall = true;
}
normalExecution(); // what it normally does if isWall is false
}
void interruptFunction() {
// code implementation
isWall = false; // set isWall back to false after executing interruptFunction
}
void normalExecution() {
// foo
}
有人能证实吗?也许我完全错了,但我一直认为Arduino中的中断是基于管脚所看到的电压,也就是说,它们是硬件中断。因此,虽然您的代码对于硬件中断是正确的,但对于变量的更改它将不起作用
这就是说,这个和这个讨论了模拟比较器实现你想要做的事情的方法。我想我应该在布尔声明前面有一个“volatile”哦,所以我想我要寻找的是在后台每10个我们就轮询一次我的传感器的东西,而不是每次响应()。然后,每当我的传感器达到某个定义值时,它就会跳转到我的中断功能。