mirror of
https://github.com/clockworkpi/WiringPi.git
synced 2025-12-14 16:48:52 +01:00
Updated wiringPi.c to work with some pullUpDown stuff
General tidying up of some of the code round delayMicroseconds
This commit is contained in:
parent
bf0ad86017
commit
b23cb44ffa
Binary file not shown.
@ -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
|
||||||
|
|
||||||
-- And a lot lot more!
|
|
||||||
|
|
||||||
Full details at:
|
Full details at:
|
||||||
https://projects.drogon.net/raspberry-pi/wiringpi/
|
https://projects.drogon.net/raspberry-pi/wiringpi/
|
||||||
|
|
||||||
|
|||||||
@ -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,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)
|
void pwmWriteGpio (int pin, int value)
|
||||||
{
|
{
|
||||||
int port ;
|
int port ;
|
||||||
@ -499,6 +490,11 @@ void pwmWriteGpio (int pin, int value)
|
|||||||
*(pwm + port) = value & 0x3FF ;
|
*(pwm + port) = value & 0x3FF ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void pwmWriteWPi (int pin, int value)
|
||||||
|
{
|
||||||
|
pwmWriteGpio (pinToGpio [pin & 63], value) ;
|
||||||
|
}
|
||||||
|
|
||||||
void pwmWriteSys (int pin, int value)
|
void pwmWriteSys (int pin, int value)
|
||||||
{
|
{
|
||||||
return ;
|
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)
|
void pullUpDnControlGpio (int pin, int pud)
|
||||||
{
|
{
|
||||||
pin &= 63 ;
|
pin &= 63 ;
|
||||||
pud &= 3 ;
|
pud &= 3 ;
|
||||||
|
|
||||||
*(gpio + GPPUD) = pud ; delayMicroseconds (10) ;
|
*(gpio + GPPUD) = pud ; delayMicroseconds (5) ;
|
||||||
*(gpio + gpioToPUDCLK [pin]) = 1 << (pin & 31) ; delayMicroseconds (10) ;
|
*(gpio + gpioToPUDCLK [pin]) = 1 << (pin & 31) ; delayMicroseconds (5) ;
|
||||||
|
|
||||||
*(gpio + GPPUD) = 0 ;
|
*(gpio + GPPUD) = 0 ; delayMicroseconds (5) ;
|
||||||
*(gpio + gpioToPUDCLK [pin]) = 0 ;
|
*(gpio + gpioToPUDCLK [pin]) = 0 ; delayMicroseconds (5) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
void pullUpDnControlWPi (int pin, int pud)
|
||||||
|
{
|
||||||
|
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 ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -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…
x
Reference in New Issue
Block a user