Joel von Rotz / BNO055
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers bno055_definitions.h Source File

bno055_definitions.h

Go to the documentation of this file.
00001 /**
00002  * @brief 
00003  * 
00004  * @file bno055_definitions.h
00005  * @author Joel von Rotz
00006  * @date 18.07.2018
00007  */
00008 #ifndef BNO055_DEFINITIONS_H
00009 #define BNO055_DEFINITIONS_H
00010 
00011 #include "mbed.h"
00012 
00013 #define FREQ_400kHz             400000
00014 
00015 #define MASK_CALIBRATION_BITS   0x03
00016 
00017 #define BNO055_ID               0xA0
00018 #define FULLY_CALIBRATED        0xFF
00019 
00020 
00021 #define ACCELERATION_FORMAT             (0.01f)
00022 #define MILLI_G_FORCE_FORMAT            (1.0f)
00023 
00024 #define MICRO_TESLA_FORMAT              (0.0625f)
00025 
00026 #define GYRO_DEGREE_PER_SEC_FORMAT      (0.0625f)
00027 #define GYRO_RADIAN_PER_SEC_FORMAT      (1.0f/900.0f)
00028 
00029 #define QUATERNION_FORMAT               (0.00006103515625f)
00030 
00031 #define TEMPERATURE_CELSIUS_FORMAT      (1.0f)
00032 #define TEMPERATURE_FAHRENHEIT_FORMAT   (2.0f)
00033 
00034 #define EULER_DEGREES_FORMAT            (0.0625f)
00035 #define EULER_RADIANS_FORMAT            (1.0f/900.0f)
00036 
00037 
00038 enum bitshift_t
00039 {
00040     SHIFT_1BYTE         = 8,
00041     
00042     SHIFT_CALIB_SYSTEM  = 6,
00043     SHIFT_CALIB_GYRO    = 4,
00044     SHIFT_CALIB_ACCEL   = 2,
00045     
00046     //ACCELERATION INTERRUPT CONFIGURATION
00047     SHIFT_HIGH_AXIS     = 5,
00048     SHIFT_AM_NM_AXIS    = 2,
00049 
00050     //GYROSCOPE INTERRUPT CONFIGURATOIN
00051     SHIFT_HIGH_RATE_AXIS= 3,  
00052     SHIFT_AM_FILT       = 6,
00053     SHIFT_HIGH_RATE_FILT= 7,
00054 
00055     SHIFT_INT_GYRO_AM   = 2,
00056     SHIFT_INT_GYRO_HR   = 3,
00057     SHIFT_INT_ACCEL_HG  = 5,
00058     SHIFT_INT_ACCEL_AM  = 6,
00059     SHIFT_INT_ACCEL_NM  = 7,
00060 };
00061 
00062 enum bno055_axis_t
00063 {
00064     X_AXIS = 0x00,
00065     Y_AXIS = 0x02,
00066     Z_AXIS = 0x04
00067 };
00068 
00069 enum bno055_config_int_axis_t
00070 {
00071     NO_AXIS     = 0x00,      
00072     X_AXIS_ONLY = 0x01,     
00073     Y_AXIS_ONLY = 0x02,     
00074     Z_AXIS_ONLY = 0x04,     
00075     X_Y_AXIS    = 0x03,     
00076     X_Z_AXIS    = 0x05,     
00077     Y_Z_AXIS    = 0x06,     
00078     ALL_AXIS    = 0x07,     
00079 };
00080 
00081 enum bno055_any_motion_sample_t
00082 {
00083     AM_1_SAMPLE = 0,
00084     AM_2_SAMPLE = 1,
00085     AM_3_SAMPLE = 2,
00086     AM_4_SAMPLE = 3,
00087 };
00088 
00089 enum bno055_euler_axis_t
00090 {
00091     YAW     = 0x00,
00092     ROLL    = 0x02,
00093     PITCH   = 0x04,
00094 };
00095 
00096 enum bno055_quaternion_t
00097 {
00098     QUATERNION_W = 0x00,
00099     QUATERNION_X = 0x02,
00100     QUATERNION_Y = 0x04,
00101     QUATERNION_Z = 0x06,
00102 };
00103 
00104 enum bno055_opr_mode_t
00105 {
00106     OPERATION_MODE_CONFIGMODE   = 0x00,
00107     //NON-FUSION MODES
00108     OPERATION_MODE_ACCONLY      = 0x01, 
00109     OPERATION_MODE_MAGONLY      = 0x02,
00110     OPERATION_MODE_GYROONLY     = 0x03,
00111     OPERATION_MODE_ACCMAG       = 0x04,
00112     OPERATION_MODE_ACCGYRO      = 0x05,
00113     OPERATION_MODE_MAGGYRO      = 0x06,
00114     OPERATION_MODE_AMG          = 0x07,
00115     //FUSION MODES
00116     OPERATION_MODE_IMU          = 0x08,
00117     OPERATION_MODE_COMPASS      = 0x09,
00118     OPERATION_MODE_M4G          = 0x0A,
00119     OPERATION_MODE_NDOF_FMC_OFF = 0x0B,
00120     OPERATION_MODE_NDOF         = 0x0C
00121 };
00122 
00123 enum bno055_reg_mask_t
00124 {
00125     MASK_REMAP_AXIS     = 0x3F,
00126     MASK_SIGN_AXIS      = 0x07,
00127     MASK_OPERAITON_MODE = 0x0F,
00128     MASK_UNIT_SEL       = 0x97,
00129     MASK_POWER_MODE     = 0x03,
00130     MASK_SYSTEM_RESET   = 0x20,
00131     MASK_EXT_CLOCK      = 0x80,
00132 
00133     MASK_GYRO_ANY_MOTION  = 0x04,
00134     MASK_GYRO_HIGH_RATE   = 0x08,
00135     MASK_ACCEL_HIGH_G     = 0x20,
00136     MASK_ACCEL_ANY_MOTION = 0x40,
00137     MASK_ACCEL_NO_MOTION  = 0x80,
00138 };
00139 
00140 enum bno055_axis_sign_t
00141 {
00142     POSITIVE = 0,
00143     NEGATIVE
00144 };
00145 
00146 enum bno055_powermode_t
00147 {
00148     POWER_NORMAL = 0,
00149     POWER_LOW_POWER_MODE,
00150     POWER_SUSPEND_MODE
00151 };
00152 
00153 enum bno055_remap_options_t
00154 {                     //High-Byte = Remap, Low-Byte = Sign
00155     REMAP_OPTION_P0 =   0x2104,
00156     REMAP_OPTION_P1 =   0x2400,     //Default
00157     REMAP_OPTION_P2 =   0x2406,
00158     REMAP_OPTION_P3 =   0x2102,
00159     REMAP_OPTION_P4 =   0x2403,
00160     REMAP_OPTION_P5 =   0x2101,
00161     REMAP_OPTION_P6 =   0x2107,
00162     REMAP_OPTION_P7 =   0x2405
00163 };
00164 
00165 enum bno055_interrupt_status_bits_t
00166 {
00167     GYRO_ANY_MOTION  = 0x04,
00168     GYRO_HIGH_RATE   = 0x08,
00169     ACCEL_HIGH_G     = 0x20,
00170     ACCEL_ANY_MOTION = 0x40,
00171     ACCEL_NO_MOTION  = 0x80,
00172 };
00173 
00174 enum bno055_page_t
00175 {
00176     PAGE_0 = 0,
00177     PAGE_1
00178 };
00179 
00180 enum bno055_orientation_t
00181 {
00182     WINDOWS = 0x00,
00183     ANDROID = 0x80
00184 };
00185 
00186 enum bno055_temperature_t
00187 {
00188     CELSIUS     = 0x00,
00189     FAHRENHEIT  = 0x10
00190 };
00191 
00192 enum bno055_euler_t
00193 {
00194     DEGREES = 0x00,
00195     RADIANS = 0x04
00196 };
00197 
00198 enum bno055_gyro_t
00199 {
00200     DEGREE_PER_SEC = 0x00,
00201     RADIAN_PER_SEC = 0x02
00202 };
00203 
00204 enum bno055_acceleration_t
00205 {
00206     ACCELERATION  = 0x00,
00207     MILLI_G_FORCE = 0x01
00208 };
00209 
00210 enum bno055_length_t
00211 {
00212     LENGTH_1_BYTES  = 1,
00213     LENGTH_2_BYTES  = 2,
00214     LENGTH_6_BYTES  = 6,
00215     LENGTH_8_BYTES  = 8
00216 };
00217 
00218 enum bno055_enable_t
00219 {
00220     DISABLE = 0,
00221     ENABLE = 1,
00222 };
00223 
00224 #endif /* BNO055_DEFINITIONS_H */
00225 
00226