微控制器 - 按钮'按住'听者

时间:2017-04-08 20:48:06

标签: c++ microcontroller launchpad

我正在使用Texas Instruments LauncherPad MSP432 P401R和Energia。 我正在尝试编写一个小程序,计算按下按钮2时按下按钮2的次数。

int push1_listener = -1;
int push2_listener = -1;
int digit = 0;

void setup() {
  Serial.begin(9600);
  pinMode(PUSH1, INPUT_PULLUP);
  pinMode(PUSH2, INPUT_PULLUP);
}

void loop() {
  push1_listener = digitalRead(PUSH1);
  push2_listener = digitalRead(PUSH2);
  while(push1_listener == 0) {
    if(push2_listener == 0) {
      digit++;
      delay(200);
      Serial.print("btn2");
    }
    Serial.print("btn1");
  }
}

程序进入while循环,我可以看到" btn1"在串行控制台中。但是,该程序不会进入if案例。

有人能帮助我吗?

1 个答案:

答案 0 :(得分:1)

在进入while循环之前,您的代码会读取两个按钮的状态。然后它永远不会读取while循环中的按钮状态。因此,按钮变量的值在while循环中永远不会改变。您需要在while循环中重复读取按钮状态。

也许是这样的:

while ((push1_listener = digitalRead(PUSH1)) == 0) {
    push2_listener = digitalRead(PUSH2);
    if (push2_listener == 0) {
        ...
    }
    ...
}