Library for Bosch Sensortec BMI160 IMU

Dependents:   Rocket MAX32630FTHR_JOYSTICK MAX32630FTHR_IMU_Hello_World Pike_the_Flipper_Main_Branch ... more

Fork of BMI160 by Justin Jordan

Revision:
14:646eb94fa2eb
Parent:
13:5d132f873b07
Child:
15:dc35ccc0b08e
--- a/bmi160.h	Tue Dec 20 19:02:36 2016 +0000
+++ b/bmi160.h	Tue Dec 20 19:32:26 2016 +0000
@@ -206,11 +206,16 @@
     ///Error register data
     ///@{
         
-    static const uint8_t FATAL_ERR = 0x01;
-    static const uint8_t ERR_CODE = 0x1E;
-    static const uint8_t I2C_FAIL_ERR = 0x20;
-    static const uint8_t DROP_CMD_ERR = 0x40;
-    static const uint8_t MAG_DRDY_ERR = 0x80;
+    static const uint8_t FATAL_ERR_MASK = 0x01;
+    static const uint8_t FATAL_ERR_POS = 0x00;
+    static const uint8_t ERR_CODE_MASK = 0x1E;
+    static const uint8_t ERR_CODE_POS = 0x01;
+    static const uint8_t I2C_FAIL_ERR_MASK = 0x20;
+    static const uint8_t I2C_FAIL_ERR_POS = 0x05;
+    static const uint8_t DROP_CMD_ERR_MASK = 0x40;
+    static const uint8_t DROP_CMD_ERR_POS = 0x06;
+    static const uint8_t MAG_DRDY_ERR_MASK = 0x80;
+    static const uint8_t MAG_DRDY_ERR_POS = 0x08;
     
     ///Enumerated error codes
     enum ErrorCodes
@@ -237,6 +242,8 @@
     static const uint8_t ACC_BWP_POS = 0x04;
     static const uint8_t ACC_US_MASK = 0x80;
     static const uint8_t ACC_US_POS = 0x07;
+    static const uint8_t ACC_RANGE_MASK = 0x0F;
+    static const uint8_t ACC_RANGE_POS = 0x00;
     
     ///Accelerometer output data rates
     enum AccOutPutDataRate
@@ -287,10 +294,10 @@
     ///Accelerometer configuration data structure
     struct AccConfig
     {
-        AccRange range;
-        AccUnderSampling us;
-        AccBandWidthParam bwp;
-        AccOutPutDataRate odr;
+        AccRange range;        ///<Accelerometer range
+        AccUnderSampling us;   ///<Accelerometr undersampling mode
+        AccBandWidthParam bwp; ///<Accelerometer bandwidth param
+        AccOutPutDataRate odr; ///<Accelerometr output data rate
     };
     
     ///Accelerometer default configuration
@@ -298,6 +305,13 @@
     ///@}
     
     
+    ///@name GYR_CONF(0x42) and GYR_RANGE(0x43) 
+    ///Data for configuring gyroscope
+    ///@{
+        
+    ///@}
+    
+    
     ///Enumerated power modes
     enum PowerModes
     {
@@ -422,6 +436,19 @@
     int32_t setAccConfig(const AccConfig &config);
     
     
+    ///@brief Get accelerometer configuration.\n
+    ///
+    ///On Entry:
+    ///@param[in] config - Accelerometer configuration data structure
+    ///
+    ///On Exit:
+    ///@param[out] config - on success, holds accelerometer's current 
+    ///configuration
+    ///
+    ///@returns 0 on success, non 0 on failure
+    int32_t getAccConfig(AccConfig &config);
+    
+    
     ///@brief Get accelerometer axis as float.\n
     ///
     ///On Entry: