Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
bno055_definitions.h@0:a2a71c38065e, 2019-07-11 (annotated)
- Committer:
- joelvonrotz
- Date:
- Thu Jul 11 09:34:29 2019 +0000
- Revision:
- 0:a2a71c38065e
BNO055 library
Who changed what in which revision?
User | Revision | Line number | New 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 |