Joel von Rotz / BNO055
Committer:
joelvonrotz
Date:
Thu Jul 11 09:34:29 2019 +0000
Revision:
0:a2a71c38065e
BNO055 library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
joelvonrotz 0:a2a71c38065e 1 /**
joelvonrotz 0:a2a71c38065e 2 * @brief
joelvonrotz 0:a2a71c38065e 3 *
joelvonrotz 0:a2a71c38065e 4 * @file bno055_definitions.h
joelvonrotz 0:a2a71c38065e 5 * @author Joel von Rotz
joelvonrotz 0:a2a71c38065e 6 * @date 18.07.2018
joelvonrotz 0:a2a71c38065e 7 */
joelvonrotz 0:a2a71c38065e 8 #ifndef BNO055_DEFINITIONS_H
joelvonrotz 0:a2a71c38065e 9 #define BNO055_DEFINITIONS_H
joelvonrotz 0:a2a71c38065e 10
joelvonrotz 0:a2a71c38065e 11 #include "mbed.h"
joelvonrotz 0:a2a71c38065e 12
joelvonrotz 0:a2a71c38065e 13 #define FREQ_400kHz 400000
joelvonrotz 0:a2a71c38065e 14
joelvonrotz 0:a2a71c38065e 15 #define MASK_CALIBRATION_BITS 0x03
joelvonrotz 0:a2a71c38065e 16
joelvonrotz 0:a2a71c38065e 17 #define BNO055_ID 0xA0
joelvonrotz 0:a2a71c38065e 18 #define FULLY_CALIBRATED 0xFF
joelvonrotz 0:a2a71c38065e 19
joelvonrotz 0:a2a71c38065e 20
joelvonrotz 0:a2a71c38065e 21 #define ACCELERATION_FORMAT (0.01f)
joelvonrotz 0:a2a71c38065e 22 #define MILLI_G_FORCE_FORMAT (1.0f)
joelvonrotz 0:a2a71c38065e 23
joelvonrotz 0:a2a71c38065e 24 #define MICRO_TESLA_FORMAT (0.0625f)
joelvonrotz 0:a2a71c38065e 25
joelvonrotz 0:a2a71c38065e 26 #define GYRO_DEGREE_PER_SEC_FORMAT (0.0625f)
joelvonrotz 0:a2a71c38065e 27 #define GYRO_RADIAN_PER_SEC_FORMAT (1.0f/900.0f)
joelvonrotz 0:a2a71c38065e 28
joelvonrotz 0:a2a71c38065e 29 #define QUATERNION_FORMAT (0.00006103515625f)
joelvonrotz 0:a2a71c38065e 30
joelvonrotz 0:a2a71c38065e 31 #define TEMPERATURE_CELSIUS_FORMAT (1.0f)
joelvonrotz 0:a2a71c38065e 32 #define TEMPERATURE_FAHRENHEIT_FORMAT (2.0f)
joelvonrotz 0:a2a71c38065e 33
joelvonrotz 0:a2a71c38065e 34 #define EULER_DEGREES_FORMAT (0.0625f)
joelvonrotz 0:a2a71c38065e 35 #define EULER_RADIANS_FORMAT (1.0f/900.0f)
joelvonrotz 0:a2a71c38065e 36
joelvonrotz 0:a2a71c38065e 37
joelvonrotz 0:a2a71c38065e 38 enum bitshift_t
joelvonrotz 0:a2a71c38065e 39 {
joelvonrotz 0:a2a71c38065e 40 SHIFT_1BYTE = 8,
joelvonrotz 0:a2a71c38065e 41
joelvonrotz 0:a2a71c38065e 42 SHIFT_CALIB_SYSTEM = 6,
joelvonrotz 0:a2a71c38065e 43 SHIFT_CALIB_GYRO = 4,
joelvonrotz 0:a2a71c38065e 44 SHIFT_CALIB_ACCEL = 2,
joelvonrotz 0:a2a71c38065e 45
joelvonrotz 0:a2a71c38065e 46 //ACCELERATION INTERRUPT CONFIGURATION
joelvonrotz 0:a2a71c38065e 47 SHIFT_HIGH_AXIS = 5,
joelvonrotz 0:a2a71c38065e 48 SHIFT_AM_NM_AXIS = 2,
joelvonrotz 0:a2a71c38065e 49
joelvonrotz 0:a2a71c38065e 50 //GYROSCOPE INTERRUPT CONFIGURATOIN
joelvonrotz 0:a2a71c38065e 51 SHIFT_HIGH_RATE_AXIS= 3,
joelvonrotz 0:a2a71c38065e 52 SHIFT_AM_FILT = 6,
joelvonrotz 0:a2a71c38065e 53 SHIFT_HIGH_RATE_FILT= 7,
joelvonrotz 0:a2a71c38065e 54
joelvonrotz 0:a2a71c38065e 55 SHIFT_INT_GYRO_AM = 2,
joelvonrotz 0:a2a71c38065e 56 SHIFT_INT_GYRO_HR = 3,
joelvonrotz 0:a2a71c38065e 57 SHIFT_INT_ACCEL_HG = 5,
joelvonrotz 0:a2a71c38065e 58 SHIFT_INT_ACCEL_AM = 6,
joelvonrotz 0:a2a71c38065e 59 SHIFT_INT_ACCEL_NM = 7,
joelvonrotz 0:a2a71c38065e 60 };
joelvonrotz 0:a2a71c38065e 61
joelvonrotz 0:a2a71c38065e 62 enum bno055_axis_t
joelvonrotz 0:a2a71c38065e 63 {
joelvonrotz 0:a2a71c38065e 64 X_AXIS = 0x00,
joelvonrotz 0:a2a71c38065e 65 Y_AXIS = 0x02,
joelvonrotz 0:a2a71c38065e 66 Z_AXIS = 0x04
joelvonrotz 0:a2a71c38065e 67 };
joelvonrotz 0:a2a71c38065e 68
joelvonrotz 0:a2a71c38065e 69 enum bno055_config_int_axis_t
joelvonrotz 0:a2a71c38065e 70 {
joelvonrotz 0:a2a71c38065e 71 NO_AXIS = 0x00,
joelvonrotz 0:a2a71c38065e 72 X_AXIS_ONLY = 0x01,
joelvonrotz 0:a2a71c38065e 73 Y_AXIS_ONLY = 0x02,
joelvonrotz 0:a2a71c38065e 74 Z_AXIS_ONLY = 0x04,
joelvonrotz 0:a2a71c38065e 75 X_Y_AXIS = 0x03,
joelvonrotz 0:a2a71c38065e 76 X_Z_AXIS = 0x05,
joelvonrotz 0:a2a71c38065e 77 Y_Z_AXIS = 0x06,
joelvonrotz 0:a2a71c38065e 78 ALL_AXIS = 0x07,
joelvonrotz 0:a2a71c38065e 79 };
joelvonrotz 0:a2a71c38065e 80
joelvonrotz 0:a2a71c38065e 81 enum bno055_any_motion_sample_t
joelvonrotz 0:a2a71c38065e 82 {
joelvonrotz 0:a2a71c38065e 83 AM_1_SAMPLE = 0,
joelvonrotz 0:a2a71c38065e 84 AM_2_SAMPLE = 1,
joelvonrotz 0:a2a71c38065e 85 AM_3_SAMPLE = 2,
joelvonrotz 0:a2a71c38065e 86 AM_4_SAMPLE = 3,
joelvonrotz 0:a2a71c38065e 87 };
joelvonrotz 0:a2a71c38065e 88
joelvonrotz 0:a2a71c38065e 89 enum bno055_euler_axis_t
joelvonrotz 0:a2a71c38065e 90 {
joelvonrotz 0:a2a71c38065e 91 YAW = 0x00,
joelvonrotz 0:a2a71c38065e 92 ROLL = 0x02,
joelvonrotz 0:a2a71c38065e 93 PITCH = 0x04,
joelvonrotz 0:a2a71c38065e 94 };
joelvonrotz 0:a2a71c38065e 95
joelvonrotz 0:a2a71c38065e 96 enum bno055_quaternion_t
joelvonrotz 0:a2a71c38065e 97 {
joelvonrotz 0:a2a71c38065e 98 QUATERNION_W = 0x00,
joelvonrotz 0:a2a71c38065e 99 QUATERNION_X = 0x02,
joelvonrotz 0:a2a71c38065e 100 QUATERNION_Y = 0x04,
joelvonrotz 0:a2a71c38065e 101 QUATERNION_Z = 0x06,
joelvonrotz 0:a2a71c38065e 102 };
joelvonrotz 0:a2a71c38065e 103
joelvonrotz 0:a2a71c38065e 104 enum bno055_opr_mode_t
joelvonrotz 0:a2a71c38065e 105 {
joelvonrotz 0:a2a71c38065e 106 OPERATION_MODE_CONFIGMODE = 0x00,
joelvonrotz 0:a2a71c38065e 107 //NON-FUSION MODES
joelvonrotz 0:a2a71c38065e 108 OPERATION_MODE_ACCONLY = 0x01,
joelvonrotz 0:a2a71c38065e 109 OPERATION_MODE_MAGONLY = 0x02,
joelvonrotz 0:a2a71c38065e 110 OPERATION_MODE_GYROONLY = 0x03,
joelvonrotz 0:a2a71c38065e 111 OPERATION_MODE_ACCMAG = 0x04,
joelvonrotz 0:a2a71c38065e 112 OPERATION_MODE_ACCGYRO = 0x05,
joelvonrotz 0:a2a71c38065e 113 OPERATION_MODE_MAGGYRO = 0x06,
joelvonrotz 0:a2a71c38065e 114 OPERATION_MODE_AMG = 0x07,
joelvonrotz 0:a2a71c38065e 115 //FUSION MODES
joelvonrotz 0:a2a71c38065e 116 OPERATION_MODE_IMU = 0x08,
joelvonrotz 0:a2a71c38065e 117 OPERATION_MODE_COMPASS = 0x09,
joelvonrotz 0:a2a71c38065e 118 OPERATION_MODE_M4G = 0x0A,
joelvonrotz 0:a2a71c38065e 119 OPERATION_MODE_NDOF_FMC_OFF = 0x0B,
joelvonrotz 0:a2a71c38065e 120 OPERATION_MODE_NDOF = 0x0C
joelvonrotz 0:a2a71c38065e 121 };
joelvonrotz 0:a2a71c38065e 122
joelvonrotz 0:a2a71c38065e 123 enum bno055_reg_mask_t
joelvonrotz 0:a2a71c38065e 124 {
joelvonrotz 0:a2a71c38065e 125 MASK_REMAP_AXIS = 0x3F,
joelvonrotz 0:a2a71c38065e 126 MASK_SIGN_AXIS = 0x07,
joelvonrotz 0:a2a71c38065e 127 MASK_OPERAITON_MODE = 0x0F,
joelvonrotz 0:a2a71c38065e 128 MASK_UNIT_SEL = 0x97,
joelvonrotz 0:a2a71c38065e 129 MASK_POWER_MODE = 0x03,
joelvonrotz 0:a2a71c38065e 130 MASK_SYSTEM_RESET = 0x20,
joelvonrotz 0:a2a71c38065e 131 MASK_EXT_CLOCK = 0x80,
joelvonrotz 0:a2a71c38065e 132
joelvonrotz 0:a2a71c38065e 133 MASK_GYRO_ANY_MOTION = 0x04,
joelvonrotz 0:a2a71c38065e 134 MASK_GYRO_HIGH_RATE = 0x08,
joelvonrotz 0:a2a71c38065e 135 MASK_ACCEL_HIGH_G = 0x20,
joelvonrotz 0:a2a71c38065e 136 MASK_ACCEL_ANY_MOTION = 0x40,
joelvonrotz 0:a2a71c38065e 137 MASK_ACCEL_NO_MOTION = 0x80,
joelvonrotz 0:a2a71c38065e 138 };
joelvonrotz 0:a2a71c38065e 139
joelvonrotz 0:a2a71c38065e 140 enum bno055_axis_sign_t
joelvonrotz 0:a2a71c38065e 141 {
joelvonrotz 0:a2a71c38065e 142 POSITIVE = 0,
joelvonrotz 0:a2a71c38065e 143 NEGATIVE
joelvonrotz 0:a2a71c38065e 144 };
joelvonrotz 0:a2a71c38065e 145
joelvonrotz 0:a2a71c38065e 146 enum bno055_powermode_t
joelvonrotz 0:a2a71c38065e 147 {
joelvonrotz 0:a2a71c38065e 148 POWER_NORMAL = 0,
joelvonrotz 0:a2a71c38065e 149 POWER_LOW_POWER_MODE,
joelvonrotz 0:a2a71c38065e 150 POWER_SUSPEND_MODE
joelvonrotz 0:a2a71c38065e 151 };
joelvonrotz 0:a2a71c38065e 152
joelvonrotz 0:a2a71c38065e 153 enum bno055_remap_options_t
joelvonrotz 0:a2a71c38065e 154 { //High-Byte = Remap, Low-Byte = Sign
joelvonrotz 0:a2a71c38065e 155 REMAP_OPTION_P0 = 0x2104,
joelvonrotz 0:a2a71c38065e 156 REMAP_OPTION_P1 = 0x2400, //Default
joelvonrotz 0:a2a71c38065e 157 REMAP_OPTION_P2 = 0x2406,
joelvonrotz 0:a2a71c38065e 158 REMAP_OPTION_P3 = 0x2102,
joelvonrotz 0:a2a71c38065e 159 REMAP_OPTION_P4 = 0x2403,
joelvonrotz 0:a2a71c38065e 160 REMAP_OPTION_P5 = 0x2101,
joelvonrotz 0:a2a71c38065e 161 REMAP_OPTION_P6 = 0x2107,
joelvonrotz 0:a2a71c38065e 162 REMAP_OPTION_P7 = 0x2405
joelvonrotz 0:a2a71c38065e 163 };
joelvonrotz 0:a2a71c38065e 164
joelvonrotz 0:a2a71c38065e 165 enum bno055_interrupt_status_bits_t
joelvonrotz 0:a2a71c38065e 166 {
joelvonrotz 0:a2a71c38065e 167 GYRO_ANY_MOTION = 0x04,
joelvonrotz 0:a2a71c38065e 168 GYRO_HIGH_RATE = 0x08,
joelvonrotz 0:a2a71c38065e 169 ACCEL_HIGH_G = 0x20,
joelvonrotz 0:a2a71c38065e 170 ACCEL_ANY_MOTION = 0x40,
joelvonrotz 0:a2a71c38065e 171 ACCEL_NO_MOTION = 0x80,
joelvonrotz 0:a2a71c38065e 172 };
joelvonrotz 0:a2a71c38065e 173
joelvonrotz 0:a2a71c38065e 174 enum bno055_page_t
joelvonrotz 0:a2a71c38065e 175 {
joelvonrotz 0:a2a71c38065e 176 PAGE_0 = 0,
joelvonrotz 0:a2a71c38065e 177 PAGE_1
joelvonrotz 0:a2a71c38065e 178 };
joelvonrotz 0:a2a71c38065e 179
joelvonrotz 0:a2a71c38065e 180 enum bno055_orientation_t
joelvonrotz 0:a2a71c38065e 181 {
joelvonrotz 0:a2a71c38065e 182 WINDOWS = 0x00,
joelvonrotz 0:a2a71c38065e 183 ANDROID = 0x80
joelvonrotz 0:a2a71c38065e 184 };
joelvonrotz 0:a2a71c38065e 185
joelvonrotz 0:a2a71c38065e 186 enum bno055_temperature_t
joelvonrotz 0:a2a71c38065e 187 {
joelvonrotz 0:a2a71c38065e 188 CELSIUS = 0x00,
joelvonrotz 0:a2a71c38065e 189 FAHRENHEIT = 0x10
joelvonrotz 0:a2a71c38065e 190 };
joelvonrotz 0:a2a71c38065e 191
joelvonrotz 0:a2a71c38065e 192 enum bno055_euler_t
joelvonrotz 0:a2a71c38065e 193 {
joelvonrotz 0:a2a71c38065e 194 DEGREES = 0x00,
joelvonrotz 0:a2a71c38065e 195 RADIANS = 0x04
joelvonrotz 0:a2a71c38065e 196 };
joelvonrotz 0:a2a71c38065e 197
joelvonrotz 0:a2a71c38065e 198 enum bno055_gyro_t
joelvonrotz 0:a2a71c38065e 199 {
joelvonrotz 0:a2a71c38065e 200 DEGREE_PER_SEC = 0x00,
joelvonrotz 0:a2a71c38065e 201 RADIAN_PER_SEC = 0x02
joelvonrotz 0:a2a71c38065e 202 };
joelvonrotz 0:a2a71c38065e 203
joelvonrotz 0:a2a71c38065e 204 enum bno055_acceleration_t
joelvonrotz 0:a2a71c38065e 205 {
joelvonrotz 0:a2a71c38065e 206 ACCELERATION = 0x00,
joelvonrotz 0:a2a71c38065e 207 MILLI_G_FORCE = 0x01
joelvonrotz 0:a2a71c38065e 208 };
joelvonrotz 0:a2a71c38065e 209
joelvonrotz 0:a2a71c38065e 210 enum bno055_length_t
joelvonrotz 0:a2a71c38065e 211 {
joelvonrotz 0:a2a71c38065e 212 LENGTH_1_BYTES = 1,
joelvonrotz 0:a2a71c38065e 213 LENGTH_2_BYTES = 2,
joelvonrotz 0:a2a71c38065e 214 LENGTH_6_BYTES = 6,
joelvonrotz 0:a2a71c38065e 215 LENGTH_8_BYTES = 8
joelvonrotz 0:a2a71c38065e 216 };
joelvonrotz 0:a2a71c38065e 217
joelvonrotz 0:a2a71c38065e 218 enum bno055_enable_t
joelvonrotz 0:a2a71c38065e 219 {
joelvonrotz 0:a2a71c38065e 220 DISABLE = 0,
joelvonrotz 0:a2a71c38065e 221 ENABLE = 1,
joelvonrotz 0:a2a71c38065e 222 };
joelvonrotz 0:a2a71c38065e 223
joelvonrotz 0:a2a71c38065e 224 #endif /* BNO055_DEFINITIONS_H */
joelvonrotz 0:a2a71c38065e 225
joelvonrotz 0:a2a71c38065e 226