#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <stdlib.h>
#include <string.h>
#define ADC_PATH "/sys/class/am335x_adc/chan"
int main(int argc, char *argv[]) {
int adc_fd;
char adc_chan[64] = { 0 };
char adc_val[5] = { 0 };
int ret;
if (argc < 2) {
printf("USAGE: ./adctest [ADC CHANNEL]\n");
exit(1);
}
strcat(adc_chan, ADC_PATH);
strcat(adc_chan, argv[1]);
adc_fd = open(adc_chan, O_RDONLY);
if (adc_fd < 0) {
perror("Open adc channel failed");
exit(1);
}
while (1) {
ret = read(adc_fd, adc_val, 5);
if (ret < 0) {
perror("Read adc value failed");
}
printf("Adc value on chan %s: %s\n", argv[1], adc_val);
memset(adc_val, 0, sizeof(adc_val));
lseek(adc_fd, 0, SEEK_SET);
sleep(1);
}
return 0;
}