質問: -1) { Serial.print(F("\r\nOSC did not start")); while (1); // Halt } Serial.print(F("\r\nPS4 Bluetooth Library Started")); } void loop() { Usb.Task(); if (PS4.connected()) { if (PS4.getButtonClick(TOUCHPAD)) { PS4.disconnect(); } if (PS4.getButtonClick(START)) { Serial.println("START"); } if (PS4.getButtonClick(SQUARE)) { Serial.print("SQUARE"); while (1) { if (PS4.getButtonPress(UP)) { Serial.print("UP"); } if (PS4.getButtonPress(DOWN)) { Serial.print("DOWN"); } if (PS4.getButtonPress(LEFT)) { Serial.print("LEFT"); } if (PS4.getButtonPress(RIGHT)) { Serial.print("RIGHT"); } if (PS4.getButtonPress(CROSS)) { break; } delay(10); } Serial.println(""); }
回答: > while文の中でif文を使うのが悪いのでしょうか? ではないように思います。 私は「ArduinoでPS4コントローラーを使って」いないのでそのライブラリの内容もよくはしりませんが、 PS4.getButtonClick()というのは「Usb.Task();が実行された時点でボタンが押されている」ことを知る関数ではないのですか? だとすると、while()ループの中ではUsb.Task()が呼ばれていないのですから、PS4.getButtonClick()関数の返り値は一切変更されないことになります。