IL programma di acquisizione dati dall'accelerometro. Acquisisce 5000 campioni al secondo. Bisogna fare la parte di scrittura su SD. Per la board Nucleo!

Dependencies:   SDFileSystemFunzionante mbed

Fork of Nucleo_rtos_basic_copyProva_Quirino by Unina_corse

Revision:
5:79b6af2faae0
Parent:
4:6458b40e48a6
--- a/main.cpp	Tue Jun 26 20:45:21 2018 +0000
+++ b/main.cpp	Tue Jun 26 21:51:35 2018 +0000
@@ -7,6 +7,7 @@
 {
     i2c.frequency(400000);
     MPU6050 mpu6050;
+    CANMessage msg;
     uint8_t whoami = mpu6050.readByte(MPU6050_ADDRESS, WHO_AM_I_MPU6050);  // Read WHO_AM_I register for MPU-6050
     //pc.printf("I AM 0x%x\n\r", whoami); pc.printf("I SHOULD BE 0x68\n\r");
   
@@ -71,15 +72,23 @@
             // Calculate the gyro value into actual degrees per second
                 vettore[i].xx = (float)gyroCount[0]*gRes; // - gyroBias[0];  // get actual gyro value, this depends on scale being set
                 vettore[i].yy = (float)gyroCount[1]*gRes; // - gyroBias[1];  
-                vettore[i].zz = (float)gyroCount[2]*gRes; // - gyroBias[2];  
+                vettore[i].zz = (float)gyroCount[2]*gRes; // - gyroBias[2]; 
+                
+                //invio i dati sul CAN
+                can1.write(CANMessage(1337,reinterpret_cast<char*>(&vettore[i].x),sizeof(vettore[i].x)));
+                can1.write(CANMessage(1337,reinterpret_cast<char*>(&vettore[i].y),sizeof(vettore[i].y)));
+                can1.write(CANMessage(1337,reinterpret_cast<char*>(&vettore[i].z),sizeof(vettore[i].z)));
+                can1.write(CANMessage(1337,reinterpret_cast<char*>(&vettore[i].xx),sizeof(vettore[i].xx)));
+                can1.write(CANMessage(1337,reinterpret_cast<char*>(&vettore[i].yy),sizeof(vettore[i].yy)));
+                can1.write(CANMessage(1337,reinterpret_cast<char*>(&vettore[i].zz),sizeof(vettore[i].zz))); 
                              
             }  
    
             pc.printf("%03.0f %03.0f %03.0f %03.0f %03.0f %03.0f\n\r",100*vettore[i].x+off_set_a,100*vettore[i].y+off_set_a,100*vettore[i].z+off_set_a,100*vettore[i].xx+off_set_a,100*vettore[i].yy+off_set_a,100*vettore[i].zz+off_set_a);
-         
             wait(0.02);
         } 
         //temp3.stop();
         //pc.printf("Tempo impiegato per l'acquisizione di 1000 elementi: %f\n\r",temp3.read());     
     }
 }
+