Updated wiringPi.c to work with some pullUpDown stuff

This commit is contained in:
Gordon Henderson 2012-08-18 00:05:38 +01:00
parent bf0ad86017
commit 0d68ceea6b
4 changed files with 17 additions and 33 deletions

Binary file not shown.

View File

@ -2,8 +2,6 @@
WiringPi: An implementation of most of the Arduino Wiring
functions for the Raspberry Pi
-- And a lot lot more!
Full details at:
https://projects.drogon.net/raspberry-pi/wiringpi/

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
pullUpDnControl (pin, PUD_OFF) ;
// delayMicroseconds (300) ;
// pullUpDnControl (pin, PUD_OFF) ;
}
void pinModeWPi (int pin, int mode)
@ -479,16 +480,6 @@ void digitalWriteSys (int pin, int value)
*********************************************************************************
*/
void pwmWriteWPi (int pin, int value)
{
int port ;
pin = pinToGpio [pin & 63] ;
port = gpioToPwmPort [pin] ;
*(pwm + port) = value & 0x3FF ;
}
void pwmWriteGpio (int pin, int value)
{
int port ;
@ -499,6 +490,11 @@ void pwmWriteGpio (int pin, int value)
*(pwm + port) = value & 0x3FF ;
}
void pwmWriteWPi (int pin, int value)
{
pwmWriteGpio (pinToGpio [pin & 63], value) ;
}
void pwmWriteSys (int pin, int value)
{
return ;
@ -588,28 +584,21 @@ int digitalReadSys (int pin)
*********************************************************************************
*/
void pullUpDnControlWPi (int pin, int pud)
{
pin = pinToGpio [pin & 63] ;
pud &= 3 ;
*(gpio + GPPUD) = pud ; delayMicroseconds (10) ;
*(gpio + gpioToPUDCLK [pin]) = 1 << (pin & 31) ; delayMicroseconds (10) ;
*(gpio + GPPUD) = 0 ;
*(gpio + gpioToPUDCLK [pin]) = 0 ;
}
void pullUpDnControlGpio (int pin, int pud)
{
pin &= 63 ;
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 pullUpDnControlWPi (int pin, int pud)
{
pullUpDnControlGpio (pinToGpio [pin & 63], pud) ;
}
void pullUpDnControlSys (int pin, int pud)
@ -685,6 +674,7 @@ void delay (unsigned int howLong)
nanosleep (&sleeper, &dummy) ;
}
/*
* delayMicroseconds:
* This is somewhat intersting. It seems that on the Pi, a single call
@ -977,5 +967,3 @@ int wiringPiSetupSys (void)
return 0 ;
}

View File

@ -86,8 +86,6 @@ extern int piHiPri (int pri) ;
// Extras from arduino land
extern void delay (unsigned int howLong) ;
//extern void delayMicroseconds (unsigned int howLong) ;
//extern void delayMicrosecondsHard (unsigned int howLong) ;
extern unsigned int millis (void) ;
#ifdef __cplusplus