Update RetroJoystickAdapter_Playstation.ino

This commit is contained in:
mcgurk 2016-10-12 21:18:27 +03:00 committed by GitHub
parent 592c1a0d08
commit 08f12fcdc4
1 changed files with 24 additions and 34 deletions

View File

@ -164,7 +164,7 @@ uint8_t shift(uint8_t _dataOut) // Does the actual shifting, both in and out sim
{ {
uint8_t _temp = 0; uint8_t _temp = 0;
uint8_t _dataIn = 0; uint8_t _dataIn = 0;
uint8_t _delay = 2; //clock 250kHz uint8_t _delay = 6; //2 unstable; //clock 250kHz
delayMicroseconds(100); //max acknowledge waiting time 100us delayMicroseconds(100); //max acknowledge waiting time 100us
for (uint8_t _i = 0; _i <= 7; _i++) { for (uint8_t _i = 0; _i <= 7; _i++) {
@ -217,8 +217,8 @@ void loop() {
head = shift(0x01); head = shift(0x01);
Joystick[0].type = shift(0x42); Joystick[0].type = shift(0x42);
padding = shift(0x01); //read multitap in next command padding = shift(0x01); //read multitap in next command
Joystick[0].data[0] = shift(0x00); //buttons Joystick[0].data[0] = ~shift(0x00); //buttons
Joystick[0].data[1] = shift(0x00); //buttons Joystick[0].data[1] = ~shift(0x00); //buttons
Joystick[0].data[2] = shift(0x00); //right analog Joystick[0].data[2] = shift(0x00); //right analog
Joystick[0].data[3] = shift(0x00); //right analog Joystick[0].data[3] = shift(0x00); //right analog
Joystick[0].data[4] = shift(0x00); //left analog Joystick[0].data[4] = shift(0x00); //left analog
@ -226,6 +226,7 @@ void loop() {
digitalWrite(ATT1, HIGH); digitalWrite(ATT1, HIGH);
//digitalWrite(ATT2, HIGH); //digitalWrite(ATT2, HIGH);
//delay(100);
// second: check and read multitap // second: check and read multitap
digitalWrite(ATT1, LOW); digitalWrite(ATT1, LOW);
@ -242,41 +243,30 @@ void loop() {
Joystick[i].data[3] = shift(0x00); //right analog Joystick[i].data[3] = shift(0x00); //right analog
Joystick[i].data[4] = shift(0x00); //left analog Joystick[i].data[4] = shift(0x00); //left analog
Joystick[i].data[5] = shift(0x00); //left analog Joystick[i].data[5] = shift(0x00); //left analog
/*
if (!bitRead(data1,4)) Joystick[i].yAxis2 = 0;
if (!bitRead(data1,5)) Joystick[i].xAxis2 = 255;
if (!bitRead(data1,6)) Joystick[i].yAxis2 = 255;
if (!bitRead(data1,7)) Joystick[i].xAxis2 = 0;
data1 = data1 | B11110000;
}*/
} }
} }
/*for (uint8_t i = 0; i < 8*4; i++) {
data[i] = shift(0x00);
}*/
digitalWrite(ATT1, HIGH); digitalWrite(ATT1, HIGH);
#ifdef DEBUG #ifdef DEBUG
/*Serial.print(" head/type/padding: 0x"); Serial.print(head, HEX); for (uint8_t i = 0; i < 4; i++) {
Serial.print(" 0x"); Serial.print(type, HEX); Serial.print(" multitap: "); Serial.println(multitap, HEX);
Serial.print(" 0x"); Serial.print(padding, HEX); Serial.print(" type: 0x"); Serial.print(Joystick[i].type, HEX);
Serial.print(" - "); Serial.print(" data: 0x"); Serial.print(Joystick[i].data[0], HEX);
for (uint8_t i = 0; i < 8*4; i++) { Serial.print(" 0x"); Serial.print(Joystick[i].data[1], HEX);
Serial.print(data[i], HEX); Serial.print(" "); Serial.print(" 0x"); Serial.print(Joystick[i].data[2], HEX);
}*/ Serial.print(" 0x"); Serial.print(Joystick[i].data[3], HEX);
Serial.print(" data: 0x"); Serial.print(data1, HEX); Serial.print(" 0x"); Serial.print(Joystick[i].data[4], HEX);
Serial.print(" 0x"); Serial.print(data2, HEX); Serial.print(" 0x"); Serial.print(Joystick[i].data[5], HEX);
Serial.print(" 0x"); Serial.print(data3, HEX); Serial.println();
Serial.print(" 0x"); Serial.print(data4, HEX); }
Serial.print(" 0x"); Serial.print(data5, HEX); /*Serial.print(" type: 0x"); Serial.print(Joystick[0].type, HEX);
Serial.print(" 0x"); Serial.print(data6, HEX); Serial.print(" data: 0x"); Serial.print(Joystick[0].data[0], HEX);
//Serial.print(" 0x"); Serial.print(data7, HEX); Serial.print(" 0x"); Serial.print(Joystick[0].data[1], HEX);
//Serial.print(" 0x"); Serial.print(data8, HEX); Serial.print(" 0x"); Serial.print(Joystick[0].data[2], HEX);
/*Serial.print("--head: 0x"); Serial.print(head, HEX); Serial.print(" type: 0x"); Serial.print(type, HEX); Serial.print(" padding: 0x"); Serial.print(padding, HEX); Serial.print(" 0x"); Serial.print(Joystick[0].data[3], HEX);
Serial.print(" data1: 0x"); Serial.print(data1, HEX); Serial.print(" "), Serial.print(data1, BIN); Serial.print(" 0x"); Serial.print(Joystick[0].data[4], HEX);
Serial.print(" data2: 0x"); Serial.print(data2, HEX); Serial.print(" "), Serial.print(data2, BIN); Serial.print(" 0x"); Serial.print(Joystick[0].data[5], HEX);
Serial.print(" rest: "); Serial.print(data3, DEC); Serial.print(" "); Serial.print(data4, DEC); Serial.print(" "); Serial.print(data5, DEC); Serial.print(" "); Serial.print(data6, DEC);*/ Serial.println();*/
Serial.println();
Serial.flush(); Serial.flush();
#endif #endif
@ -290,5 +280,5 @@ void loop() {
Joystick[3].sendState(); Joystick[3].sendState();
delayMicroseconds(1000); delayMicroseconds(1000);
}
}