Browse Source

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/22/head
Gordon Henderson 12 years ago
parent
commit
fbab4b8329
1 changed files with 7 additions and 9 deletions
  1. +7
    -9
      wiringPi/piNes.c

+ 7
- 9
wiringPi/piNes.c View File

@@ -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