[beagleboard] Re: Reading analog inputs fast in beaglebone black

2014-07-22 Thread elses6163
Having trouble compiling because I don't have libsupc++, how do I get that 
on the beagle?

On Saturday, June 21, 2014 5:39:56 PM UTC-5, Rafael Vega wrote:

 Here's what I did:


 1. Install FreeBasic compiler in BBB

 1.1. Download package from 
 http://www.freebasic-portal.de/downloads/fb-on-arm/bbb-fbc-fbc-fuer-beaglebone-black-283.html

wget http://www.freebasic-portal.de/dlfiles/452/bbb_fbc-0.0.2.tar.xz

 1.2. Uncompress and copy files

cd bbb_fbc-0.0.2
cp usr/local/bin/fbc /usr/local/bin/
cp -R usr/local/lib/freebasic /usr/local/lib/

 2. Install pruss driver kit for freebasic and BBB.

 2.1. Download and uncompress package from 
 http://www.freebasic-portal.de/dlfiles/539/FB_prussdrv-0.0.tar.bz2

 2.2. Copy files

cd FB_prussdrv-0.0
cp bin/libprussdrv.* /usr/local/lib
ldconfig
mkdir /usr/local/include/freebasic/BBB
cp include/* /usr/local/include/freebasic/BBB
cp bin/pasm/usr/local/bin
cp bin/PRUSSDRV-00A0.dtbo /lib/firmware

 2.3. Install am335x-pru-package 

apt-get install am335x-pru-package  

 2.4. Activate the PRUSS by enabling the tree overlay. This must be done 
 everytime, after each boot or before running your programs. 

echo PRUSSDRV /sys/devices/bone_capemgr.9/slots

 3. Install libpruio

 3.1. Download and uncompress package from 
 http://www.freebasic-portal.de/dlfiles/554/libpruio-0.0.2.tar.bz2

 3.2. Copy files

cd libpruio-0.0.2
cd src/c_wrapper/
cp libpruio.so /usr/local/lib
cp libpruio.a /usr/local/lib
ldconfig
cd ../pruio/
cp pruio.bi /usr/local/include/freebasic/BBB
cp pruio.hp /usr/local/include/freebasic/BBB
cp pruio_pins.bi /usr/local/include/freebasic/BBB

 4. Here's a simple example C program that uses the library

#include stdio.h
#include unistd.h
#include pruio_c_wrapper.h
#include pruio_pins.h

int main(int argc, const char *argv[]) { 
   PruIo *io = pruio_new(0, 0x98, 0, 1);
   if (io-Errr) {
  printf(Initialisation failed (%s)\n, io-Errr);
  return 1;
   }

   if(pruio_config(io, 0, 0x1FE, 0, 4, 0)){
  printf(Config failed (%s)\n, io-Errr); 
  return 1;
   }

   int a = 0;
   int i;
   while(1){
  printf(\r%12o  %12o  %12o  %12o  %4X %4X %4X %4X %4X %4X %4X 
 %4X\n, io-Gpio[0].Stat, io-Gpio[1].Stat, io-Gpio[2].Stat, 
 io-Gpio[3].Stat, io-Value[1], io-Value[2], io-Value[3], io-Value[4], 
 io-Value[5], io-Value[6], io-Value[7], io-Value[8]);
  fflush(STDIN_FILENO);
  usleep(1000);
}


   pruio_destroy(io);

return 0;
}

 5. To compile it, here's a makefile:

all: bbb-io.c Makefile
 gcc -Wall -o bbb-io bbb-io.c /usr/local/lib/freebasic/fbrt0.o 
 -lpruio -L/usr/local/lib/freebasic/ -lfb -lpthread -lprussdrv -ltermcap 
 -lsupc++ -Wno-unused-variable







-- 
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 beagleboard+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[beagleboard] Re: Reading analog inputs fast in beaglebone black

2014-07-22 Thread elses6163
Trying to get the libpru stuff to work but it won't compile because I don't 
have libsupc++. How do I get that on beaglebone using the angstrom distro?

On Saturday, May 24, 2014 3:23:32 AM UTC-5, Rafael Vega wrote:


 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...

 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 beagleboard+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.