Create a project for TT_Mxx.

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "MAG3110.h"
00003 #include "FXOS8700Q.h"
00004 #include "MMA8652.h"
00005 #include "FXLS8471Q.h"
00006 #include "FXAS21000.h"
00007 #include "MPL3115A2.h"
00008 
00009 
00010 
00011 
00012 #if __TT_M3HQ__
00013 #define DISPLAY_TMPM_STRING "Welcome to Thundersoft TT_M3HQ"
00014 #endif
00015 
00016 
00017 #if __TT_M4G9__
00018 #define DISPLAY_TMPM_STRING "Welcome to Thundersoft TT_M4G9"
00019 #endif
00020 
00021 
00022 int main()
00023 {
00024     FXLS8471Q acc1(D11, D12, D13, D10);
00025     MMA8652   acc2(D14, D15);
00026     FXOS8700Q_acc combo_acc(D14, D15, FXOS8700CQ_SLAVE_ADDR0);
00027     FXOS8700Q_mag combo_mag(D14, D15, FXOS8700CQ_SLAVE_ADDR0);
00028     MAG3110   mag2(D14, D15);
00029     FXAS21000 gyro(D14, D15);
00030     MPL3115A2 wigo_sensor1(D14, D15, MPL3115A2_DEFAULT_ADDRESS,(PinName)0,(PinName)0);
00031     float acc_data[3], gyro_data[3],sensor_data[2];
00032     MotionSensorDataUnits adata;
00033     MotionSensorDataUnits mdata;
00034     int16_t acc_raw[3];
00035     printf("%s\r\n",DISPLAY_TMPM_STRING);
00036     combo_acc.enable();
00037     combo_mag.enable();
00038     mag2.enable();
00039     wigo_sensor1.Barometric_Mode();
00040     wigo_sensor1.Oversample_Ratio( OVERSAMPLE_RATIO_32);
00041      printf("FXLS8471 Acc   = 0x%x\r\n", acc1.getWhoAmI());
00042      printf("MMA8652 Acc    = 0x%x\r\n", acc2.getWhoAmI());
00043      printf("FXOS8700 Combo = 0x%x\r\n", combo_acc.whoAmI());
00044      printf("MAG3110 Mag    = 0x%x\r\n", mag2.whoAmI());
00045      printf("FXAS21000 Gyro = 0x%x\r\n", gyro.getWhoAmI());
00046      printf("MPL3115A2 = 0x%x \r\n",wigo_sensor1.getDeviceID());    
00047      while(1) {
00048         acc1.ReadXYZ(acc_data);
00049         acc1.ReadXYZraw(acc_raw);
00050         printf("FXLS8471 Acc:   X:%6.3f Y:%6.3f Z:%6.3f (Raw X:%4d Y:%4d Z:%4d)\r\n", acc_data[0], acc_data[1], acc_data[2], acc_raw[0], acc_raw[1], acc_raw[2]);
00051 
00052         acc2.ReadXYZ(acc_data);
00053         acc2.ReadXYZraw(acc_raw);
00054         printf("MMA8652 Acc:    X:%6.3f Y:%6.3f Z:%6.3f (Raw X:%4d Y:%4d Z:%4d)\r\n", acc_data[0], acc_data[1], acc_data[2], acc_raw[0], acc_raw[1], acc_raw[2]);
00055 
00056         combo_acc.getAxis(adata);
00057         printf("FXOS8700 Acc:   X:%6.3f Y:%6.3f Z:%6.3f\r\n", adata.x , adata.y , adata.z );
00058         
00059         combo_mag.getAxis(mdata);
00060         printf("FXOS8700 Mag:   X:%6.2f Y:%6.2f Z:%6.2f\r\n", mdata.x , mdata.y , mdata.z );
00061 
00062         mag2.getAxis(mdata);
00063         printf("MAG3110 Mag:    X:%6.2f Y:%6.2f Z:%6.2f\r\n", mdata.x , mdata.y , mdata.z );
00064 
00065         gyro.ReadXYZ(gyro_data);
00066         printf("FXAS21000 Gyro: X:%6.2f Y:%6.2f Z:%6.2f\r\n", gyro_data[0], gyro_data[1], gyro_data[2]);
00067         
00068         
00069         if ( wigo_sensor1.isDataAvailable()) 
00070         {
00071             if(wigo_sensor1.getMode() == BAROMETRIC_MODE)
00072             {
00073               wigo_sensor1.getAllData( &sensor_data[0]);
00074               printf("Pressure: %f Temperature: %f\r\n", sensor_data[0], sensor_data[1]);
00075               wigo_sensor1.Altimeter_Mode();
00076             }
00077             else
00078             {
00079               wigo_sensor1.getAllData( &sensor_data[0]);
00080               printf("Altitude: %f Temperature: %f\r\n", sensor_data[0], sensor_data[1]);
00081               wigo_sensor1.Barometric_Mode();
00082             }
00083         }
00084         printf("\r\n");
00085         wait_ms(1000);
00086      }
00087 }