Quite a few changes here.
Added in generic 'blink' programs in the examples in C, RTB and Shell. Updated wiringPi with a little big-file on the millis() function and added in a new micros() function too. Updated the examples with standard LGPL headers. Added a new isr-osc.c test program - just for ISR timing purposes.
This commit is contained in:
@@ -70,8 +70,8 @@ install:
|
||||
.PHONEY: uninstall
|
||||
uninstall:
|
||||
@echo "[UnInstall]"
|
||||
rm -f /usr/local/bin/gpio
|
||||
rm -f /usr/local/man/man1/gpio.1
|
||||
@rm -f /usr/local/bin/gpio
|
||||
@rm -f /usr/local/man/man1/gpio.1
|
||||
|
||||
.PHONEY: depend
|
||||
depend:
|
||||
|
||||
20
gpio/gpio.1
20
gpio/gpio.1
@@ -38,7 +38,7 @@ group value
|
||||
range
|
||||
.PP
|
||||
.B gpio
|
||||
.B load \ i2c/spi
|
||||
.B load \ i2c/spi ...
|
||||
.PP
|
||||
.B gpio
|
||||
.B gbr
|
||||
@@ -168,9 +168,18 @@ Change the PWM mode to balanced (the default) or mark:space ratio (traditional)
|
||||
Change the PWM range register. The default is 1024.
|
||||
|
||||
.TP
|
||||
.B load i2c/spi
|
||||
This loads the i2c or the spi drivers into the system and changes the permissions on
|
||||
the associated /dev/ entries so that the current user has access to them.
|
||||
.B load i2c [baudrate]
|
||||
This loads the i2c or 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 I2C baudrate to that supplied (or as
|
||||
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
|
||||
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.
|
||||
|
||||
.TP
|
||||
.B gbr
|
||||
@@ -275,4 +284,5 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
.SH TRADEMARKS AND ACKNOWLEDGEMENTS
|
||||
|
||||
Raspberry Pi is a trademark of the Raspberry Pi Foundation.
|
||||
Raspberry Pi is a trademark of the Raspberry Pi Foundation. See
|
||||
http://raspberrypi.org/ for full details.
|
||||
|
||||
79
gpio/gpio.c
79
gpio/gpio.c
@@ -42,7 +42,7 @@ extern int wiringPiDebug ;
|
||||
# define FALSE (1==2)
|
||||
#endif
|
||||
|
||||
#define VERSION "1.8"
|
||||
#define VERSION "1.10"
|
||||
|
||||
static int wpMode ;
|
||||
|
||||
@@ -129,7 +129,7 @@ static int moduleLoaded (char *modName)
|
||||
|
||||
static void _doLoadUsage (char *argv [])
|
||||
{
|
||||
fprintf (stderr, "Usage: %s load <spi/i2c> [bufferSize in KB for spi]\n", argv [0]) ;
|
||||
fprintf (stderr, "Usage: %s load <spi/i2c> [SPI bufferSize in KB | I2C baudrate in Kb/sec]\n", argv [0]) ;
|
||||
exit (1) ;
|
||||
}
|
||||
|
||||
@@ -138,12 +138,12 @@ static void doLoad (int argc, char *argv [])
|
||||
char *module1, *module2 ;
|
||||
char cmd [80] ;
|
||||
char *file1, *file2 ;
|
||||
char spiBuf [32] ;
|
||||
char args1 [32], args2 [32] ;
|
||||
|
||||
if (argc < 3)
|
||||
_doLoadUsage (argv) ;
|
||||
|
||||
spiBuf [0] = 0 ;
|
||||
args1 [0] = args2 [0] = 0 ;
|
||||
|
||||
/**/ if (strcasecmp (argv [2], "spi") == 0)
|
||||
{
|
||||
@@ -152,10 +152,9 @@ static void doLoad (int argc, char *argv [])
|
||||
file1 = "/dev/spidev0.0" ;
|
||||
file2 = "/dev/spidev0.1" ;
|
||||
if (argc == 4)
|
||||
sprintf (spiBuf, " bufsize=%d", atoi (argv [3]) * 1024) ;
|
||||
sprintf (args1, " bufsize=%d", atoi (argv [3]) * 1024) ;
|
||||
else if (argc > 4)
|
||||
_doLoadUsage (argv) ;
|
||||
|
||||
}
|
||||
else if (strcasecmp (argv [2], "i2c") == 0)
|
||||
{
|
||||
@@ -163,19 +162,23 @@ static void doLoad (int argc, char *argv [])
|
||||
module2 = "i2c_bcm2708" ;
|
||||
file1 = "/dev/i2c-0" ;
|
||||
file2 = "/dev/i2c-1" ;
|
||||
if (argc == 4)
|
||||
sprintf (args2, " baudrate=%d", atoi (argv [3]) * 1000) ;
|
||||
else if (argc > 4)
|
||||
_doLoadUsage (argv) ;
|
||||
}
|
||||
else
|
||||
_doLoadUsage (argv) ;
|
||||
|
||||
if (!moduleLoaded (module1))
|
||||
{
|
||||
sprintf (cmd, "modprobe %s%s", module1, spiBuf) ;
|
||||
sprintf (cmd, "modprobe %s%s", module1, args1) ;
|
||||
system (cmd) ;
|
||||
}
|
||||
|
||||
if (!moduleLoaded (module2))
|
||||
{
|
||||
sprintf (cmd, "modprobe %s", module2) ;
|
||||
sprintf (cmd, "modprobe %s%s", module2, args2) ;
|
||||
system (cmd) ;
|
||||
}
|
||||
|
||||
@@ -200,55 +203,39 @@ static void doLoad (int argc, char *argv [])
|
||||
|
||||
static char *pinNames [] =
|
||||
{
|
||||
"GPIO 0",
|
||||
"GPIO 1",
|
||||
"GPIO 2",
|
||||
"GPIO 3",
|
||||
"GPIO 4",
|
||||
"GPIO 5",
|
||||
"GPIO 6",
|
||||
"GPIO 7",
|
||||
"SDA ",
|
||||
"SCL ",
|
||||
"CE0 ",
|
||||
"CE1 ",
|
||||
"MOSI ",
|
||||
"MISO ",
|
||||
"SCLK ",
|
||||
"TxD ",
|
||||
"RxD ",
|
||||
"GPIO 8",
|
||||
"GPIO 9",
|
||||
"GPIO10",
|
||||
"GPIO11",
|
||||
"GPIO 0", "GPIO 1", "GPIO 2", "GPIO 3", "GPIO 4", "GPIO 5", "GPIO 6", "GPIO 7",
|
||||
"SDA ", "SCL ",
|
||||
"CE0 ", "CE1 ", "MOSI ", "MISO ", "SCLK ",
|
||||
"TxD ", "RxD ",
|
||||
"GPIO 8", "GPIO 9", "GPIO10", "GPIO11",
|
||||
} ;
|
||||
|
||||
static char *alts [] =
|
||||
{
|
||||
"IN ", "OUT ", "ALT0", "ALT1", "ALT2", "ALT3", "ALT4", "ALT5", "XXXX"
|
||||
} ;
|
||||
|
||||
static void doReadall (void)
|
||||
{
|
||||
int pin ;
|
||||
|
||||
printf ("+----------+------+--------+-------+\n") ;
|
||||
printf ("| wiringPi | GPIO | Name | Value |\n") ;
|
||||
printf ("+----------+------+--------+-------+\n") ;
|
||||
printf ("+----------+------+--------+------+------+\n") ;
|
||||
printf ("| wiringPi | GPIO | Name | Mode | Value |\n") ;
|
||||
printf ("+----------+------+--------+------+------+\n") ;
|
||||
|
||||
for (pin = 0 ; pin < NUM_PINS ; ++pin)
|
||||
printf ("| %6d | %3d | %s | %s |\n",
|
||||
for (pin = 0 ; pin < 64 ; ++pin)
|
||||
{
|
||||
if (wpiPinToGpio (pin) == -1)
|
||||
continue ;
|
||||
|
||||
printf ("| %6d | %3d | %s | %s | %s |\n",
|
||||
pin, wpiPinToGpio (pin),
|
||||
pinNames [pin],
|
||||
alts [getAlt (pin)],
|
||||
digitalRead (pin) == HIGH ? "High" : "Low ") ;
|
||||
}
|
||||
|
||||
printf ("+----------+------+--------+-------+\n") ;
|
||||
|
||||
if (piBoardRev () == 1)
|
||||
return ;
|
||||
|
||||
for (pin = 17 ; pin <= 20 ; ++pin)
|
||||
printf ("| %6d | %3d | %s | %s |\n",
|
||||
pin, wpiPinToGpio (pin),
|
||||
pinNames [pin],
|
||||
digitalRead (pin) == HIGH ? "High" : "Low ") ;
|
||||
|
||||
printf ("+----------+------+--------+-------+\n") ;
|
||||
printf ("+----------+------+--------+------+------+\n") ;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user