Updating gpio manual page

pull/6/head
Gordon Henderson 13 years ago
parent db2edcc9c5
commit 86a5c68e08

@ -39,7 +39,12 @@ SRC = test1.c test2.c speed.c lcd.c wfi.c piface.c gertboard.c nes.c delayTest.c
OBJ = test1.o test2.o speed.o lcd.o wfi.o piface.o gertboard.o nes.o delayTest.o softPwm.o OBJ = test1.o test2.o speed.o lcd.o wfi.o piface.o gertboard.o nes.o delayTest.o softPwm.o
all: test1 test2 speed lcd wfi piface gertboard nes softPwm BINS = test1 test2 speed lcd wfi piface gertboard nes delayTest softPwm
all:
@cat README.TXT
@echo " $(BINS)" | fmt
@echo ""
test1: test1.o test1: test1.o
@echo [link] @echo [link]
@ -77,7 +82,6 @@ softPwm: softPwm.o
@echo [link] @echo [link]
$(CC) -o $@ softPwm.o $(LDFLAGS) $(LIBS) -lm -lpthread $(CC) -o $@ softPwm.o $(LDFLAGS) $(LIBS) -lm -lpthread
delayTest: delayTest.o delayTest: delayTest.o
@echo [link] @echo [link]
$(CC) -o $@ delayTest.o $(LDFLAGS) $(LIBS) $(CC) -o $@ delayTest.o $(LDFLAGS) $(LIBS)

@ -41,7 +41,7 @@ OBJ = gpio.o
all: gpio all: gpio
gpio: gpio.o /usr/local/lib/libwiringPi.a gpio: gpio.o /usr/local/lib/libwiringPi.a /usr/local/lib/libwiringPi.so.1.0
@echo [LD] @echo [LD]
@$(CC) -o $@ gpio.o $(LDFLAGS) $(LIBS) @$(CC) -o $@ gpio.o $(LDFLAGS) $(LIBS)
@ -60,11 +60,14 @@ depend:
makedepend -Y $(SRC) makedepend -Y $(SRC)
install: install:
cp gpio /usr/local/bin @echo -n "Installing... "
chown root.root /usr/local/bin/gpio @cp gpio /usr/local/bin
chmod 4755 /usr/local/bin/gpio @chown root.root /usr/local/bin/gpio
mkdir -p /usr/local/man/man1 @chmod 4755 /usr/local/bin/gpio
cp gpio.1 /usr/local/man/man1 @mkdir -p /usr/local/man/man1
@cp gpio.1 /usr/local/man/man1
@echo "Done."
uninstall: uninstall:
rm -f /usr/local/bin/gpio rm -f /usr/local/bin/gpio

@ -48,9 +48,9 @@ channel value
.SH DESCRIPTION .SH DESCRIPTION
.B GPIO .B GPIO
is a swiss army knofe of a command line tool to allow the user easy is a swiss army knife of a command line tool to allow the user easy
access to the GPIO pins on the Raspberry Pi and the SPI A/D and D/A access to the GPIO pins on the Raspberry Pi and the SPI A/D and D/A
convertors on the Gertboard. It's designed for simple testing and converters on the Gertboard. It's designed for simple testing and
diagnostic purposes, but can be used in shell scripts for general if diagnostic purposes, but can be used in shell scripts for general if
somewhat slow control of the GPIO pins. somewhat slow control of the GPIO pins.
@ -122,7 +122,7 @@ the direction to input and set the edge interrupt method to \fInone\fR,
above and note that \fBBCM_GPIO\fR pin number is used not not wiringPi pin above and note that \fBBCM_GPIO\fR pin number is used not not wiringPi pin
numbering. numbering.
Like the export commands abovem ownership is set to that of the Like the export commands above, ownership is set to that of the
calling user, allowing subsequent access from user programs without calling user, allowing subsequent access from user programs without
requiring root/sudo. requiring root/sudo.
@ -155,7 +155,7 @@ the associated /dev/ entries so that the current user has access to them.
.B gbr .B gbr
channel channel
This reads the analog to digital convertor on the Gertboard on the given This reads the analog to digital converter on the Gertboard on the given
channel. The board jumpers need to be in-place to do this operation. channel. The board jumpers need to be in-place to do this operation.
.TP .TP
@ -163,7 +163,7 @@ channel. The board jumpers need to be in-place to do this operation.
channel value channel value
This writes the supplied value to the output channel on the Gertboards This writes the supplied value to the output channel on the Gertboards
SPI digital to analogue convertor. SPI digital to analogue converter.
The board jumpers need to be in-place to do this operation. The board jumpers need to be in-place to do this operation.
@ -171,26 +171,30 @@ The board jumpers need to be in-place to do this operation.
.PP .PP
.TS .TS
r r l. r r r l.
WiringPi GPIO Function WiringPi GPIO-r1 GPIO-r2 Function
_ _
0 17 0 17 17
1 18 (PWM) 1 18 18 (PWM)
2 21 2 21 27
3 22 3 22 22
4 23 4 23 23
5 24 5 24 24
6 25 6 25 25
7 4 7 4 4
8 0 SDA0 8 0 2 I2C: SDA0
9 1 SCL0 9 1 3 I2C: SCL0
10 8 SPI CE0 10 8 8 SPI: CE0
11 7 SPI CE1 11 7 7 SPI: CE1
12 10 SPI MOSI 12 10 10 SPI: MOSI
13 9 SPI MISO 13 9 9 SPI: MISO
14 11 SPI SCLK 14 11 11 SPI: SCLK
15 14 TxD 15 14 14 TxD
16 15 RxD 16 15 16 RxD
17 - 28
18 - 29
19 - 30
20 - 31
.TE .TE
.SH FILES .SH FILES

