From: Rafael Vega <[email protected]>
Reply-To: <[email protected]>
Date: Saturday, May 24, 2014 at 1:23 AM
To: <[email protected]>
Subject: [beagleboard] Reading analog inputs fast in beaglebone black
>
>
> I need to read all 7 analog pins in the BBB every 5 milliseconds. I'm doing so
> with the following C code:
> void main(){
> char value_str[7];
> long int value_int = 0;
>
> FILE* f0 = fopen("/sys/bus/iio/devices/iio:device0/in_voltage0_raw", "r");
>
> while(1){
> fread(&value_str, 6, 6, f0);
> value_int = strtol(value_str,NULL,0);
> printf("0 %li\n", value_int);
> fflush(stdout);
>
> usleep(5000);
> rewind(f0);
> }
> Hoever, the cpu usage goes up really high (20%). Is there any way to read the
> analog inputs differently so that it doesn't use as much CPU? Someone
> suggested "DMA" but I'm completely lost on that regard...
You should try the IIO driver which you will find under
/driver/IIO/adc/ti_am335x_adc.c. Samples are stored in a buffer which you
can read with a user space app.
Search github for IIO and you will find several user space examples on how
to use IIO.
Regards,
John
> Any help will be appreciated.
> --
> For more options, visit http://beagleboard.org/discuss
> ---
> You received this message because you are subscribed to the Google Groups
> "BeagleBoard" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to the Google Groups
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.