Arduino Teensy反弹的数组未实际更新

问题描述

我对Arduino和C本身还是很陌生,但是我不知道为什么数组无法正常工作,而健全性检查却可以工作。

在我看来,两者都应该运行良好。我猜想我缺少关于C数组如何工作的一些关键信息。

代码的完整性:

#include <Bounce2.h>

#define BUTTON_AMOUNT 1
#define DEBOUNCE_INTERVAL 25

const int ledPin = LED_BUILTIN;

//Bounce *buttons[BUTTON_AMOUNT];
Bounce buttons[BUTTON_AMOUNT];
Bounce b1 = Bounce();

void setup() {
  Serial.begin(31250);

  pinMode(ledPin,OUTPUT);

  for (int i = 0; i < BUTTON_AMOUNT; i++) {
    Bounce b = Bounce();
    b.attach(i,INPUT_PULLUP);
    b.interval(DEBOUNCE_INTERVAL);

    buttons[i] = b;

    // buttons[i] = new Bounce();
    // (*buttons[i]).attach(i,INPUT_PULLUP);
    // (*buttons[i]).interval(DEBOUNCE_INTERVAL);
  }

  b1.attach(0,INPUT_PULLUP);
  b1.interval(25);
}

void loop () {
  for (int i = 0; i < BUTTON_AMOUNT; i++) {
    // Serial.println("looping ...");

    Bounce b = buttons[i];
    b.update();

    if (b.rose()) {
      // Serial.println("rising edge");
      digitalWrite(ledPin,LOW);
    }
    if (b.fell()) {
      // Serial.println("falling edge");
      digitalWrite(ledPin,HIGH);
    }
  }

  // sanity check
  b1.update();

  if (b1.rose()) {
    Serial.println("B1 - rising edge");
    digitalWrite(ledPin,LOW);
  }
  if (b1.fell()) {
    Serial.println("B1 - falling edge");
    digitalWrite(ledPin,HIGH);
  }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)