Browse Source

Updated wiringPi.c to work with some pullUpDown stuff

General tidying up of some of the code round delayMicroseconds
pull/22/head
Gordon Henderson 12 years ago
parent
commit
b23cb44ffa
4 changed files with 15 additions and 30 deletions
  1. BIN
      wiringPi/.wiringPiFace.c.swp
  2. +0
    -1
      wiringPi/README
  3. +15
    -27
      wiringPi/wiringPi.c
  4. +0
    -2
      wiringPi/wiringPi.h

BIN
wiringPi/.wiringPiFace.c.swp View File


+ 0
- 1
wiringPi/README View File

@@ -2,8 +2,6 @@
WiringPi: An implementation of most of the Arduino Wiring WiringPi: An implementation of most of the Arduino Wiring
functions for the Raspberry Pi functions for the Raspberry Pi



Full details at: Full details at:
https://projects.drogon.net/raspberry-pi/wiringpi/ https://projects.drogon.net/raspberry-pi/wiringpi/



+ 15
- 27
wiringPi/wiringPi.c View File

@@ -402,7 +402,8 @@ void pinModeGpio (int pin, int mode)


// When we change mode of any pin, we remove the pull up/downs // When we change mode of any pin, we remove the pull up/downs


pullUpDnControl (pin, PUD_OFF) ;
// delayMicroseconds (300) ;
// pullUpDnControl (pin, PUD_OFF) ;
} }


void pinModeWPi (int pin, int mode) void pinModeWPi (int pin, int mode)
@@ -479,24 +480,19 @@ void digitalWriteSys (int pin, int value)
********************************************************************************* *********************************************************************************
*/ */


void pwmWriteWPi (int pin, int value)
void pwmWriteGpio (int pin, int value)
{ {
int port ; int port ;


pin = pinToGpio [pin & 63] ;
pin = pin & 63 ;
port = gpioToPwmPort [pin] ; port = gpioToPwmPort [pin] ;


*(pwm + port) = value & 0x3FF ; *(pwm + port) = value & 0x3FF ;
} }


void pwmWriteGpio (int pin, int value)
void pwmWriteWPi (int pin, int value)
{ {
int port ;

pin = pin & 63 ;
port = gpioToPwmPort [pin] ;

*(pwm + port) = value & 0x3FF ;
pwmWriteGpio (pinToGpio [pin & 63], value) ;
} }


void pwmWriteSys (int pin, int value) void pwmWriteSys (int pin, int value)
@@ -588,28 +584,21 @@ int digitalReadSys (int pin)
********************************************************************************* *********************************************************************************
*/ */


void pullUpDnControlWPi (int pin, int pud)
void pullUpDnControlGpio (int pin, int pud)
{ {
pin = pinToGpio [pin & 63] ;
pin &= 63 ;
pud &= 3 ; pud &= 3 ;


*(gpio + GPPUD) = pud ; delayMicroseconds (10) ;
*(gpio + gpioToPUDCLK [pin]) = 1 << (pin & 31) ; delayMicroseconds (10) ;
*(gpio + GPPUD) = pud ; delayMicroseconds (5) ;
*(gpio + gpioToPUDCLK [pin]) = 1 << (pin & 31) ; delayMicroseconds (5) ;
*(gpio + GPPUD) = 0 ;
*(gpio + gpioToPUDCLK [pin]) = 0 ;
*(gpio + GPPUD) = 0 ; delayMicroseconds (5) ;
*(gpio + gpioToPUDCLK [pin]) = 0 ; delayMicroseconds (5) ;
} }


void pullUpDnControlGpio (int pin, int pud)
void pullUpDnControlWPi (int pin, int pud)
{ {
pin &= 63 ;
pud &= 3 ;

*(gpio + GPPUD) = pud ; delayMicroseconds (10) ;
*(gpio + gpioToPUDCLK [pin]) = 1 << (pin & 31) ; delayMicroseconds (10) ;
*(gpio + GPPUD) = 0 ;
*(gpio + gpioToPUDCLK [pin]) = 0 ;
pullUpDnControlGpio (pinToGpio [pin & 63], pud) ;
} }


void pullUpDnControlSys (int pin, int pud) void pullUpDnControlSys (int pin, int pud)
@@ -685,6 +674,7 @@ void delay (unsigned int howLong)
nanosleep (&sleeper, &dummy) ; nanosleep (&sleeper, &dummy) ;
} }



/* /*
* delayMicroseconds: * delayMicroseconds:
* This is somewhat intersting. It seems that on the Pi, a single call * This is somewhat intersting. It seems that on the Pi, a single call
@@ -977,5 +967,3 @@ int wiringPiSetupSys (void)


return 0 ; return 0 ;
} }



+ 0
- 2
wiringPi/wiringPi.h View File

@@ -86,8 +86,6 @@ extern int piHiPri (int pri) ;
// Extras from arduino land // Extras from arduino land


extern void delay (unsigned int howLong) ; extern void delay (unsigned int howLong) ;
//extern void delayMicroseconds (unsigned int howLong) ;
//extern void delayMicrosecondsHard (unsigned int howLong) ;
extern unsigned int millis (void) ; extern unsigned int millis (void) ;


#ifdef __cplusplus #ifdef __cplusplus


Loading…
Cancel
Save