42 #define OPT_P_MAX 1000 70 "Usage: sudo ./freq_count_1 gpio ... [OPTION] ...\n" \
71 " -p value, sets pulses every p micros, %d-%d, TESTING only\n" \
72 " -r value, sets refresh period in deciseconds, %d-%d, default %d\n" \
73 " -s value, sets sampling rate in micros, %d-%d, default %d\n" \
75 "sudo ./freq_count_1 4 7 -r2 -s2\n" \
76 "Monitor gpios 4 and 7. Refresh every 0.2 seconds. Sample rate 2 micros.\n" \
84 void fatal(
int show_usage,
char *fmt, ...)
90 vsnprintf(buf,
sizeof(buf), fmt, ap);
93 fprintf(stderr,
"%s\n", buf);
95 if (show_usage)
usage();
106 while ((opt = getopt(argc, argv,
"p:r:s:")) != -1)
116 else fatal(1,
"invalid -p option (%d)", i);
124 else fatal(1,
"invalid -r option (%d)", i);
131 else fatal(1,
"invalid -s option (%d)", i);
142 void edges(
int gpio,
int level, uint32_t tick)
156 int main(
int argc,
char *argv[])
158 int i, rest, g, wave_id,
mode;
170 for (i=rest; i<argc; i++)
173 if ((g>=0) && (g<32))
178 else fatal(1,
"%d is not a valid g_gpio number\n", g);
183 printf(
"Monitoring gpios");
185 printf(
"\nSample rate %d micros, refresh rate %d deciseconds\n",
228 printf(
" %d=%d",
g_gpio[i], count[i]);
void fatal(int show_usage, char *fmt,...)
int gpioSetAlertFunc(unsigned gpio, gpioAlertFunc_t f)
static volatile int g_pulse_count[MAX_GPIOS]
#define PI_WAVE_MODE_REPEAT
int main(int argc, char *argv[])
int gpioSetMode(unsigned gpio, unsigned mode)
uint32_t gpioDelay(uint32_t micros)
static volatile int g_reset_counts
void edges(int gpio, int level, uint32_t tick)
int gpioCfgClock(unsigned micros, unsigned peripheral, unsigned source)
int gpioWaveTxSend(unsigned wave_id, unsigned wave_mode)
static int g_gpio[MAX_GPIOS]
static int initOpts(int argc, char *argv[])
int gpioWaveAddGeneric(unsigned numPulses, gpioPulse_t *pulses)