@ -40,7 +40,7 @@
# define FALSE (1==2)
# endif
# define VERSION "1. 3 "
# define VERSION "1. 4 "
static int wpMode ;
@ -48,7 +48,9 @@ char *usage = "Usage: gpio -v\n"
" gpio -h \n "
" gpio [-g] <read/write/pwm/mode> ... \n "
" gpio [-p] <read/write/mode> ... \n "
" gpio export/edge/unexport/unexportall/exports ... \n "
" gpio readall \n "
" gpio unexportall/exports ... \n "
" gpio export/edge/unexport ... \n "
" gpio drive <group> <value> \n "
" gpio pwm-bal/pwm-ms \n "
" gpio pwmr <range> \n "
@ -172,6 +174,65 @@ static void doLoad (int argc, char *argv [])
}
/*
* doReadall :
* Read all the GPIO pins
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/
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 " ,
} ;
static void doReadall ( void )
{
int pin ;
printf ( " +----------+------+--------+-------+ \n " ) ;
printf ( " | wiringPi | GPIO | Name | Value | \n " ) ;
printf ( " +----------+------+--------+-------+ \n " ) ;
for ( pin = 0 ; pin < NUM_PINS ; + + pin )
printf ( " | %6d | %3d | %s | %s | \n " ,
pin , wpiPinToGpio ( pin ) ,
pinNames [ 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 " ) ;
}
/*
* doExports :
@ -875,10 +936,11 @@ int main (int argc, char *argv [])
// Check for wiring commands
/**/ if ( strcasecmp ( argv [ 1 ] , " read " ) = = 0 ) doRead ( argc , argv ) ;
else if ( strcasecmp ( argv [ 1 ] , " write " ) = = 0 ) doWrite ( argc , argv ) ;
else if ( strcasecmp ( argv [ 1 ] , " pwm " ) = = 0 ) doPwm ( argc , argv ) ;
else if ( strcasecmp ( argv [ 1 ] , " mode " ) = = 0 ) doMode ( argc , argv ) ;
/**/ if ( strcasecmp ( argv [ 1 ] , " readall " ) = = 0 ) doReadall ( ) ;
else if ( strcasecmp ( argv [ 1 ] , " read " ) = = 0 ) doRead ( argc , argv ) ;
else if ( strcasecmp ( argv [ 1 ] , " write " ) = = 0 ) doWrite ( argc , argv ) ;
else if ( strcasecmp ( argv [ 1 ] , " pwm " ) = = 0 ) doPwm ( argc , argv ) ;
else if ( strcasecmp ( argv [ 1 ] , " mode " ) = = 0 ) doMode ( argc , argv ) ;
else
{
fprintf ( stderr , " %s: Unknown command: %s. \n " , argv [ 0 ] , argv [ 1 ] ) ;