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:
Gordon Henderson
2013-01-14 11:31:56 +00:00
parent 25e4ec570b
commit 13bbba7a22
15 changed files with 744 additions and 91 deletions

View File

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

View File

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

View File

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