mirror of
git://soft.sys114.com/WiringPi2-Python
synced 2026-02-08 01:50:27 +09:00
Lots of changes here. Added new I2C test code, a new serialTest program,
and developed the new ISR - Interrupt Service Routine handler - much easier than the old waitForInterrupt code! Minor tweaks to the gpio program to recognise the environment variable WIRINGPI_DEBUG too, and removed the printing of the errors from the main wiringPi setup routines (and added some new ones!)
This commit is contained in:
@@ -30,7 +30,7 @@ INCLUDE = -I/usr/local/include
|
||||
CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
|
||||
|
||||
LDFLAGS = -L/usr/local/lib
|
||||
LIBS = -lwiringPi
|
||||
LIBS = -lwiringPi -lpthread
|
||||
|
||||
# May not need to alter anything below this line
|
||||
###############################################################################
|
||||
|
||||
13
gpio/gpio.1
13
gpio/gpio.1
@@ -57,6 +57,9 @@ converters on the Gertboard. It's designed for simple testing and
|
||||
diagnostic purposes, but can be used in shell scripts for general if
|
||||
somewhat slow control of the GPIO pins.
|
||||
|
||||
It can also control the IO's on the PiFace IO board and load the SPI and I2C
|
||||
kernel modules if required.
|
||||
|
||||
Additionally, it can be used to set the exports in the \fI/sys/class/gpio\fR
|
||||
system directory to allow subsequent programs to use the \fR/sys/class/gpio\fR
|
||||
interface without needing to be run as root.
|
||||
@@ -70,6 +73,8 @@ Output the current version including the board revision of the Raspberry Pi.
|
||||
.TP
|
||||
.B \-g
|
||||
Use the BCM_GPIO pins numbers rather than wiringPi pin numbers.
|
||||
\fINOTE:\fR The BCM_GPIO pin numbers are always used with the
|
||||
export and edge commands.
|
||||
|
||||
.TP
|
||||
.B \-p
|
||||
@@ -183,7 +188,7 @@ SPI digital to analogue converter.
|
||||
The board jumpers need to be in-place to do this operation.
|
||||
|
||||
|
||||
.SH "WiringPi vs. GPIO Pin numbering"
|
||||
.SH "WiringPi vs. BCM_GPIO Pin numbering"
|
||||
|
||||
.PP
|
||||
.TS
|
||||
@@ -213,6 +218,12 @@ _
|
||||
20 - 31
|
||||
.TE
|
||||
|
||||
Note that "r1" and "r2" above refers to the board revision. Normally
|
||||
wiringPi detects the correct board revision with use for it's own
|
||||
numbering scheme, but if you are using a Revision 2 board with some
|
||||
of the pins which change numbers between revisions you will need
|
||||
to alter your software.
|
||||
|
||||
.SH FILES
|
||||
|
||||
.TP 2.2i
|
||||
|
||||
24
gpio/gpio.c
24
gpio/gpio.c
@@ -35,12 +35,14 @@
|
||||
#include <wiringPi.h>
|
||||
#include <gertboard.h>
|
||||
|
||||
extern int wiringPiDebug ;
|
||||
|
||||
#ifndef TRUE
|
||||
# define TRUE (1==1)
|
||||
# define FALSE (1==2)
|
||||
#endif
|
||||
|
||||
#define VERSION "1.5"
|
||||
#define VERSION "1.6"
|
||||
|
||||
static int wpMode ;
|
||||
|
||||
@@ -127,7 +129,7 @@ static int moduleLoaded (char *modName)
|
||||
|
||||
static void _doLoadUsage (char *argv [])
|
||||
{
|
||||
fprintf (stderr, "Usage: %s load <spi/i2c>\n", argv [0]) ;
|
||||
fprintf (stderr, "Usage: %s load <spi/i2c> [bufferSize in KB for spi]\n", argv [0]) ;
|
||||
exit (1) ;
|
||||
}
|
||||
|
||||
@@ -136,16 +138,24 @@ static void doLoad (int argc, char *argv [])
|
||||
char *module1, *module2 ;
|
||||
char cmd [80] ;
|
||||
char *file1, *file2 ;
|
||||
char spiBuf [32] ;
|
||||
|
||||
if (argc != 3)
|
||||
if (argc < 3)
|
||||
_doLoadUsage (argv) ;
|
||||
|
||||
spiBuf [0] = 0 ;
|
||||
|
||||
/**/ if (strcasecmp (argv [2], "spi") == 0)
|
||||
{
|
||||
module1 = "spidev" ;
|
||||
module2 = "spi_bcm2708" ;
|
||||
file1 = "/dev/spidev0.0" ;
|
||||
file2 = "/dev/spidev0.1" ;
|
||||
if (argc == 4)
|
||||
sprintf (spiBuf, " bufsize=%d", atoi (argv [3]) * 1024) ;
|
||||
else if (argc > 4)
|
||||
_doLoadUsage (argv) ;
|
||||
|
||||
}
|
||||
else if (strcasecmp (argv [2], "i2c") == 0)
|
||||
{
|
||||
@@ -159,7 +169,7 @@ static void doLoad (int argc, char *argv [])
|
||||
|
||||
if (!moduleLoaded (module1))
|
||||
{
|
||||
sprintf (cmd, "modprobe %s", module1) ;
|
||||
sprintf (cmd, "modprobe %s%s", module1, spiBuf) ;
|
||||
system (cmd) ;
|
||||
}
|
||||
|
||||
@@ -848,6 +858,12 @@ int main (int argc, char *argv [])
|
||||
{
|
||||
int i ;
|
||||
|
||||
if (getenv ("WIRINGPI_DEBUG") != NULL)
|
||||
{
|
||||
printf ("gpio: wiringPi debug mode enabled\n") ;
|
||||
wiringPiDebug = TRUE ;
|
||||
}
|
||||
|
||||
if (argc == 1)
|
||||
{
|
||||
fprintf (stderr, "%s\n", usage) ;
|
||||
|
||||
Reference in New Issue
Block a user