SOMEONE pushed the wrong file??
This commit is contained in:
parent
9bcc3aecc0
commit
d69ceb2855
|
@ -1,45 +1,55 @@
|
||||||
#include <Wire.h>
|
#include <EasyTransfer.h>
|
||||||
char controllerState[8];
|
|
||||||
#define I2C_SLAVE_ADDR 0x07
|
|
||||||
|
|
||||||
const long throttle = 100;
|
#define BUTTONS 16
|
||||||
long lastSend=0;
|
#define FAUXBUTTONS 5
|
||||||
|
|
||||||
void setup(){
|
const long speedLimit = 10;
|
||||||
for (int pinNumber = 0; pinNumber < 14; pinNumber++) { pinMode(pinNumber, INPUT_PULLUP); }
|
|
||||||
// for (int pinNumber = 14; pinNumber <= 21; pinNumber++) { pinMode(pinNumber, INPUT); }
|
unsigned long lastSend = 0;
|
||||||
pinMode(0+14, INPUT);
|
|
||||||
Wire.begin();
|
int buttonPins[BUTTONS] = { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, A0, A1, A2, A3 };
|
||||||
// Serial.begin(115200);
|
int analogButtonPin = A4;
|
||||||
|
|
||||||
|
EasyTransfer ET;
|
||||||
|
|
||||||
|
struct SEND_DATA_STRUCTURE{
|
||||||
|
//THIS MUST BE EXACTLY THE SAME ON THE OTHER ARDUINO
|
||||||
|
int16_t joyx;
|
||||||
|
int16_t joyy;
|
||||||
|
int8_t joyz;
|
||||||
|
int16_t joyxr;
|
||||||
|
int16_t joyyr;
|
||||||
|
int8_t joyzr;
|
||||||
|
uint32_t buttonState;
|
||||||
|
};
|
||||||
|
|
||||||
|
SEND_DATA_STRUCTURE controllerState;
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
Serial.begin(2000000);
|
||||||
|
ET.begin(details(controllerState), &Serial);
|
||||||
|
for (int i = 0; i < BUTTONS; i++) { pinMode(buttonPins[i], INPUT_PULLUP); }
|
||||||
|
pinMode(analogButtonPin, INPUT);
|
||||||
|
}
|
||||||
|
|
||||||
|
uint32_t readButtons(){
|
||||||
|
uint32_t buttonStateNow = 0;
|
||||||
|
for (int i=0; i<BUTTONS; i++) {
|
||||||
|
bitWrite(buttonStateNow, i, !digitalRead(buttonPins[i]));
|
||||||
|
}
|
||||||
|
int fauxButton = analogRead(analogButtonPin) / 205;
|
||||||
|
for (int i=0; i<FAUXBUTTONS; i++) {
|
||||||
|
bool buttonPressed = false;
|
||||||
|
fauxButton == i ? buttonPressed = true : buttonPressed = false;
|
||||||
|
bitWrite(buttonStateNow, i + BUTTONS, buttonPressed);
|
||||||
|
}
|
||||||
|
return buttonStateNow;
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop(){
|
void loop(){
|
||||||
controllerState[0] = map(analogRead(14), 0, 1023, 0, 255);
|
controllerState.buttonState = readButtons();
|
||||||
controllerState[1] = 128; //map(analogRead(15), 0, 1023, 0, 255);
|
if ((millis() - lastSend) > speedLimit ) {
|
||||||
controllerState[2] = 128; //map(analogRead(16), 0, 1023, 0, 255);
|
ET.sendData();
|
||||||
controllerState[3] = 128; //map(analogRead(17), 0, 1023, 0, 255);
|
|
||||||
controllerState[4] = 128; //map(analogRead(20), 0, 1023, 0, 255);
|
|
||||||
controllerState[5] = 128; //map(analogRead(21), 0, 1023, 0, 255);
|
|
||||||
controllerState[6] = readButtons(8, 0);
|
|
||||||
controllerState[7] = readButtons(6, 8);
|
|
||||||
if ((millis() - lastSend) > throttle ) {
|
|
||||||
Wire.beginTransmission(I2C_SLAVE_ADDR);
|
|
||||||
for (int i=0; i<sizeof(controllerState); i++){
|
|
||||||
Wire.write(controllerState[i]);
|
|
||||||
}
|
|
||||||
Wire.endTransmission();
|
|
||||||
lastSend = millis();
|
lastSend = millis();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
byte readButtons(int numberOfButtonsToRead, int inputNumberOffset){
|
|
||||||
byte tempByte = 0;
|
|
||||||
for (int i=0; i<8; i++){
|
|
||||||
if (i < numberOfButtonsToRead) {
|
|
||||||
tempByte += (digitalRead(i + inputNumberOffset) << i);
|
|
||||||
} else {
|
|
||||||
tempByte += (1 << i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ~tempByte;
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue