Driver for MPU9250 with SPI .

Dependents:   MPU9250_SPI_Test MPU9250_SPI_Test ANCHOR_Navigation3 MPU9250_edit ... more

MPU9250 driver by SPI is working now.

Revision:
10:d27b3298e9e0
Parent:
9:a8733542d0fb
Child:
11:084e8ba240c1
--- a/MPU9250.cpp	Tue Jul 01 10:58:36 2014 +0000
+++ b/MPU9250.cpp	Tue Jul 01 11:09:17 2014 +0000
@@ -88,7 +88,7 @@
     
     //set_acc_scale(2);
     //set_gyro_scale(250);
-    Magnetometer_divider=2;
+    Magnetometer_Sensitivity_Scale_Factor=0.6;
     
     return 0;
 }
@@ -314,9 +314,9 @@
     ReadRegs(MPUREG_EXT_SENS_DATA_00,response,7);
     //must start your read from AK8963A register 0x03 and read seven bytes so that upon read of ST2 register 0x09 the AK8963A will unlatch the data registers for the next measurement.
     for(i=0; i<3; i++) {
-        bit_data=((int16_t)response[i*2]<<8)|response[i*2+1];
+        bit_data=((int16_t)response[i*2+1]<<8)|response[i*2];
         data=(float)bit_data;
-        Magnetometer[i]=data/Magnetometer_divider;
+        Magnetometer[i]=data*Magnetometer_Sensitivity_Scale_Factor;
     }
 }
 void mpu9250_spi::read_all(){
@@ -351,9 +351,9 @@
     }
     //Get Magnetometer value
     for(i=7; i<10; i++) {
-        bit_data=((int16_t)response[i*2]<<8)|response[i*2+1];
+        bit_data=((int16_t)response[i*2+1]<<8)|response[i*2];
         data=(float)bit_data;
-        Magnetometer[i-7]=data/Magnetometer_divider;
+        Magnetometer[i-7]=data*Magnetometer_Sensitivity_Scale_Factor;
     }
 }