Dependencies:   mbed

Fork of MPU9250 by Ilia Manenok

Revision:
4:337af8bbd44e
Parent:
3:c138317c9753
Child:
5:c7d9f3353b7c
--- a/MPU9250.h	Sat Jul 08 14:49:30 2017 +0000
+++ b/MPU9250.h	Sun Jul 09 13:01:22 2017 +0000
@@ -3,7 +3,8 @@
  
 #include "mbed.h"
 #include "math.h"
- 
+#include "FLASH.h"
+#include "user.h"
 // See also MPU-9250 Register Map and Descriptions, Revision 4.0, RM-MPU-9250A-00, Rev. 1.4, 9/9/2013 for registers not listed in 
 // above document; the MPU9250 and MPU9150 are virtually identical but the latter has a different register map
 //
@@ -266,7 +267,7 @@
     }
 } 
  
-/*
+
 void getMres() {
   switch (Mscale)
   {
@@ -280,8 +281,8 @@
           break;
   }
 }
-*/
-/*
+
+
 void getGres() {
   switch (Gscale)
   {
@@ -325,7 +326,7 @@
   }
 }
 
-*/
+
 void readAccelData(int16_t * destination)
 {
   uint8_t rawData[6];  // x/y/z accel register data stored here
@@ -333,8 +334,19 @@
   destination[0] = (int16_t)(((int16_t)rawData[0] << 8) | rawData[1]) ;  // Turn the MSB and LSB into a signed 16-bit value
   destination[1] = (int16_t)(((int16_t)rawData[2] << 8) | rawData[3]) ;  
   destination[2] = (int16_t)(((int16_t)rawData[4] << 8) | rawData[5]) ; 
+  reg8_bit[X_H]=rawData[0];
+    reg8_bit[X_L]=rawData[1];
+      reg8_bit[Y_H]=rawData[2];
+        reg8_bit[Y_L]=rawData[3];
+          reg8_bit[Z_H]=rawData[4];
+            reg8_bit[Z_L]=rawData[5];
 }
 
+
+
+
+
+
 void readGyroData(int16_t * destination)
 {
   uint8_t rawData[6];  // x/y/z gyro register data stored here
@@ -342,6 +354,12 @@
   destination[0] = (int16_t)(((int16_t)rawData[0] << 8) | rawData[1]) ;  // Turn the MSB and LSB into a signed 16-bit value
   destination[1] = (int16_t)(((int16_t)rawData[2] << 8) | rawData[3]) ;  
   destination[2] = (int16_t)(((int16_t)rawData[4] << 8) | rawData[5]) ; 
+    reg8_bit[X_H]=rawData[0];
+    reg8_bit[X_L]=rawData[1];
+      reg8_bit[Y_H]=rawData[2];
+        reg8_bit[Y_L]=rawData[3];
+          reg8_bit[Z_H]=rawData[4];
+            reg8_bit[Z_L]=rawData[5];
 }
 
 void readMagData(int16_t * destination)
@@ -354,6 +372,12 @@
     destination[0] = (int16_t)(((int16_t)rawData[1] << 8) | rawData[0]);  // Turn the MSB and LSB into a signed 16-bit value
     destination[1] = (int16_t)(((int16_t)rawData[3] << 8) | rawData[2]) ;  // Data stored as little Endian
     destination[2] = (int16_t)(((int16_t)rawData[5] << 8) | rawData[4]) ; 
+      reg8_bit[X_H]=rawData[0];
+    reg8_bit[X_L]=rawData[1];
+      reg8_bit[Y_H]=rawData[2];
+        reg8_bit[Y_L]=rawData[3];
+          reg8_bit[Z_H]=rawData[4];
+            reg8_bit[Z_L]=rawData[5];
    }
   }
 }
@@ -594,7 +618,7 @@
    dest2[1] = (float)accel_bias[1]/(float)accelsensitivity;
    dest2[2] = (float)accel_bias[2]/(float)accelsensitivity;
 }
-
+/*
 
 // Accelerometer and gyroscope self test; check calibration wrt factory settings
 void MPU9250SelfTest(float * destination) // Should return percent deviation from factory trim values, +/- 14 or less deviation is a pass
@@ -681,9 +705,25 @@
    }
    
 }
+*/
 
 
 
+
+
+
+
+
+
+
+
+
+
+
+
+/*
+
+
 // Implementation of Sebastian Madgwick's "...efficient orientation filter for... inertial/magnetic sensor arrays"
 // (see http://www.x-io.co.uk/category/open-source/ for examples and more details)
 // which fuses acceleration, rotation rate, and magnetic moments to produce a quaternion-based estimate of absolute
@@ -782,7 +822,7 @@
 
         }
   
-  
+  */
   
  // Similar to Madgwick scheme but uses proportional and integral filtering on the error between estimated reference vectors and
  // measured ones.