@ -40,7 +40,7 @@
# define FALSE (1==2) # define FALSE (1==2)
#endif #endif
#define VERSION "1.2" #define VERSION "1.3"
static int wpMode ; static int wpMode ;
@ -753,7 +753,7 @@ int main (int argc, char *argv [])
if (argc == 1) if (argc == 1)
{ {
fprintf (stderr, "%s: %s\n", argv [0], usage) ; fprintf (stderr, "%s\n", usage) ;
return 1 ; return 1 ;
} }
@ -769,6 +769,8 @@ int main (int argc, char *argv [])
printf ("Copyright (c) 2012 Gordon Henderson\n") ; printf ("Copyright (c) 2012 Gordon Henderson\n") ;
printf ("This is free software with ABSOLUTELY NO WARRANTY.\n") ; printf ("This is free software with ABSOLUTELY NO WARRANTY.\n") ;
printf ("For details type: %s -warranty\n", argv [0]) ; printf ("For details type: %s -warranty\n", argv [0]) ;
printf ("\n") ;
printf ("This Raspberry Pi is a revision %d board.\n", piBoardRev ()) ;
return 0 ; return 0 ;
} }
@ -807,9 +809,8 @@ int main (int argc, char *argv [])
else if (strcasecmp (argv [1], "unexportall") == 0) { doUnexportall (argc, argv) ; return 0 ; } else if (strcasecmp (argv [1], "unexportall") == 0) { doUnexportall (argc, argv) ; return 0 ; }
else if (strcasecmp (argv [1], "unexport" ) == 0) { doUnexport (argc, argv) ; return 0 ; } else if (strcasecmp (argv [1], "unexport" ) == 0) { doUnexport (argc, argv) ; return 0 ; }
// Check for drive or load commands: // Check for load command:
if (strcasecmp (argv [1], "drive") == 0) { doPadDrive (argc, argv) ; return 0 ; }
if (strcasecmp (argv [1], "load" ) == 0) { doLoad (argc, argv) ; return 0 ; } if (strcasecmp (argv [1], "load" ) == 0) { doLoad (argc, argv) ; return 0 ; }
// Gertboard commands // Gertboard commands
@ -861,7 +862,7 @@ int main (int argc, char *argv [])
wpMode = WPI_MODE_PINS ; wpMode = WPI_MODE_PINS ;
} }
// Check for PWM operations // Check for PWM or Pad Drive operations
if (wpMode != WPI_MODE_PIFACE) if (wpMode != WPI_MODE_PIFACE)
{ {
@ -869,6 +870,7 @@ int main (int argc, char *argv [])
if (strcasecmp (argv [1], "pwm-ms") == 0) { doPwmMode (PWM_MODE_MS) ; return 0 ; } if (strcasecmp (argv [1], "pwm-ms") == 0) { doPwmMode (PWM_MODE_MS) ; return 0 ; }
if (strcasecmp (argv [1], "pwmr") == 0) { doPwmRange (argc, argv) ; return 0 ; } if (strcasecmp (argv [1], "pwmr") == 0) { doPwmRange (argc, argv) ; return 0 ; }
if (strcasecmp (argv [1], "pwmc") == 0) { doPwmClock (argc, argv) ; return 0 ; } if (strcasecmp (argv [1], "pwmc") == 0) { doPwmClock (argc, argv) ; return 0 ; }
if (strcasecmp (argv [1], "drive") == 0) { doPadDrive (argc, argv) ; return 0 ; }
} }
// Check for wiring commands // Check for wiring commands

