mirror of
git://soft.sys114.com/WiringPi2-Python
synced 2026-02-09 21:14:23 +09:00
Improved the PWM functions with help from Chris Hall.
This commit is contained in:
29
gpio/gpio.c
29
gpio/gpio.c
@@ -52,9 +52,10 @@ char *usage = "Usage: gpio -v\n"
|
||||
" gpio drive <group> <value>\n"
|
||||
" gpio pwm-bal/pwm-ms \n"
|
||||
" gpio pwmr <range> \n"
|
||||
" gpio pwmc <divider> \n"
|
||||
" gpio load spi/i2c\n"
|
||||
" gpio gbr <channel>\n"
|
||||
" gpio gbw <channel> <value>\n" ;
|
||||
" gpio gbw <channel> <value>" ; // No trailing newline needed here.
|
||||
|
||||
|
||||
/*
|
||||
@@ -687,8 +688,8 @@ void doPwm (int argc, char *argv [])
|
||||
|
||||
|
||||
/*
|
||||
* doPwmMode: doPwmRange:
|
||||
* Change the PWM mode and Range values
|
||||
* doPwmMode: doPwmRange: doPwmClock:
|
||||
* Change the PWM mode, range and clock divider values
|
||||
*********************************************************************************
|
||||
*/
|
||||
|
||||
@@ -718,6 +719,27 @@ static void doPwmRange (int argc, char *argv [])
|
||||
pwmSetRange (range) ;
|
||||
}
|
||||
|
||||
static void doPwmClock (int argc, char *argv [])
|
||||
{
|
||||
unsigned int clock ;
|
||||
|
||||
if (argc != 3)
|
||||
{
|
||||
fprintf (stderr, "Usage: %s pwmc <clock>\n", argv [0]) ;
|
||||
exit (1) ;
|
||||
}
|
||||
|
||||
clock = (unsigned int)strtoul (argv [2], NULL, 10) ;
|
||||
|
||||
if ((clock < 1) || (clock > 4095))
|
||||
{
|
||||
fprintf (stderr, "%s: clock must be between 0 and 4096\n", argv [0]) ;
|
||||
exit (1) ;
|
||||
}
|
||||
|
||||
pwmSetClock (clock) ;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* main:
|
||||
@@ -846,6 +868,7 @@ int main (int argc, char *argv [])
|
||||
if (strcasecmp (argv [1], "pwm-bal") == 0) { doPwmMode (PWM_MODE_BAL) ; 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], "pwmc") == 0) { doPwmClock (argc, argv) ; return 0 ; }
|
||||
}
|
||||
|
||||
// Check for wiring commands
|
||||
|
||||
Reference in New Issue
Block a user