1
0
mirror of https://github.com/limyz/573controller synced 2024-11-27 17:00:58 +01:00

Optimize code slightly

This commit is contained in:
987123879113 2020-06-04 17:06:22 +09:00
parent 9849b5c7f2
commit 4f9a699823
2 changed files with 9 additions and 41 deletions

View File

@ -1,7 +1,7 @@
//-------------------------------------------------------------------- //--------------------------------------------------------------------
// For use with a 573 or GH Guitar Controller // For use with a 573 or GH Guitar Controller
// //
// This sketch maps a LIS3LV02DL accelerometer via I2C and uses 7 digital // This sketch maps a LIS3LV02DL accelerometer via I2C and uses 7 digital
// inputs - 5 buttons and a 2 hat switches for the pick. // inputs - 5 buttons and a 2 hat switches for the pick.
// //
// All digital pins are grounded when they are pressed. // All digital pins are grounded when they are pressed.
@ -32,7 +32,7 @@ byte i2c_read(byte address) {
Wire.beginTransmission(_slave_id); Wire.beginTransmission(_slave_id);
Wire.write(address); Wire.write(address);
Wire.endTransmission(); Wire.endTransmission();
Wire.requestFrom(_slave_id, 1); Wire.requestFrom(_slave_id, 1);
while(Wire.available()) { while(Wire.available()) {
return Wire.read(); return Wire.read();
@ -89,28 +89,12 @@ void loop() {
bool valueChanged = false; bool valueChanged = false;
byte x_val_l = i2c_read(OUTX_L), y_val_l = i2c_read(OUTY_L), z_val_l = i2c_read(OUTZ_L); byte x_val_l = i2c_read(OUTX_L), y_val_l = i2c_read(OUTY_L), z_val_l = i2c_read(OUTZ_L);
byte x_val_h = i2c_read(OUTX_H), y_val_h = i2c_read(OUTY_H), z_val_h = i2c_read(OUTZ_H); byte x_val_h = i2c_read(OUTX_H), y_val_h = i2c_read(OUTY_H), z_val_h = i2c_read(OUTZ_H);
// Read pin values // Read pin values
for (int index = 0; index < 5; index++) { for (int index = 0; index < 5; index++) {
int currentButtonState = !digitalRead(index + pinToButtonMap); int currentButtonState = !digitalRead(index + pinToButtonMap);
if (currentButtonState != lastButtonState[index]) { if (currentButtonState != lastButtonState[index]) {
switch (index) { Joystick.setButton(index, currentButtonState);
case 0:
Joystick.setButton(0, currentButtonState);
break;
case 1:
Joystick.setButton(1, currentButtonState);
break;
case 2:
Joystick.setButton(2, currentButtonState);
break;
case 3:
Joystick.setButton(3, currentButtonState);
break;
case 4:
Joystick.setButton(4, currentButtonState);
break;
}
lastButtonState[index] = currentButtonState; lastButtonState[index] = currentButtonState;
} }
} }

View File

@ -1,7 +1,7 @@
//-------------------------------------------------------------------- //--------------------------------------------------------------------
// For use with a 573 or GH Guitar Controller // For use with a 573 or GH Guitar Controller
// //
// This sketch maps a ADXL345 accelerometer via I2C and uses 7 digital // This sketch maps a ADXL345 accelerometer via I2C and uses 7 digital
// inputs - 5 buttons and a 2 hat switches for the pick. // inputs - 5 buttons and a 2 hat switches for the pick.
// //
// All digital pins are grounded when they are pressed. // All digital pins are grounded when they are pressed.
@ -70,12 +70,12 @@ int lastButtonState[5] = {0,0,0,0,0};
int lastHatSwitchState[2] = {0,0}; int lastHatSwitchState[2] = {0,0};
void loop() { void loop() {
/* Get a new sensor event */ /* Get a new sensor event */
sensors_event_t event; sensors_event_t event;
accel.getEvent(&event); accel.getEvent(&event);
bool valueChanged = false; bool valueChanged = false;
Joystick.setXAxis(event.acceleration.x); Joystick.setXAxis(event.acceleration.x);
Joystick.setYAxis(event.acceleration.y); Joystick.setYAxis(event.acceleration.y);
Joystick.setZAxis(event.acceleration.z); Joystick.setZAxis(event.acceleration.z);
@ -84,23 +84,7 @@ void loop() {
for (int index = 0; index < 5; index++) { for (int index = 0; index < 5; index++) {
int currentButtonState = !digitalRead(index + pinToButtonMap); int currentButtonState = !digitalRead(index + pinToButtonMap);
if (currentButtonState != lastButtonState[index]) { if (currentButtonState != lastButtonState[index]) {
switch (index) { Joystick.setButton(index, currentButtonState);
case 0:
Joystick.setButton(0, currentButtonState);
break;
case 1:
Joystick.setButton(1, currentButtonState);
break;
case 2:
Joystick.setButton(2, currentButtonState);
break;
case 3:
Joystick.setButton(3, currentButtonState);
break;
case 4:
Joystick.setButton(4, currentButtonState);
break;
}
lastButtonState[index] = currentButtonState; lastButtonState[index] = currentButtonState;
} }
} }