From dc5d550bf039e84db7f16048357c52ffb6233608 Mon Sep 17 00:00:00 2001 From: Pedro de Oliveira Date: Mon, 15 Sep 2014 00:22:32 +0100 Subject: [PATCH] hlap from phantoxe --- snes_controller/snes_controller.ino | 32 ++++++++++++++++------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/snes_controller/snes_controller.ino b/snes_controller/snes_controller.ino index 227746b..b949bbf 100644 --- a/snes_controller/snes_controller.ino +++ b/snes_controller/snes_controller.ino @@ -17,16 +17,15 @@ static int datin = 11; // set the data in pin JoyState_t joySt; void setup() { - Serial.begin(9600); - // while the serial stream is not open, do nothing: - while (!Serial) ; + //Serial.begin(9600); + //while (!Serial) ; - pinMode(latch,OUTPUT); - pinMode(clock,OUTPUT); - pinMode(datin,INPUT); + pinMode(latch, OUTPUT); + pinMode(clock, OUTPUT); + pinMode(datin, INPUT); - digitalWrite(latch,HIGH); - digitalWrite(clock,HIGH); + digitalWrite(latch, LOW); + digitalWrite(clock, HIGH); joySt.zAxis = 127; } @@ -35,19 +34,24 @@ word controllerRead() { word data = 0; - digitalWrite(latch,HIGH); + digitalWrite(latch, HIGH); delayMicroseconds(2); - digitalWrite(latch,LOW); + digitalWrite(latch, LOW); + delayMicroseconds(1); + + digitalWrite(clock, LOW); delayMicroseconds(1); for (int i = 0; i < 16; i++) { data >>= 1; data |= (digitalRead(datin) ? 0x8000 : 0); - digitalWrite(clock,HIGH); - //delayMicroseconds(1); - digitalWrite(clock,LOW); + digitalWrite(clock, HIGH); + delayMicroseconds(2); + digitalWrite(clock, LOW); + delayMicroseconds(1); } + digitalWrite(clock, HIGH); return data; } @@ -74,7 +78,7 @@ void loop() { */ word controller_data = controllerRead(); // Read 16 bit of data - Serial.println(controller_data, BIN); + //Serial.println(controller_data, BIN); joySt.buttons = 0; // Reset buttons