@ -21,14 +21,17 @@
# along with wiringPi. If not, see <http://www.gnu.org/licenses/>. # along with wiringPi. If not, see <http://www.gnu.org/licenses/>.
################################################################################# #################################################################################
DYN_VERS_MAJ=1
DYN_VERS_MIN=0
TARGET=libwiringPi.a STATIC=libwiringPi.a
DYNAMIC=libwiringPi.so.$(DYN_VERS_MAJ).$(DYN_VERS_MIN)
#DEBUG = -g -O0 #DEBUG = -g -O0
DEBUG = -O3 DEBUG = -O2
CC = gcc CC = gcc
INCLUDE = -I. INCLUDE = -I.
CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe -fPIC
LIBS = LIBS =
@ -45,20 +48,25 @@ OBJ = wiringPi.o wiringPiFace.o wiringSerial.o wiringShift.o \
piNes.o \ piNes.o \
lcd.o piHiPri.o piThread.o softPwm.o wiringPiSPI.o lcd.o piHiPri.o piThread.o softPwm.o wiringPiSPI.o
all: $(TARGET) all: $(STATIC) $(DYNAMIC)
$(TARGET): $(OBJ) $(STATIC): $(OBJ)
@echo [AR] $(OBJ) @echo [STATIC]
@ar rcs $(TARGET) $(OBJ) @ar rcs $(STATIC) $(OBJ)
@ranlib $(TARGET) @ranlib $(STATIC)
@size $(TARGET)
# @size $(STATIC)
$(DYNAMIC): $(OBJ)
@echo [DYNAMIC]
@gcc -shared -Wl,-soname,libwiringPi.so.1 -o libwiringPi.so.1.0 -lpthread $(OBJ)
.c.o: .c.o:
@echo [CC] $< @echo [CC] $<
@$(CC) -c $(CFLAGS) $< -o $@ @$(CC) -c $(CFLAGS) $< -o $@
clean: clean:
rm -f $(OBJ) $(TARGET) *~ core tags Makefile.bak rm -f $(OBJ) *~ core tags Makefile.bak libwiringPi.*
tags: $(SRC) tags: $(SRC)
@echo [ctags] @echo [ctags]
@ -69,27 +77,34 @@ depend:
install: $(TARGET) install: $(TARGET)
@echo [install] @echo [install]
install -m 0755 -d /usr/local/lib @install -m 0755 -d /usr/local/lib
install -m 0755 -d /usr/local/include @install -m 0755 -d /usr/local/include
install -m 0644 wiringPi.h /usr/local/include @install -m 0644 wiringPi.h /usr/local/include
install -m 0644 wiringSerial.h /usr/local/include @install -m 0644 wiringSerial.h /usr/local/include
install -m 0644 wiringShift.h /usr/local/include @install -m 0644 wiringShift.h /usr/local/include
install -m 0644 gertboard.h /usr/local/include @install -m 0644 gertboard.h /usr/local/include
install -m 0644 piNes.h /usr/local/include @install -m 0644 piNes.h /usr/local/include
install -m 0644 softPwm.h /usr/local/include @install -m 0644 softPwm.h /usr/local/include
install -m 0644 lcd.h /usr/local/include @install -m 0644 lcd.h /usr/local/include
install -m 0644 wiringPiSPI.h /usr/local/include @install -m 0644 wiringPiSPI.h /usr/local/include
install -m 0644 libwiringPi.a /usr/local/lib @install -m 0644 libwiringPi.a /usr/local/lib
@install -m 0755 libwiringPi.so.1.0 /usr/local/lib
@ln -sf /usr/local/lib/libwiringPi.so.1.0 /usr/local/lib/libwiringPi.so
@ln -sf /usr/local/lib/libwiringPi.so.1.0 /usr/local/lib/libwiringPi.so.1
@ldconfig
uninstall: uninstall:
@echo [uninstall] @echo [uninstall]
rm -f /usr/local/include/lcd.h @rm -f /usr/local/include/wiringPi.h
rm -f /usr/local/include/lpiNes.h @rm -f /usr/local/include/wiringSerial.h
rm -f /usr/local/include/gertboard.h @rm -f /usr/local/include/wiringShift.h
rm -f /usr/local/include/wiringShift.h @rm -f /usr/local/include/gertboard.h
rm -f /usr/local/include/wiringSerial.h @rm -f /usr/local/include/piNes.h
rm -f /usr/local/include/wiringPi.h @rm -f /usr/local/include/softPwm.h
rm -f /usr/local/lib/libwiringPi.a @rm -f /usr/local/include/lcd.h
@rm -f /usr/local/include/wiringPiSPI.h
@rm -f /usr/local/lib/libwiringPi.*
@ldconfig
# DO NOT DELETE # DO NOT DELETE
@ -98,8 +113,10 @@ wiringPi.o: wiringPi.h
wiringPiFace.o: wiringPi.h wiringPiFace.o: wiringPi.h
wiringSerial.o: wiringSerial.h wiringSerial.o: wiringSerial.h
wiringShift.o: wiringPi.h wiringShift.h wiringShift.o: wiringPi.h wiringShift.h
gertboard.o: gertboard.h gertboard.o: wiringPiSPI.h gertboard.h
piNes.o: wiringPi.h piNes.h piNes.o: wiringPi.h piNes.h
lcd.o: wiringPi.h lcd.h lcd.o: wiringPi.h lcd.h
piHiPri.o: wiringPi.h piHiPri.o: wiringPi.h
piThread.o: wiringPi.h piThread.o: wiringPi.h
softPwm.o: wiringPi.h softPwm.h
wiringPiSPI.o: wiringPiSPI.h

