Library for Bosch Sensortech BMI160 IMU
Dependents: MAX32630FTHR_BALANCE_BOT MPSMAX_copy MAX32630FTHR_BALANCE_BOT SELF_BALANCING_BOT
Diff: bmi160.h
- Revision:
- 5:35e032c8d8aa
- Parent:
- 4:ebac8c8f6347
- Child:
- 7:9848196cb65e
diff -r ebac8c8f6347 -r 35e032c8d8aa bmi160.h --- a/bmi160.h Fri Dec 09 00:45:10 2016 +0000 +++ b/bmi160.h Wed Dec 14 23:48:07 2016 +0000 @@ -56,6 +56,14 @@ ///Return value on success. static const uint8_t RTN_NO_ERROR = 0; + ///BMI160 Sensors + enum Sensors + { + MAG = 0, ///<Optional external sensor + GYRO, ///<Angular rate sensor + ACC ///<g sensor + }; + ///BMI160 registers enum Registers { @@ -193,6 +201,7 @@ PFD_USED_LPM ///<Pre-filtered data are used in low power mode }; + ///BMI160 Power Modes enum PowerModes { SUSPEND = 0, ///<Acc and Gyro, No sampling, No FIFO data readout @@ -201,6 +210,21 @@ FAST_START_UP ///<Gyro start up delay time to normal mode <= 10 ms }; + ///BMI160 Commands for CMD register + enum Commands + { + START_FOC = 0x03, ///<Starts Fast Offset Calibrartion + ACC_SET_PMU_MODE = 0x14, ///<Sets acc power mode + GYR_SET_PMU_MODE, ///<Sets gyro power mode + MAG_SET_PMU_MODE, ///<Sets mag power mode + PROG_NVM = 0xA0, ///<Writes NVM backed registers into NVM + FIFO_FLUSH = 0xB0, ///<Clears FIFO + INT_RESET, ///<Clears interrupt engine, INT_STATUS, and + ///<the interrupt pin + STEP_CNT_CLR, ///<Triggers reset of the step counter + SOFT_RESET = 0xB6 ///<Triggers a reset including a reboot. + }; + ///@brief BMI160 Destructor.\n /// @@ -274,6 +298,20 @@ const uint8_t *data) = 0; + ///@brief Sets sensors power mode through CMD register.\n + ///@details Observe command execution times given in datasheet.\n + /// + ///On Entry: + ///@param[in] sensor - Sensor which power mode we are setting + ///@param[in] pwrMode - Desired powermode of the sensor + /// + ///On Exit: + ///@param[out] + /// + ///@returns 0 on success, non 0 on failure + int32_t setSensorPowerMode(Sensors sensor, PowerModes pwrMode); + + ///@brief Get die temperature.\n /// ///On Entry: @@ -295,8 +333,6 @@ ///@param[out] none /// ///@returns none - -private: };