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:
5:35e032c8d8aa
Parent:
3:e1770675eca4
Child:
6:9615aa90087d
--- a/bmi160.cpp	Fri Dec 09 00:45:10 2016 +0000
+++ b/bmi160.cpp	Wed Dec 14 23:48:07 2016 +0000
@@ -35,9 +35,43 @@
 
 
 //*****************************************************************************
-int32_t BMI160::getTemperature(float *temp)
+int32_t BMI160::setSensorPowerMode(Sensors sensor, PowerModes pwrMode)
 {
     int32_t rtnVal = -1;
     
+    switch(sensor)
+    {
+        case MAG:
+            rtnVal = writeRegister(CMD, (MAG_SET_PMU_MODE | pwrMode));
+        break;
+        
+        case GYRO:
+            rtnVal = writeRegister(CMD, (GYR_SET_PMU_MODE | pwrMode));
+        break;
+        
+        case ACC:
+            rtnVal = writeRegister(CMD, (ACC_SET_PMU_MODE | pwrMode));
+        break;
+        
+        default:
+            rtnVal = -1;
+        break;
+    }
+    
     return rtnVal;
 }
+
+
+//*****************************************************************************
+int32_t BMI160::getTemperature(float *temp)
+{
+    uint8_t data[2];
+    
+    int32_t rtnVal = readBlock(TEMPERATURE_0, TEMPERATURE_1, data);
+    if(rtnVal == RTN_NO_ERROR)
+    {
+        *temp = (((data[1] << 8) | data[0])/512.0);
+    }
+    
+    return rtnVal;
+}