Program for FRDM-64k for read five accelerometers

Dependencies:   FXOS8700CQ LSM303D MMA8451Q MPU6050 mbed

Fork of fxos8700cq_example by Thomas Murphy

Revision:
2:237bd73c27e9
Parent:
1:a7e3df03721c
Child:
4:c6b4d8c152cd
--- a/main.cpp	Thu Dec 01 08:28:52 2016 +0000
+++ b/main.cpp	Mon Dec 05 09:16:43 2016 +0000
@@ -18,12 +18,11 @@
 
 
 //objetos de los acelerometros
-FXOS8700CQ fxos(SDA, SCL, FXOS8700CQ_SLAVE_ADDR1); // SDA, SCL, (addr << 1)
 MMA8451Q mma(SDA, SCL, MMA8451_I2C_ADDRESS);
 LSM303D lsm(SDA, SCL);
 ADXL335 adx(PTB2,PTB3,PTB10);
 MPU6050 mpu(SDA, SCL); 
-
+FXOS8700CQ fxos(SDA, SCL, FXOS8700CQ_SLAVE_ADDR1); // SDA, SCL, (addr << 1)
 
 DigitalOut green(LED_GREEN); // waiting light
 DigitalOut blue(LED_BLUE); // collection-in-progress light
@@ -60,7 +59,7 @@
 
 void print_cabecera(){
     pc.printf("T\t");
-    for(int i=0;i<5;i++){
+    for(int i=0;i<1;i++){
         pc.printf("X%d\tY%d\tZ%d\t",i,i,i);
     }
     pc.printf("\r\n");
@@ -68,13 +67,14 @@
     
 void print_data(){
     
-    us_ellapsed= t.read_us()-beforePrint;
-    pc.printf("%d\t",us_ellapsed);
-    for(int i=0;i<5;i++){
-        pc.printf("%+.4f\t%+.4f\t%+.4f\t", acc[i].x, acc[i].y, acc[i].z);
+    //us_ellapsed= t.read_us()-beforePrint;
+    pc.printf("%d\t",t.read_us());
+    for(int i=0;i<1;i++){
+        pc.printf("%+.5f\t\t", acc[i].z);
+       // pc.printf("%+.4f\t%+.4f\t%+.4f\t", acc[i].x, acc[i].y, acc[i].z);
     }
     pc.printf("\r\n");
-    beforePrint=t.read_us();
+    //beforePrint=t.read_us();
     
     }
 
@@ -97,10 +97,11 @@
 {
     
     //acelerometro 0
+    
     while(!fxos_int2_triggered && fxos_int2.read()==1){}
     fxos_int2_triggered = false; // un-trigger
     fxos.get_dataAcc(&acc[0]); // clear interrupt from device
-    
+    /*
     //acelerometro 1
     acc[1].x=mma.getAccX();
     acc[1].y=mma.getAccY();
@@ -118,6 +119,7 @@
     
     //acclerometro 4
     adx.getAcc(acc[4]);
+    */
    
 }
 
@@ -180,12 +182,14 @@
     
     //inicializacion basico
     t.reset();
-    pc.baud(115200); //probar con 460800 // Print quickly! 200Hz x line of output data!
+    pc.baud(230400); //probar con 460800 // Print quickly! 200Hz x line of output data!
     fxos_int2.fall(&trigger_fxos_int2);
     
     int_sw3.mode(PullUp);
     int_sw3.fall(&interruptSW3);
     
+    int_sw2.mode(PullUp);
+    
     
     // Lights off (FRDM-K64F has active-low LEDs)
     green.write(1);
@@ -201,6 +205,11 @@
     readAcc();
     print_reading();
     
+    green.write(0);
+    red.write(1);
+    blue.write(1);
+    
+    
     //esperar a pulsador
     while(!sw3_push){
         wait_ms(50);
@@ -208,13 +217,26 @@
         
     pc.printf("Iniciando lectura de acelerometros\r\n");
     
+    green.write(1);
+    red.write(1);
+    blue.write(0);
+    
     //lectura de todos los accelerometros
     t.start();
     print_cabecera();
     while(1){
     readAcc();
     print_data();
+    if(int_sw2.read()==0) break;
     }
+    
+    green.write(1);
+    red.write(0);
+    blue.write(1);
+    
+    while(1){}
+    
+    
 }