Changes to the piNes driver to relect the new delayMicroseconds()

code. Seems the old 4011 in the NES controller isn't that fast
afterall!
pull/6/head
Gordon Henderson 13 years ago
parent 1bb4989e11
commit fbab4b8329

@ -38,6 +38,8 @@
#define NES_A 0x80
#define PULSE_TIME 25
// Data to store the pins for each controller
struct nesPinsStruct
@ -91,10 +93,8 @@ unsigned int readNesJoystick (int joystick)
// Toggle Latch - which presents the first bit
digitalWrite (pins->lPin, HIGH) ;
delayMicroseconds (1) ;
digitalWrite (pins->lPin, LOW) ;
delayMicroseconds (1) ;
digitalWrite (pins->lPin, HIGH) ; delayMicroseconds (PULSE_TIME) ;
digitalWrite (pins->lPin, LOW) ; delayMicroseconds (PULSE_TIME) ;
// Read first bit
@ -104,12 +104,10 @@ unsigned int readNesJoystick (int joystick)
for (i = 0 ; i < 7 ; ++i)
{
digitalWrite (pins->cPin, HIGH) ;
delayMicroseconds (1) ;
digitalWrite (pins->cPin, LOW) ;
delayMicroseconds (1) ;
digitalWrite (pins->cPin, HIGH) ; delayMicroseconds (PULSE_TIME) ;
digitalWrite (pins->cPin, LOW) ; delayMicroseconds (PULSE_TIME) ;
value = (value << 1) | digitalRead (pins->dPin) ;
}
return ~value ;
return value ^ 0xFF ;
}

Loading…
Cancel
Save