0

我的一个朋友(他不使用 StackExchange)编写了一个程序,该程序使用外部中断在下降沿捕获按钮按下(实际上是 CW 键控桨)(按下桨将相应的输入引脚连接到地)。

#define PADDLE_LEFT 2
#define PADDLE_RIGHT 3

volatile bool paddle_flag = false ;

...

void paddle_down () {
  paddle_flag = true ;
}
...

  attachInterrupt(digitalPinToInterrupt(PADDLE_LEFT), paddle_down, FALLING);
  attachInterrupt(digitalPinToInterrupt(PADDLE_RIGHT), paddle_down, FALLING);

这应该激活外部中断 INT0 和 INT1。

对于一些较旧的 Arduino Nano 板,这可以按预期工作,即当按下一个或两个桨时发生中断(而不是在释放时)。然而,他有一些较新的 Arduino Nano 板,其中完全相同的程序行为不同:任何状态变化都会发生中断,即像 PCINT 中断,而不像 INT0、INT1。

4

0 回答 0