diff --git a/People b/People index f5645be..8be8b6d 100644 --- a/People +++ b/People @@ -22,3 +22,6 @@ Arno Wagner CHARLES Thibaut: A small issue in softTone + +Xian Stannard + Fixing some typos in the man page! diff --git a/gpio/gpio.1 b/gpio/gpio.1 index ec54f13..ec65519 100644 --- a/gpio/gpio.1 +++ b/gpio/gpio.1 @@ -182,7 +182,7 @@ close as the Pi can manage) The default speed is 100Kb/sec. .TP .B load spi [buffer size in KB] -This loads the the spi drivers into the kernel and changes the permissions +This loads the spi drivers into the kernel and changes the permissions on the associated /dev/ entries so that the current user has access to them. Optionally it will set the SPI buffer size to that supplied. The default is 4KB. diff --git a/gpio/gpio.c b/gpio/gpio.c index 8d61957..e71e432 100644 --- a/gpio/gpio.c +++ b/gpio/gpio.c @@ -42,7 +42,7 @@ extern int wiringPiDebug ; # define FALSE (1==2) #endif -#define VERSION "1.11" +#define VERSION "1.12" static int wpMode ; @@ -152,7 +152,7 @@ static void doLoad (int argc, char *argv []) file1 = "/dev/spidev0.0" ; file2 = "/dev/spidev0.1" ; if (argc == 4) - sprintf (args1, " bufsize=%d", atoi (argv [3]) * 1024) ; + sprintf (args1, " bufsiz=%d", atoi (argv [3]) * 1024) ; else if (argc > 4) _doLoadUsage (argv) ; } diff --git a/wiringPi/wiringPi.c b/wiringPi/wiringPi.c index 12b1af1..a68ae33 100644 --- a/wiringPi/wiringPi.c +++ b/wiringPi/wiringPi.c @@ -475,9 +475,11 @@ int wpiPinToGpio (int wpiPin) * 0001 - Not used * 0002 - Rev 1 * 0003 - Rev 1 - * 0004 - Rev 2 - * 0005 - Rev 2 (but error) + * 0004 - Rev 2 (Early reports? + * 0005 - Rev 2 (but error?) * 0006 - Rev 2 + * 0008 - Rev 2 - Model A + * 000e - Rev 2 + 512MB * 000f - Rev 2 + 512MB * * A small thorn is the olde style overvolting - that will add in @@ -502,13 +504,11 @@ int piBoardRev (void) char *c, lastChar ; static int boardRev = -1 ; -// No point checking twice... - - if (boardRev != -1) + if (boardRev != -1) // No point checking twice return boardRev ; if ((cpuFd = fopen ("/proc/cpuinfo", "r")) == NULL) - return -1 ; + piBoardRevOops ("Unable to open /proc/cpuinfo") ; while (fgets (line, 120, cpuFd) != NULL) if (strncmp (line, "Revision", 8) == 0) @@ -516,10 +516,11 @@ int piBoardRev (void) fclose (cpuFd) ; - if (line == NULL) + if (strncmp (line, "Revision", 8) != 0) piBoardRevOops ("No \"Revision\" line") ; - line [strlen (line) - 1] = 0 ; // Chomp LF + for (c = &line [strlen (line) - 1] ; (*c == '\n') || (*c == '\r') ; --c) + *c = 0 ; if (wiringPiDebug) printf ("piboardRev: Revision string: %s\n", line) ; diff --git a/wiringPi/wiringPiISR.c b/wiringPi/wiringPiISR.c deleted file mode 100644 index 9e847cc..0000000 --- a/wiringPi/wiringPiISR.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * wiringPiISR.c: - * Simplified Interrupt Service Routine handling - * Copyright (c) 2013 Gordon Henderson - *********************************************************************** - * This file is part of wiringPi: - * https://projects.drogon.net/raspberry-pi/wiringpi/ - * - * wiringPi is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * wiringPi is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with wiringPi. - * If not, see . - *********************************************************************** - */ - -#include -#include -#include - -#include "wiringPi.h" - - - -static void (*isrFunctions [64])(void) ; -static int isrFds [64] ; - -/* - * interruptHandler: - * This is a thread and gets started to wait for the interrupt we're - * hoping to catch. It will call the user-function when the interrupt - * fires. - ********************************************************************************* - */ - -static void *interruptHandler (void *arg) -{ - int pin = *(int *)arg ; - - (void)piHiPri (55) ; - - for (;;) - { - if (waitForInterrupt (pin, -1) > 0) - isrFunctions [pin] () ; - } - - return NULL ; -} - -/* - * wiringPiISR: - * Take the details and create an interrupt handler that will do a call- - * back to the user supplied function. - ********************************************************************************* - */ - -int wiringPiISR (int pin, int mode, void (*function)(void)) -{ - pthread_t threadId ; - char command [64] ; - - pin &= 63 ; - - if (wiringPiMode == WPI_MODE_UNINITIALISED) - { - fprintf (stderr, "wiringPiISR: wiringPi has not been initialised. Unable to continue.\n") ; - exit (EXIT_FAILURE) ; - } - else if (wiringPiMode == WPI_MODE_PINS) - pin = pinToGpio [pin] ; - - - isrFunctions [pin] = function ; - -// Now export the pin and set the right edge - - if (mode != INT_EDGE_SETUP) - { - /**/ if (mode == INT_EDGE_FALLING) - modes = "falling" ; - else if (mode == INT_EDGE_RISING) - modes = "rising" ; - else - modes = "both" ; - - sprintf (command, "/usr/local/bin/gpio edge %d %s", pin, modes) ; - system (command) ; - } - - sprintf (fName, "/sys/class/gpio/gpio%d/value", pin) ; - if ((isrFds [pin] = open (fName, O_RDWR)) < 0) - return -1 ; - - { - fprintf ("std - - pthread_create (&threadId, NULL, interruptHandler, &pin) ; -} - -