BMI160 Initial
Dependents: MAX32630HSP3_IMU_HelloWorld MAX32630HSP3_IMU_HelloWorld MAX32630HSP3_Pitch_Charles Maxim_Squeeks
Diff: bmi160.cpp
- 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;
+}