@ -75,7 +75,10 @@ struct lcdDataStruct *lcds [MAX_LCDS] ;
static void strobe (struct lcdDataStruct *lcd) static void strobe (struct lcdDataStruct *lcd)
{ {
digitalWrite (lcd->strbPin, 1) ; delayMicroseconds (1) ;
// Note timing changes for new version of delayMicroseconds ()
digitalWrite (lcd->strbPin, 1) ; delayMicroseconds (50) ;
digitalWrite (lcd->strbPin, 0) ; delayMicroseconds (50) ; digitalWrite (lcd->strbPin, 0) ; delayMicroseconds (50) ;
} }

@ -26,6 +26,10 @@
#define MAX_LCDS 8 #define MAX_LCDS 8
#ifdef __cplusplus
extern "C" {
#endif
extern void lcdHome (int fd) ; extern void lcdHome (int fd) ;
extern void lcdClear (int fd) ; extern void lcdClear (int fd) ;
extern void lcdPosition (int fd, int x, int y) ; extern void lcdPosition (int fd, int x, int y) ;
@ -33,10 +37,6 @@ extern void lcdPutchar (int fd, uint8_t data) ;
extern void lcdPuts (int fd, char *string) ; extern void lcdPuts (int fd, char *string) ;
extern void lcdPrintf (int fd, char *message, ...) ; extern void lcdPrintf (int fd, char *message, ...) ;
#ifdef __cplusplus
extern "C" {
#endif
extern int lcdInit (int rows, int cols, int bits, int rs, int strb, extern int lcdInit (int rows, int cols, int bits, int rs, int strb,
int d0, int d1, int d2, int d3, int d4, int d5, int d6, int d7) ; int d0, int d1, int d2, int d3, int d4, int d5, int d6, int d7) ;

@ -427,6 +427,7 @@ int piBoardRev (void)
} }
fclose (cpuFd) ; fclose (cpuFd) ;
if (r == -1) if (r == -1)
{ {
fprintf (stderr, "piBoardRev: Unable to determine board revision from /proc/cpuinfo\n") ; fprintf (stderr, "piBoardRev: Unable to determine board revision from /proc/cpuinfo\n") ;
@ -449,9 +450,11 @@ int piBoardRev (void)
boardRev = 2 ; boardRev = 2 ;
else else
{ {
fprintf (stderr, "piBoardRev: Unable to determine board revision from %d\n", r) ; fprintf (stderr, "WARNING: wiringPi: Unable to determine board revision from \"%d\"\n", r) ;
errno = 0 ; fprintf (stderr, " -> You may want to check:\n") ;
return -1 ; fprintf (stderr, " -> http://www.raspberrypi.org/phpBB3/viewtopic.php?p=184410#p184410\n") ;
fprintf (stderr, " -> Assuming a Rev 1 board\n") ;
boardRev = 1 ;
} }
if (wiringPiDebug) if (wiringPiDebug)

Loading…
Cancel
Save