我正在使用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案例。
有人能帮助我吗?
答案 0 :(得分:1)
在进入while循环之前,您的代码会读取两个按钮的状态。然后它永远不会读取while循环中的按钮状态。因此,按钮变量的值在while循环中永远不会改变。您需要在while循环中重复读取按钮状态。
也许是这样的:
while ((push1_listener = digitalRead(PUSH1)) == 0) {
push2_listener = digitalRead(PUSH2);
if (push2_listener == 0) {
...
}
...
}