AHRS
Dependencies: Eigen
BMX055.h@28:21dfb161c67c, 2020-01-20 (annotated)
- Committer:
- altb2
- Date:
- Mon Jan 20 12:41:13 2020 +0000
- Revision:
- 28:21dfb161c67c
- Parent:
- 27:973e495f4711
- Child:
- 29:cd963a6d31c5
read also BMI088, only for datalogging
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
altb2 | 25:fe14dbcef82d | 1 | /* |
altb2 | 25:fe14dbcef82d | 2 | * mbed library program |
altb2 | 25:fe14dbcef82d | 3 | * BMX055 Small, versatile 9-axis sensor module |
altb2 | 25:fe14dbcef82d | 4 | * by Bosch Sensortec |
altb2 | 25:fe14dbcef82d | 5 | * |
altb2 | 25:fe14dbcef82d | 6 | * Copyright (c) 2018,'19 Kenji Arai / JH1PJL |
altb2 | 25:fe14dbcef82d | 7 | * http://www.page.sannet.ne.jp/kenjia/index.html |
altb2 | 25:fe14dbcef82d | 8 | * http://mbed.org/users/kenjiArai/ |
altb2 | 25:fe14dbcef82d | 9 | * Started: October 24th, 2018 |
altb2 | 25:fe14dbcef82d | 10 | * Revised: March 3rd, 2019 |
altb2 | 25:fe14dbcef82d | 11 | */ |
altb2 | 25:fe14dbcef82d | 12 | /* |
altb2 | 25:fe14dbcef82d | 13 | *---------------- REFERENCE --------------------------------------------------- |
altb2 | 25:fe14dbcef82d | 14 | * Original Information |
altb2 | 25:fe14dbcef82d | 15 | * https://www.bosch-sensortec.com/bst/products/all_products/bmx055 |
altb2 | 25:fe14dbcef82d | 16 | * Data Sheet BST-BMX055-DS000-02 Rev.1.1 November 7th, 2014 |
altb2 | 25:fe14dbcef82d | 17 | * Sample software |
altb2 | 25:fe14dbcef82d | 18 | * BMX055 - Combination of bma2x2 + bmg160 + bmm050 APIs |
altb2 | 25:fe14dbcef82d | 19 | * https://github.com/BoschSensortec/BMA2x2_driver |
altb2 | 25:fe14dbcef82d | 20 | * https://github.com/BoschSensortec/BMG160_driver |
altb2 | 25:fe14dbcef82d | 21 | * https://github.com/BoschSensortec/BMM050_driver |
altb2 | 25:fe14dbcef82d | 22 | * Aplied Board |
altb2 | 25:fe14dbcef82d | 23 | * AE-BMX055 Module |
altb2 | 25:fe14dbcef82d | 24 | * http://akizukidenshi.com/catalog/g/gK-13010/ |
altb2 | 25:fe14dbcef82d | 25 | */ |
altb2 | 25:fe14dbcef82d | 26 | |
altb2 | 25:fe14dbcef82d | 27 | // NO Interrupt functions are supported due to no pin on AE-BMX055 Module |
altb2 | 25:fe14dbcef82d | 28 | // Only supprt normal mode (No sleep and/or standby mode) |
altb2 | 25:fe14dbcef82d | 29 | |
altb2 | 25:fe14dbcef82d | 30 | #ifndef BMX055_H |
altb2 | 25:fe14dbcef82d | 31 | #define BMX055_H |
altb2 | 25:fe14dbcef82d | 32 | |
altb2 | 25:fe14dbcef82d | 33 | #include "mbed.h" |
altb2 | 25:fe14dbcef82d | 34 | |
altb2 | 25:fe14dbcef82d | 35 | #define AKIZUKI_BOARD |
altb2 | 25:fe14dbcef82d | 36 | |
altb2 | 25:fe14dbcef82d | 37 | // BMX055 |
altb2 | 25:fe14dbcef82d | 38 | // Automatic detection for the address!! |
altb2 | 25:fe14dbcef82d | 39 | // AE-BMX055 board default setting (All jumpers are open) |
altb2 | 25:fe14dbcef82d | 40 | #define BMX055_GYR_CHIP_ADDR (0x69 << 1) |
altb2 | 25:fe14dbcef82d | 41 | #define BMX055_ACC_CHIP_ADDR (0x19 << 1) |
altb2 | 25:fe14dbcef82d | 42 | #define BMX055_MAG_CHIP_ADDR (0x13 << 1) |
altb2 | 25:fe14dbcef82d | 43 | |
altb2 | 25:fe14dbcef82d | 44 | // ID's |
altb2 | 25:fe14dbcef82d | 45 | #define I_AM_BMX055_ACC 0xfa // ACC ID |
altb2 | 25:fe14dbcef82d | 46 | #define I_AM_BMX055_GYR 0x0f // GYR ID |
altb2 | 25:fe14dbcef82d | 47 | #define I_AM_BMX055_MAG 0x32 // MAG ID |
altb2 | 25:fe14dbcef82d | 48 | |
altb2 | 25:fe14dbcef82d | 49 | ////////////// PARAMETER DEFINITION /////////////////////// |
altb2 | 25:fe14dbcef82d | 50 | // ACC full scale |
altb2 | 25:fe14dbcef82d | 51 | #define ACC_2G 3 |
altb2 | 25:fe14dbcef82d | 52 | #define ACC_4G 5 |
altb2 | 25:fe14dbcef82d | 53 | #define ACC_8G 8 |
altb2 | 25:fe14dbcef82d | 54 | #define ACC_16G 12 |
altb2 | 25:fe14dbcef82d | 55 | |
altb2 | 25:fe14dbcef82d | 56 | // Support only "filtered mode" |
altb2 | 25:fe14dbcef82d | 57 | // ACC Bandwidth (BW = ODR/2 (ODR = Output Data Rate)) |
altb2 | 25:fe14dbcef82d | 58 | #define ACC_BW7R81Hz 8 // 64 ms |
altb2 | 25:fe14dbcef82d | 59 | #define ACC_BW15R63Hz 9 // 32 ms |
altb2 | 25:fe14dbcef82d | 60 | #define ACC_BW31R25Hz 10 // 16 ms |
altb2 | 25:fe14dbcef82d | 61 | #define ACC_BW62R5Hz 11 // 8 ms |
altb2 | 25:fe14dbcef82d | 62 | #define ACC_BW125Hz 12 // 4 ms |
altb2 | 25:fe14dbcef82d | 63 | #define ACC_BW250Hz 13 // 2 ms |
altb2 | 25:fe14dbcef82d | 64 | #define ACC_BW500Hz 14 // 1 ms |
altb2 | 25:fe14dbcef82d | 65 | #define ACC_BW1kHz 15 // 0.5 ms |
altb2 | 25:fe14dbcef82d | 66 | |
altb2 | 25:fe14dbcef82d | 67 | // Gyro Sampling (Data per Second) |
altb2 | 25:fe14dbcef82d | 68 | #define GYR_2000DPS 0 // full scal +/- 2000 Deg/s(61.0 mDeg/sec/LSB) |
altb2 | 25:fe14dbcef82d | 69 | #define GYR_1000DPS 1 // +/- 1000 Deg/s(30.5 mDeg/sec/LSB) |
altb2 | 25:fe14dbcef82d | 70 | #define GYR_500DPS 2 // +/- 500 Deg/s(15.3 mDeg/sec/LSB) |
altb2 | 25:fe14dbcef82d | 71 | #define GYR_250DPS 3 // +/- 250 Deg/s(7.6 mDeg/sec/LSB) |
altb2 | 25:fe14dbcef82d | 72 | #define GYR_125DPS 4 // +/- 125 Deg/s(3.8 mDeg/sec/LSB) |
altb2 | 25:fe14dbcef82d | 73 | |
altb2 | 25:fe14dbcef82d | 74 | // Gyro Bandwidth |
altb2 | 25:fe14dbcef82d | 75 | #define GYR_2000Hz523Hz 0 // 2000 Hz ODR and unfiltered (BW(bandwidth) 523Hz) |
altb2 | 25:fe14dbcef82d | 76 | #define GYR_2000Hz230Hz 1 // 2000 Hz ODR 230 Hz BW |
altb2 | 25:fe14dbcef82d | 77 | #define GYR_1000Hz116Hz 2 // 1000 Hz ODR 116 Hz BW |
altb2 | 25:fe14dbcef82d | 78 | #define GYR_400Hz47Hz 3 // 400 Hz ODR 47 Hz BW |
altb2 | 25:fe14dbcef82d | 79 | #define GYR_200Hz23Hz 4 // 200 Hz ODR 23 Hz BW |
altb2 | 25:fe14dbcef82d | 80 | #define GYR_100Hz12Hz 5 // 100 Hz ODR 12 Hz BW |
altb2 | 25:fe14dbcef82d | 81 | #define GYR_200Hz64Hz 6 // 200 Hz ODR 64 Hz BW |
altb2 | 25:fe14dbcef82d | 82 | #define GYR_100Hz32Hz 7 // 100 Hz ODR 32 Hz BW |
altb2 | 25:fe14dbcef82d | 83 | |
altb2 | 25:fe14dbcef82d | 84 | // MAG |
altb2 | 25:fe14dbcef82d | 85 | #define MAG_ODR10Hz 0 // 10 Hz ODR(default) |
altb2 | 25:fe14dbcef82d | 86 | #define MAG_ODR2Hz 1 // 2 Hz ODR |
altb2 | 25:fe14dbcef82d | 87 | #define MAG_ODR6Hz 2 // 6 Hz ODR |
altb2 | 25:fe14dbcef82d | 88 | #define MAG_ODR8Hz 3 // 8 Hz ODR |
altb2 | 25:fe14dbcef82d | 89 | #define MAG_ODR15Hz 4 // 15 Hz ODR |
altb2 | 25:fe14dbcef82d | 90 | #define MAG_ODR20Hz 5 // 20 Hz ODR |
altb2 | 25:fe14dbcef82d | 91 | #define MAG_ODR25Hz 6 // 25 Hz ODR |
altb2 | 25:fe14dbcef82d | 92 | #define MAG_ODR30Hz 7 // 30 Hz ODR |
altb2 | 25:fe14dbcef82d | 93 | |
altb2 | 25:fe14dbcef82d | 94 | ////////////// DATA TYPE DEFINITION /////////////////////// |
altb2 | 25:fe14dbcef82d | 95 | typedef struct { |
altb2 | 25:fe14dbcef82d | 96 | // ACC |
altb2 | 25:fe14dbcef82d | 97 | uint8_t acc_fs; // Accelerometer full scale range |
altb2 | 25:fe14dbcef82d | 98 | uint8_t acc_bw; // Accelerometer filtered bandwidth |
altb2 | 25:fe14dbcef82d | 99 | // GYR |
altb2 | 25:fe14dbcef82d | 100 | uint8_t gyr_fs; // Gyroscope full scale range |
altb2 | 25:fe14dbcef82d | 101 | uint8_t gyr_bw; // Gyroscope filtered bandwidth |
altb2 | 25:fe14dbcef82d | 102 | // MAG |
altb2 | 25:fe14dbcef82d | 103 | uint8_t mag_odr; // Magnetometer Output Data Rate |
altb2 | 25:fe14dbcef82d | 104 | } BMX055_TypeDef; |
altb2 | 25:fe14dbcef82d | 105 | |
altb2 | 25:fe14dbcef82d | 106 | ////////////// DEFAULT SETTING //////////////////////////// |
altb2 | 25:fe14dbcef82d | 107 | // Standard parameter for easy set-up |
altb2 | 25:fe14dbcef82d | 108 | const BMX055_TypeDef bmx055_std_paramtr = { |
altb2 | 25:fe14dbcef82d | 109 | // ACC |
altb2 | 25:fe14dbcef82d | 110 | ACC_2G, |
pmic | 27:973e495f4711 | 111 | ACC_BW31R25Hz, // ACC_BW31R25Hz -> ODR = 62.5 Hz |
altb2 | 25:fe14dbcef82d | 112 | // GYR |
altb2 | 25:fe14dbcef82d | 113 | GYR_500DPS, |
pmic | 27:973e495f4711 | 114 | GYR_400Hz47Hz, |
altb2 | 25:fe14dbcef82d | 115 | // MAG |
altb2 | 28:21dfb161c67c | 116 | MAG_ODR10Hz // DO NOT CHANGE THIS (pmic), DOES NOT WORK WITH 30Hz!!! |
altb2 | 28:21dfb161c67c | 117 | // maybe read manual in more detail first! |
altb2 | 25:fe14dbcef82d | 118 | }; |
altb2 | 25:fe14dbcef82d | 119 | |
altb2 | 25:fe14dbcef82d | 120 | ////////////// DATA TYPE DEFINITION /////////////////////// |
altb2 | 25:fe14dbcef82d | 121 | typedef struct { |
altb2 | 25:fe14dbcef82d | 122 | uint8_t acc_addr; |
altb2 | 25:fe14dbcef82d | 123 | uint8_t mag_addr; |
altb2 | 25:fe14dbcef82d | 124 | uint8_t gyr_addr; |
altb2 | 25:fe14dbcef82d | 125 | } BMX055_ADDR_INF_TypeDef; |
altb2 | 25:fe14dbcef82d | 126 | |
altb2 | 25:fe14dbcef82d | 127 | typedef struct { |
altb2 | 25:fe14dbcef82d | 128 | uint8_t acc_id; |
altb2 | 25:fe14dbcef82d | 129 | uint8_t mag_id; |
altb2 | 25:fe14dbcef82d | 130 | uint8_t gyr_id; |
altb2 | 25:fe14dbcef82d | 131 | } BMX055_ID_INF_TypeDef; |
altb2 | 25:fe14dbcef82d | 132 | |
altb2 | 25:fe14dbcef82d | 133 | typedef struct { |
altb2 | 25:fe14dbcef82d | 134 | float x; |
altb2 | 25:fe14dbcef82d | 135 | float y; |
altb2 | 25:fe14dbcef82d | 136 | float z; |
altb2 | 25:fe14dbcef82d | 137 | } BMX055_ACCEL_TypeDef; |
altb2 | 25:fe14dbcef82d | 138 | |
altb2 | 25:fe14dbcef82d | 139 | typedef struct { |
altb2 | 25:fe14dbcef82d | 140 | float x; |
altb2 | 25:fe14dbcef82d | 141 | float y; |
altb2 | 25:fe14dbcef82d | 142 | float z; |
altb2 | 25:fe14dbcef82d | 143 | } BMX055_GRAVITY_TypeDef; |
altb2 | 25:fe14dbcef82d | 144 | |
altb2 | 25:fe14dbcef82d | 145 | typedef struct { |
altb2 | 25:fe14dbcef82d | 146 | float x; |
altb2 | 25:fe14dbcef82d | 147 | float y; |
altb2 | 25:fe14dbcef82d | 148 | float z; |
altb2 | 25:fe14dbcef82d | 149 | } BMX055_GYRO_TypeDef; |
altb2 | 25:fe14dbcef82d | 150 | |
altb2 | 25:fe14dbcef82d | 151 | typedef struct { |
altb2 | 25:fe14dbcef82d | 152 | float x; |
altb2 | 25:fe14dbcef82d | 153 | float y; |
altb2 | 25:fe14dbcef82d | 154 | float z; |
altb2 | 25:fe14dbcef82d | 155 | } BMX055_MAGNET_TypeDef; |
altb2 | 25:fe14dbcef82d | 156 | |
altb2 | 25:fe14dbcef82d | 157 | /** BMX055 Small, versatile 9-axis sensor module by Bosch Sensortec |
altb2 | 25:fe14dbcef82d | 158 | * @code |
altb2 | 25:fe14dbcef82d | 159 | * #include "mbed.h" |
altb2 | 25:fe14dbcef82d | 160 | * #include "BMX055.h" |
altb2 | 25:fe14dbcef82d | 161 | * |
altb2 | 25:fe14dbcef82d | 162 | * Serial pc(USBTX,USBRX); |
altb2 | 25:fe14dbcef82d | 163 | * I2C (I2C_SDA, I2C_SCL); |
altb2 | 25:fe14dbcef82d | 164 | * BMX055 imu(i2c); |
altb2 | 25:fe14dbcef82d | 165 | * |
altb2 | 25:fe14dbcef82d | 166 | * const BMX055_TypeDef bmx055_my_parameters = { |
altb2 | 25:fe14dbcef82d | 167 | * // ACC |
altb2 | 25:fe14dbcef82d | 168 | * ACC_2G, |
altb2 | 25:fe14dbcef82d | 169 | * ACC_BW250Hz, |
altb2 | 25:fe14dbcef82d | 170 | * // GYR |
altb2 | 25:fe14dbcef82d | 171 | * GYR_125DPS, |
altb2 | 25:fe14dbcef82d | 172 | * GYR_200Hz23Hz, |
altb2 | 25:fe14dbcef82d | 173 | * // MAG |
altb2 | 25:fe14dbcef82d | 174 | * MAG_ODR10Hz |
altb2 | 25:fe14dbcef82d | 175 | * }; |
altb2 | 25:fe14dbcef82d | 176 | * |
altb2 | 25:fe14dbcef82d | 177 | * int main() { |
altb2 | 25:fe14dbcef82d | 178 | * BMX055_ACCEL_TypeDef acc; |
altb2 | 25:fe14dbcef82d | 179 | * BMX055_GYRO_TypeDef gyr; |
altb2 | 25:fe14dbcef82d | 180 | * BMX055_MAGNET_TypeDef mag; |
altb2 | 25:fe14dbcef82d | 181 | * |
altb2 | 25:fe14dbcef82d | 182 | * if (imu.imu.chip_ready() == 0){ |
altb2 | 25:fe14dbcef82d | 183 | * pc.printf("Bosch BMX055 is NOT avirable!!\r\n"); |
altb2 | 25:fe14dbcef82d | 184 | * } |
altb2 | 25:fe14dbcef82d | 185 | * imu.set_parameter(&bmx055_my_parameters); |
altb2 | 25:fe14dbcef82d | 186 | * while(1) { |
altb2 | 25:fe14dbcef82d | 187 | * imu.get_accel(&acc); |
altb2 | 25:fe14dbcef82d | 188 | * pc.printf("//ACC: x=%+3.2f y=%+3.2f z=%+3.2f //", |
altb2 | 25:fe14dbcef82d | 189 | * acc.x, acc.y, acc.z); |
altb2 | 25:fe14dbcef82d | 190 | * imu.get_gyro(&gyr); |
altb2 | 25:fe14dbcef82d | 191 | * pc.printf("GYR: x=%+3.2f y=%+3.2f z=%+3.2f //", |
altb2 | 25:fe14dbcef82d | 192 | * gyr.x, gyr.y, gyr.z); |
altb2 | 25:fe14dbcef82d | 193 | * imu.get_magnet(&mag); |
altb2 | 25:fe14dbcef82d | 194 | * pc.printf("MAG: x=%+3.2f y=%+3.2f z=%+3.2f , passed %u sec\r\n", |
altb2 | 25:fe14dbcef82d | 195 | * mag.x, mag.y, mag.z, n++); |
altb2 | 25:fe14dbcef82d | 196 | * wait(0.5f); |
altb2 | 25:fe14dbcef82d | 197 | * } |
altb2 | 25:fe14dbcef82d | 198 | * } |
altb2 | 25:fe14dbcef82d | 199 | * @endcode |
altb2 | 25:fe14dbcef82d | 200 | */ |
altb2 | 25:fe14dbcef82d | 201 | |
altb2 | 25:fe14dbcef82d | 202 | class BMX055 |
altb2 | 25:fe14dbcef82d | 203 | { |
altb2 | 25:fe14dbcef82d | 204 | public: |
altb2 | 25:fe14dbcef82d | 205 | /** Configure data pin |
altb2 | 25:fe14dbcef82d | 206 | * @param data SDA and SCL pins |
altb2 | 25:fe14dbcef82d | 207 | * @param Other parameters are set automatically |
altb2 | 25:fe14dbcef82d | 208 | */ |
altb2 | 25:fe14dbcef82d | 209 | BMX055(I2C& i2c); |
altb2 | 25:fe14dbcef82d | 210 | |
altb2 | 25:fe14dbcef82d | 211 | /** Configure data pin (with other devices on I2C line) |
altb2 | 25:fe14dbcef82d | 212 | * @param I2C previous definition |
altb2 | 25:fe14dbcef82d | 213 | * @param Other parameters are set automatically |
altb2 | 25:fe14dbcef82d | 214 | */ |
altb2 | 25:fe14dbcef82d | 215 | |
altb2 | 25:fe14dbcef82d | 216 | /** Get accel data |
altb2 | 25:fe14dbcef82d | 217 | * @param float type of 3D data address |
altb2 | 25:fe14dbcef82d | 218 | */ |
altb2 | 25:fe14dbcef82d | 219 | float get_chip_temperature(void); |
altb2 | 25:fe14dbcef82d | 220 | |
altb2 | 25:fe14dbcef82d | 221 | /** Read BMX055 ID information |
altb2 | 25:fe14dbcef82d | 222 | * @param ID information address |
altb2 | 25:fe14dbcef82d | 223 | * @return none |
altb2 | 25:fe14dbcef82d | 224 | */ |
altb2 | 25:fe14dbcef82d | 225 | void read_id_inf(BMX055_ID_INF_TypeDef *id); |
altb2 | 25:fe14dbcef82d | 226 | |
altb2 | 25:fe14dbcef82d | 227 | /** Check chip is avairable or not |
altb2 | 25:fe14dbcef82d | 228 | * @param none |
altb2 | 25:fe14dbcef82d | 229 | * @return OK = true, NG = false; |
altb2 | 25:fe14dbcef82d | 230 | */ |
altb2 | 25:fe14dbcef82d | 231 | bool chip_ready(void); |
altb2 | 25:fe14dbcef82d | 232 | |
altb2 | 25:fe14dbcef82d | 233 | /** Check chip is avairable or not |
altb2 | 25:fe14dbcef82d | 234 | * @param configration parameter |
altb2 | 25:fe14dbcef82d | 235 | * @return none |
altb2 | 25:fe14dbcef82d | 236 | */ |
altb2 | 25:fe14dbcef82d | 237 | void set_parameter(const BMX055_TypeDef *bmx055_parameter); |
altb2 | 25:fe14dbcef82d | 238 | |
altb2 | 25:fe14dbcef82d | 239 | /** Set I2C clock frequency |
altb2 | 25:fe14dbcef82d | 240 | * @param freq. |
altb2 | 25:fe14dbcef82d | 241 | * @return none |
altb2 | 25:fe14dbcef82d | 242 | */ |
altb2 | 25:fe14dbcef82d | 243 | void frequency(int hz); |
altb2 | 25:fe14dbcef82d | 244 | |
altb2 | 25:fe14dbcef82d | 245 | /** Read register |
altb2 | 25:fe14dbcef82d | 246 | * @param register's address |
altb2 | 25:fe14dbcef82d | 247 | * @return register data |
altb2 | 25:fe14dbcef82d | 248 | */ |
altb2 | 25:fe14dbcef82d | 249 | uint8_t read_reg(uint8_t addr); |
altb2 | 25:fe14dbcef82d | 250 | |
altb2 | 25:fe14dbcef82d | 251 | /** Write register |
altb2 | 25:fe14dbcef82d | 252 | * @param register's address |
altb2 | 25:fe14dbcef82d | 253 | * @param data |
altb2 | 25:fe14dbcef82d | 254 | * @return register data |
altb2 | 25:fe14dbcef82d | 255 | */ |
altb2 | 25:fe14dbcef82d | 256 | uint8_t write_reg(uint8_t addr, uint8_t data); |
altb2 | 25:fe14dbcef82d | 257 | void readAccel(void); |
altb2 | 25:fe14dbcef82d | 258 | void readGyro(void); |
altb2 | 25:fe14dbcef82d | 259 | void readMag(void); |
altb2 | 25:fe14dbcef82d | 260 | float gyroX, gyroY, gyroZ; // x, y, and z axis readings of the gyroscope (float value) |
altb2 | 25:fe14dbcef82d | 261 | float accX, accY, accZ; // x, y, and z axis readings of the accelerometer (float value) |
altb2 | 25:fe14dbcef82d | 262 | float magX, magY, magZ; // x, y, and z axis readings of the magnetometer (float value) |
altb2 | 25:fe14dbcef82d | 263 | uint16_t begin(); |
altb2 | 25:fe14dbcef82d | 264 | protected: |
altb2 | 25:fe14dbcef82d | 265 | void initialize(void); |
altb2 | 25:fe14dbcef82d | 266 | void check_id(void); |
altb2 | 25:fe14dbcef82d | 267 | void set_parameters_to_regs(void); |
altb2 | 25:fe14dbcef82d | 268 | |
altb2 | 25:fe14dbcef82d | 269 | I2C &i2c; |
altb2 | 25:fe14dbcef82d | 270 | |
altb2 | 25:fe14dbcef82d | 271 | |
altb2 | 25:fe14dbcef82d | 272 | private: |
altb2 | 25:fe14dbcef82d | 273 | char dt[16]; // working buffer |
altb2 | 25:fe14dbcef82d | 274 | uint8_t chip_addr; |
altb2 | 25:fe14dbcef82d | 275 | BMX055_ADDR_INF_TypeDef inf_addr; |
altb2 | 25:fe14dbcef82d | 276 | BMX055_ID_INF_TypeDef inf_id; |
altb2 | 25:fe14dbcef82d | 277 | float gyr_factor, acc_factor; |
altb2 | 25:fe14dbcef82d | 278 | uint8_t ready_flag; |
altb2 | 25:fe14dbcef82d | 279 | |
altb2 | 25:fe14dbcef82d | 280 | |
altb2 | 25:fe14dbcef82d | 281 | |
altb2 | 25:fe14dbcef82d | 282 | BMX055_TypeDef bmx055_parameters; |
altb2 | 25:fe14dbcef82d | 283 | uint8_t acc_id; |
altb2 | 25:fe14dbcef82d | 284 | uint8_t mag_id; |
altb2 | 25:fe14dbcef82d | 285 | uint8_t gyr_id; |
altb2 | 25:fe14dbcef82d | 286 | }; |
altb2 | 25:fe14dbcef82d | 287 | |
altb2 | 25:fe14dbcef82d | 288 | |
altb2 | 25:fe14dbcef82d | 289 | #endif // BMX055_H |