
This is an example program for the Freescale multi-sensor shield, part number FRDM-FXS-MULTI
Dependencies: FXAS21000 FXLS8471Q FXOS8700Q MAG3110 MMA8652 MPL3115A2 mbed
Revision 1:d3ecb4ecdfda, committed 2014-06-02
- Comitter:
- JimCarver
- Date:
- Mon Jun 02 19:05:04 2014 +0000
- Parent:
- 0:e5337522df6f
- Commit message:
- Modified to use updated FXOS8700 & MAG3100 libraries
Changed in this revision
diff -r e5337522df6f -r d3ecb4ecdfda FXAS21000.lib --- a/FXAS21000.lib Sat Apr 19 01:30:29 2014 +0000 +++ b/FXAS21000.lib Mon Jun 02 19:05:04 2014 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/JimCarver/code/FXAS21000/#88a036a417bf +http://mbed.org/users/JimCarver/code/FXAS21000/#a8f83b52f4df
diff -r e5337522df6f -r d3ecb4ecdfda FXLS8471Q.lib --- a/FXLS8471Q.lib Sat Apr 19 01:30:29 2014 +0000 +++ b/FXLS8471Q.lib Mon Jun 02 19:05:04 2014 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/JimCarver/code/FXLS8471Q/#c80be04510fe +http://mbed.org/users/JimCarver/code/FXLS8471Q/#b1fd3a2572e2
diff -r e5337522df6f -r d3ecb4ecdfda FXOS8700Q.lib --- a/FXOS8700Q.lib Sat Apr 19 01:30:29 2014 +0000 +++ b/FXOS8700Q.lib Mon Jun 02 19:05:04 2014 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/JimCarver/code/FXOS8700Q/#be6abf9f2d59 +http://mbed.org/users/JimCarver/code/FXOS8700Q/#5553a64d0762
diff -r e5337522df6f -r d3ecb4ecdfda MAG3110.lib --- a/MAG3110.lib Sat Apr 19 01:30:29 2014 +0000 +++ b/MAG3110.lib Mon Jun 02 19:05:04 2014 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/JimCarver/code/MAG3110/#f3abe901c33a +http://mbed.org/users/JimCarver/code/MAG3110/#1da3fe7b3510
diff -r e5337522df6f -r d3ecb4ecdfda MMA8652.lib --- a/MMA8652.lib Sat Apr 19 01:30:29 2014 +0000 +++ b/MMA8652.lib Mon Jun 02 19:05:04 2014 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/JimCarver/code/MMA8652/#ff30cc4759b4 +http://mbed.org/users/JimCarver/code/MMA8652/#29c2dd97ca95
diff -r e5337522df6f -r d3ecb4ecdfda main.cpp --- a/main.cpp Sat Apr 19 01:30:29 2014 +0000 +++ b/main.cpp Mon Jun 02 19:05:04 2014 +0000 @@ -1,6 +1,24 @@ +/* Copyright (c) 2010-2011 mbed.org, MIT License +* +* Permission is hereby granted, free of charge, to any person obtaining a copy of this software +* and associated documentation files (the "Software"), to deal in the Software without +* restriction, including without limitation the rights to use, copy, modify, merge, publish, +* distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the +* Software is furnished to do so, subject to the following conditions: +* +* The above copyright notice and this permission notice shall be included in all copies or +* substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING +* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + #include "mbed.h" #include "MAG3110.h" -#include "MPL3115A2.h" +#include "MPL3115A2.h" // May only be used on a Freescale platform, comment out for others #include "FXOS8700Q.h" #include "MMA8652.h" #include "FXLS8471Q.h" @@ -9,16 +27,15 @@ #define MPL3115A2_I2C_ADDRESS (0x60<<1) -DigitalOut red(LED_RED); - -MAG3110 mag1(A4, A5); -MAG3110 mag2(PTE25, PTE24); // Magnetometer on KL46 board +DigitalOut red(LED1); FXLS8471Q acc1(D11, D12, D13, D10); -MMA8652 acc2( A4, A5); -MPL3115A2 alt( A4, A5, MPL3115A2_I2C_ADDRESS); -FXOS8700Q combo( A4, A5, FXOS8700CQ_SLAVE_ADDR0); -FXAS21000 gyro( A4, A5); +MMA8652 acc2(A4, A5); +FXOS8700Q_acc combo_acc(A4, A5, FXOS8700CQ_SLAVE_ADDR0); +FXOS8700Q_mag combo_mag(A4, A5, FXOS8700CQ_SLAVE_ADDR0); +MAG3110 mag2(A4, A5); +FXAS21000 gyro(A4, A5); +MPL3115A2 alt(A4, A5, MPL3115A2_I2C_ADDRESS); // May only be used on a Freescale platform, comment out for others Serial pc(USBTX, USBRX); @@ -33,7 +50,7 @@ * dt[0] = Bits 12-19 of 20-bit real-time Altitude sample. (b7-b0) * dt[1] = Bits 4-11 of 20-bit real-time Altitude sample. (b7-b0) * dt[2] = Bits 0-3 of 20-bit real-time Altitude sample (b7-b4) - */ + */ altm = (dt[0]<<8) | dt[1]; // if ( dt[0] > 0x7F) { @@ -51,7 +68,7 @@ { unsigned short temp; float ftemp; - + /* * dt[0] = Bits 4-11 of 16-bit real-time temperature sample. (b7-b0) * dt[1] = Bits 0-3 of 16-bit real-time temperature sample. (b7-b4) @@ -71,47 +88,57 @@ } -int main() { - //int who; +int main() +{ float acc_data[3], mag_data[3], gyro_data[3]; + MotionSensorDataUnits adata; + MotionSensorDataUnits mdata; int16_t acc_raw[3]; unsigned char raw_data[8]; - pc.baud(115200); + + printf("\r\nStarting\r\n\r\n"); + red = 1; - printf("\r\n\r\n\r\n"); + combo_acc.enable(); + combo_mag.enable(); + mag2.enable(); alt.Altimeter_Mode(); - printf("MMA8652 Who Am I= %X\r\n", acc2.getWhoAmI()); - printf("FXOS8700 Who Am I= %X\r\n", combo.getWhoAmI()); - printf("FXLS8471 Who Am I= %X\r\n", acc1.getWhoAmI()); - printf("FXAS21000 Who Am I= %X\r\n", gyro.getWhoAmI()); - wait(5.0); + printf("FXLS8471 Acc = %X\r\n", acc1.getWhoAmI()); + printf("MMA8652 Acc = %X\r\n", acc2.getWhoAmI()); + printf("FXOS8700 Combo = %X\r\n", combo_acc.whoAmI()); + printf("MAG3110 Mag = %X\r\n", mag2.whoAmI()); + printf("FXAS21000 Gyro = %X\r\n", gyro.getWhoAmI()); + printf("MPL3115A2 Alt = %X\r\n", alt.getDeviceID()); // May only be used on a Freescale platform, comment out for others + wait(3); + while(1) { + acc1.ReadXYZ(acc_data); + acc1.ReadXYZraw(acc_raw); + printf("FXLS8471 Acc: X:%1.3f Y:%1.3f Z:%1.3f (Raw X:%3d Y:%3d Z:%3d)\r\n", acc_data[0], acc_data[1], acc_data[2], acc_raw[0], acc_raw[1], acc_raw[2]); - acc1.ReadXYZ(acc_data); - printf("FXLS8471 X=%1.5f Y=%1.5f Z=%1.5f\r\n", acc_data[0], acc_data[1], acc_data[2]); acc2.ReadXYZ(acc_data); - printf("MMA8652 X=%1.5f Y=%1.5f Z=%1.5f\r\n", acc_data[0], acc_data[1], acc_data[2]); - combo.getAccAllAxis( acc_data); - combo.getMagAllAxis( mag_data); - printf("FXOS8700 Acc: X=%1.5f Y=%1.5f Z=%1.5f", acc_data[0], acc_data[1], acc_data[2]); - printf(" Mag: X=%4.1f Y=%4.1f Z=%4.1f\r\n", mag_data[0], mag_data[1], mag_data[2]); - mag1.ReadXYZ(mag_data); - printf(" "); - printf(" Mag1: X=%4.1f Y=%4.1f Z=%4.1f\r\n", mag_data[0], mag_data[1], mag_data[2]); - mag2.ReadXYZ(mag_data); - printf(" "); - printf(" Mag2: X=%4.1f Y=%4.1f Z=%4.1f\r\n", mag_data[0], mag_data[1], mag_data[2]); - alt.getAllDataRaw( &raw_data[0]); - printf("\r\nAlt: %5.1f\tT: %3.1f\r\n", print_AltimiterValue( &raw_data[0]), print_TemperatureValue( &raw_data[3])); + acc2.ReadXYZraw(acc_raw); + printf("MMA8652 Acc: X:%1.3f Y:%1.3f Z:%1.3f (Raw X:%3d Y:%3d Z:%3d)\r\n", acc_data[0], acc_data[1], acc_data[2], acc_raw[0], acc_raw[1], acc_raw[2]); + + combo_acc.getAxis(adata); + combo_mag.getAxis(mdata); + printf("FXOS8700 Acc: X:%1.3f Y:%1.3f Z:%1.3f (Mag X:%4.1f Y:%4.1f Z:%4.1f)\r\n", adata.x, adata.y, adata.z, mdata.x, mdata.y, mdata.z); + gyro.ReadXYZ(gyro_data); - printf("FXAS21000 X=%4.2f Y=%4.2f Z=%4.1f\r\n", gyro_data[0], gyro_data[1], gyro_data[2]); - acc1.ReadXYZraw(acc_raw); - printf("FXLS8471: X= %d Y= %d Z= %d\r\n\n\n", acc_raw[0], acc_raw[1], acc_raw[2]); - acc2.ReadXYZraw(acc_raw); - printf("MMA8652: X= %d Y= %d Z= %d\r\n\n\n", acc_raw[0], acc_raw[1], acc_raw[2]); + printf("FXAS21000 Gyro: X:%4.2f Y:%4.2f Z:%4.1f\r\n", gyro_data[0], gyro_data[1], gyro_data[2]); + + mag2.getAxis(mdata); + printf("MAG3110 Mag: X:%4.1f Y:%4.1f Z:%4.1f\r\n", mdata.x, mdata.y, mdata.z); + + alt.getAllDataRaw(&raw_data[0]); // May only be used on a Freescale platform, comment out for others + printf("MPL3115A2 Alt: %5.1f\r\n", print_AltimiterValue(&raw_data[0])); // May only be used on a Freescale platform, comment out for others + printf("MPL3115A2 Temp: %3.1f\r\n", print_TemperatureValue(&raw_data[3])); // May only be used on a Freescale platform, comment out for others + + printf("\r\n"); + red = 1; wait(0.5); red = 0; wait(0.5); - } + } }
diff -r e5337522df6f -r d3ecb4ecdfda mbed.bld --- a/mbed.bld Sat Apr 19 01:30:29 2014 +0000 +++ b/mbed.bld Mon Jun 02 19:05:04 2014 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/mbed_official/code/mbed/builds/8e73be2a2ac1 \ No newline at end of file +http://mbed.org/users/mbed_official/code/mbed/builds/0b3ab51c8877 \ No newline at end of file