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.h
00001 /** \mainpage 00002 * 00003 **************************************************************************** 00004 * Copyright (C) 2015 - 2016 Bosch Sensortec GmbH 00005 * 00006 * File : bno055.h 00007 * 00008 * Date : 2016/03/14 00009 * 00010 * Revision : 2.0.3 $ 00011 * 00012 * Usage: Sensor Driver file for BNO055 sensor 00013 * 00014 **************************************************************************** 00015 * \section License 00016 * 00017 * Redistribution and use in source and binary forms, with or without 00018 * modification, are permitted provided that the following conditions are met: 00019 * 00020 * Redistributions of source code must retain the above copyright 00021 * notice, this list of conditions and the following disclaimer. 00022 * 00023 * Redistributions in binary form must reproduce the above copyright 00024 * notice, this list of conditions and the following disclaimer in the 00025 * documentation and/or other materials provided with the distribution. 00026 * 00027 * Neither the name of the copyright holder nor the names of the 00028 * contributors may be used to endorse or promote products derived from 00029 * this software without specific prior written permission. 00030 * 00031 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 00032 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR 00033 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 00034 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00035 * DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDER 00036 * OR CONTRIBUTORS BE LIABLE FOR ANY 00037 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, 00038 * OR CONSEQUENTIAL DAMAGES(INCLUDING, BUT NOT LIMITED TO, 00039 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 00040 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 00041 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 00042 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00043 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 00044 * ANY WAY OUT OF THE USE OF THIS 00045 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE 00046 * 00047 * The information provided is believed to be accurate and reliable. 00048 * The copyright holder assumes no responsibility 00049 * for the consequences of use 00050 * of such information nor for any infringement of patents or 00051 * other rights of third parties which may result from its use. 00052 * No license is granted by implication or otherwise under any patent or 00053 * patent rights of the copyright holder. 00054 **************************************************************************/ 00055 /*! \file BNO055.h 00056 \brief BNO055 Sensor Driver Support Header File */ 00057 00058 #ifndef __BNO055_H__ 00059 #define __BNO055_H__ 00060 /****************************************************************/ 00061 /**\name DATA TYPES INCLUDES */ 00062 /************************************************************/ 00063 /*! 00064 * @brief The following definition uses for define the data types 00065 * 00066 * @note While porting the API please consider the following 00067 * @note Please check the version of C standard 00068 * @note Are you using Linux platform 00069 */ 00070 00071 /*! 00072 * @brief For the Linux platform support 00073 * Please use the types.h for your data types definitions 00074 */ 00075 #ifdef __KERNEL__ 00076 00077 #include <linux/types.h> 00078 /* singed integer type*/ 00079 typedef int8_t s8;/**< used for signed 8bit */ 00080 typedef int16_t s16;/**< used for signed 16bit */ 00081 typedef int32_t s32;/**< used for signed 32bit */ 00082 typedef int64_t s64;/**< used for signed 64bit */ 00083 00084 typedef u_int8_t u8;/**< used for unsigned 8bit */ 00085 typedef u_int16_t u16;/**< used for unsigned 16bit */ 00086 typedef u_int32_t u32;/**< used for unsigned 32bit */ 00087 typedef u_int64_t u64;/**< used for unsigned 64bit */ 00088 00089 00090 00091 #else /* ! __KERNEL__ */ 00092 /********************************************************** 00093 * These definition uses for define the C 00094 * standard version data types 00095 ***********************************************************/ 00096 # if !defined(__STDC_VERSION__) 00097 00098 /************************************************ 00099 * compiler is C11 C standard 00100 ************************************************/ 00101 #if (__STDC_VERSION__ == 201112L) 00102 00103 /************************************************/ 00104 #include <stdint.h> 00105 /************************************************/ 00106 00107 /*unsigned integer types*/ 00108 typedef uint8_t u8;/**< used for unsigned 8bit */ 00109 typedef uint16_t u16;/**< used for unsigned 16bit */ 00110 typedef uint32_t u32;/**< used for unsigned 32bit */ 00111 typedef uint64_t u64;/**< used for unsigned 64bit */ 00112 00113 /*signed integer types*/ 00114 typedef int8_t s8;/**< used for signed 8bit */ 00115 typedef int16_t s16;/**< used for signed 16bit */ 00116 typedef int32_t s32;/**< used for signed 32bit */ 00117 typedef int64_t s64;/**< used for signed 64bit */ 00118 /************************************************ 00119 * compiler is C99 C standard 00120 ************************************************/ 00121 00122 #elif (__STDC_VERSION__ == 199901L) 00123 00124 /* stdint.h is a C99 supported c library. 00125 which is used to fixed the integer size*/ 00126 /************************************************/ 00127 #include <stdint.h> 00128 /************************************************/ 00129 00130 /*unsigned integer types*/ 00131 typedef uint8_t u8;/**< used for unsigned 8bit */ 00132 typedef uint16_t u16;/**< used for unsigned 16bit */ 00133 typedef uint32_t u32;/**< used for unsigned 32bit */ 00134 typedef uint64_t u64;/**< used for unsigned 64bit */ 00135 00136 /*signed integer types*/ 00137 typedef int8_t s8;/**< used for signed 8bit */ 00138 typedef int16_t s16;/**< used for signed 16bit */ 00139 typedef int32_t s32;/**< used for signed 32bit */ 00140 typedef int64_t s64;/**< used for signed 64bit */ 00141 /************************************************ 00142 * compiler is C89 or other C standard 00143 ************************************************/ 00144 00145 #else /* !defined(__STDC_VERSION__) */ 00146 /*! 00147 * @brief By default it is defined as 32 bit machine configuration 00148 * define your data types based on your 00149 * machine/compiler/controller configuration 00150 */ 00151 #define MACHINE_32_BIT 00152 00153 /*! @brief 00154 * If your machine support 16 bit 00155 * define the MACHINE_16_BIT 00156 */ 00157 #ifdef MACHINE_16_BIT 00158 #include <limits.h> 00159 /*signed integer types*/ 00160 typedef signed char s8;/**< used for signed 8bit */ 00161 typedef signed short int s16;/**< used for signed 16bit */ 00162 typedef signed long int s32;/**< used for signed 32bit */ 00163 00164 #if defined(LONG_MAX) && LONG_MAX == 0x7fffffffffffffffL 00165 typedef long int s64;/**< used for signed 64bit */ 00166 typedef unsigned long int u64;/**< used for unsigned 64bit */ 00167 #elif defined(LLONG_MAX) && (LLONG_MAX == 0x7fffffffffffffffLL) 00168 typedef long long int s64;/**< used for signed 64bit */ 00169 typedef unsigned long long int u64;/**< used for unsigned 64bit */ 00170 #else 00171 #warning Either the correct data type for signed 64 bit integer \ 00172 could not be found, or 64 bit integers are not supported in your environment. 00173 #warning If 64 bit integers are supported on your platform, \ 00174 please set s64 manually. 00175 #endif 00176 00177 /*unsigned integer types*/ 00178 typedef unsigned char u8;/**< used for unsigned 8bit */ 00179 typedef unsigned short int u16;/**< used for unsigned 16bit */ 00180 typedef unsigned long int u32;/**< used for unsigned 32bit */ 00181 00182 /* If your machine support 32 bit 00183 define the MACHINE_32_BIT*/ 00184 #elif defined MACHINE_32_BIT 00185 /*signed integer types*/ 00186 typedef signed char s8;/**< used for signed 8bit */ 00187 typedef signed short int s16;/**< used for signed 16bit */ 00188 typedef signed int s32;/**< used for signed 32bit */ 00189 typedef signed long long int s64;/**< used for signed 64bit */ 00190 00191 /*unsigned integer types*/ 00192 typedef unsigned char u8;/**< used for unsigned 8bit */ 00193 typedef unsigned short int u16;/**< used for unsigned 16bit */ 00194 typedef unsigned int u32;/**< used for unsigned 32bit */ 00195 typedef unsigned long long int u64;/**< used for unsigned 64bit */ 00196 00197 /* If your machine support 64 bit 00198 define the MACHINE_64_BIT*/ 00199 #elif defined MACHINE_64_BIT 00200 /*signed integer types*/ 00201 typedef signed char s8;/**< used for signed 8bit */ 00202 typedef signed short int s16;/**< used for signed 16bit */ 00203 typedef signed int s32;/**< used for signed 32bit */ 00204 typedef signed long int s64;/**< used for signed 64bit */ 00205 00206 /*unsigned integer types*/ 00207 typedef unsigned char u8;/**< used for unsigned 8bit */ 00208 typedef unsigned short int u16;/**< used for unsigned 16bit */ 00209 typedef unsigned int u32;/**< used for unsigned 32bit */ 00210 typedef unsigned long int u64;/**< used for unsigned 64bit */ 00211 00212 #else 00213 #warning The data types defined above which not supported \ 00214 define the data types manually 00215 #endif 00216 #endif 00217 00218 /*** This else will execute for the compilers 00219 * which are not supported the C standards 00220 * Like C89/C99/C11***/ 00221 #else 00222 /*! 00223 * @brief By default it is defined as 32 bit machine configuration 00224 * define your data types based on your 00225 * machine/compiler/controller configuration 00226 */ 00227 #define MACHINE_32_BIT 00228 00229 /* If your machine support 16 bit 00230 define the MACHINE_16_BIT*/ 00231 #ifdef MACHINE_16_BIT 00232 #include <limits.h> 00233 /*signed integer types*/ 00234 typedef signed char s8;/**< used for signed 8bit */ 00235 typedef signed short int s16;/**< used for signed 16bit */ 00236 typedef signed long int s32;/**< used for signed 32bit */ 00237 00238 #if defined(LONG_MAX) && LONG_MAX == 0x7fffffffffffffffL 00239 typedef long int s64;/**< used for signed 64bit */ 00240 typedef unsigned long int u64;/**< used for unsigned 64bit */ 00241 #elif defined(LLONG_MAX) && (LLONG_MAX == 0x7fffffffffffffffLL) 00242 typedef long long int s64;/**< used for signed 64bit */ 00243 typedef unsigned long long int u64;/**< used for unsigned 64bit */ 00244 #else 00245 #warning Either the correct data type for signed 64 bit integer \ 00246 could not be found, or 64 bit integers are not supported in your environment. 00247 #warning If 64 bit integers are supported on your platform, \ 00248 please set s64 manually. 00249 #endif 00250 00251 /*unsigned integer types*/ 00252 typedef unsigned char u8;/**< used for unsigned 8bit */ 00253 typedef unsigned short int u16;/**< used for unsigned 16bit */ 00254 typedef unsigned long int u32;/**< used for unsigned 32bit */ 00255 00256 /*! @brief If your machine support 32 bit 00257 define the MACHINE_32_BIT*/ 00258 #elif defined MACHINE_32_BIT 00259 /*signed integer types*/ 00260 typedef signed char s8;/**< used for signed 8bit */ 00261 typedef signed short int s16;/**< used for signed 16bit */ 00262 typedef signed int s32;/**< used for signed 32bit */ 00263 typedef signed long long int s64;/**< used for signed 64bit */ 00264 00265 /*unsigned integer types*/ 00266 typedef unsigned char u8;/**< used for unsigned 8bit */ 00267 typedef unsigned short int u16;/**< used for unsigned 16bit */ 00268 typedef unsigned int u32;/**< used for unsigned 32bit */ 00269 typedef unsigned long long int u64;/**< used for unsigned 64bit */ 00270 00271 /* If your machine support 64 bit 00272 define the MACHINE_64_BIT*/ 00273 #elif defined MACHINE_64_BIT 00274 /*signed integer types*/ 00275 typedef signed char s8;/**< used for signed 8bit */ 00276 typedef signed short int s16;/**< used for signed 16bit */ 00277 typedef signed int s32;/**< used for signed 32bit */ 00278 typedef signed long int s64;/**< used for signed 64bit */ 00279 00280 /*unsigned integer types*/ 00281 typedef unsigned char u8;/**< used for unsigned 8bit */ 00282 typedef unsigned short int u16;/**< used for unsigned 16bit */ 00283 typedef unsigned int u32;/**< used for unsigned 32bit */ 00284 typedef unsigned long int u64;/**< used for unsigned 64bit */ 00285 00286 #else 00287 #warning The data types defined above which not supported \ 00288 define the data types manually 00289 #endif 00290 #endif 00291 #endif 00292 /***************************************************************/ 00293 /**\name BUS READ AND WRITE FUNCTIONS */ 00294 /***************************************************************/ 00295 #define BNO055_WR_FUNC_PTR s8 (*bus_write)\ 00296 (u8, u8, u8 *, u8) 00297 00298 #define BNO055_BUS_WRITE_FUNC(dev_addr, reg_addr, reg_data, wr_len)\ 00299 bus_write(dev_addr, reg_addr, reg_data, wr_len) 00300 00301 #define BNO055_RD_FUNC_PTR s8 \ 00302 (*bus_read)(u8, u8, u8 *, u8) 00303 00304 #define BNO055_BUS_READ_FUNC(dev_addr, reg_addr, reg_data, r_len)\ 00305 bus_read(dev_addr, reg_addr, reg_data, r_len) 00306 00307 #define BNO055_DELAY_RETURN_TYPE void 00308 00309 #define BNO055_DELAY_PARAM_TYPES u32 00310 00311 #define BNO055_DELAY_FUNC(delay_in_msec)\ 00312 delay_func(delay_in_msec) 00313 00314 /********************************************************/ 00315 /**\name I2C ADDRESS DEFINITION FOR BNO055 */ 00316 /********************************************************/ 00317 /* bno055 I2C Address */ 00318 #define BNO055_I2C_ADDR1 (0x28) 00319 #define BNO055_I2C_ADDR2 (0x29) 00320 00321 /***************************************************/ 00322 /**\name REGISTER ADDRESS DEFINITION */ 00323 /***************************************************/ 00324 /* Page id register definition*/ 00325 #define BNO055_PAGE_ID_ADDR (0X07) 00326 00327 /* PAGE0 REGISTER DEFINITION START*/ 00328 #define BNO055_CHIP_ID_ADDR (0x00) 00329 #define BNO055_ACCEL_REV_ID_ADDR (0x01) 00330 #define BNO055_MAG_REV_ID_ADDR (0x02) 00331 #define BNO055_GYRO_REV_ID_ADDR (0x03) 00332 #define BNO055_SW_REV_ID_LSB_ADDR (0x04) 00333 #define BNO055_SW_REV_ID_MSB_ADDR (0x05) 00334 #define BNO055_BL_REV_ID_ADDR (0X06) 00335 00336 /* Accel data register*/ 00337 #define BNO055_ACCEL_DATA_X_LSB_ADDR (0X08) 00338 #define BNO055_ACCEL_DATA_X_MSB_ADDR (0X09) 00339 #define BNO055_ACCEL_DATA_Y_LSB_ADDR (0X0A) 00340 #define BNO055_ACCEL_DATA_Y_MSB_ADDR (0X0B) 00341 #define BNO055_ACCEL_DATA_Z_LSB_ADDR (0X0C) 00342 #define BNO055_ACCEL_DATA_Z_MSB_ADDR (0X0D) 00343 00344 /*Mag data register*/ 00345 #define BNO055_MAG_DATA_X_LSB_ADDR (0X0E) 00346 #define BNO055_MAG_DATA_X_MSB_ADDR (0X0F) 00347 #define BNO055_MAG_DATA_Y_LSB_ADDR (0X10) 00348 #define BNO055_MAG_DATA_Y_MSB_ADDR (0X11) 00349 #define BNO055_MAG_DATA_Z_LSB_ADDR (0X12) 00350 #define BNO055_MAG_DATA_Z_MSB_ADDR (0X13) 00351 00352 /*Gyro data registers*/ 00353 #define BNO055_GYRO_DATA_X_LSB_ADDR (0X14) 00354 #define BNO055_GYRO_DATA_X_MSB_ADDR (0X15) 00355 #define BNO055_GYRO_DATA_Y_LSB_ADDR (0X16) 00356 #define BNO055_GYRO_DATA_Y_MSB_ADDR (0X17) 00357 #define BNO055_GYRO_DATA_Z_LSB_ADDR (0X18) 00358 #define BNO055_GYRO_DATA_Z_MSB_ADDR (0X19) 00359 00360 /*Euler data registers*/ 00361 #define BNO055_EULER_H_LSB_ADDR (0X1A) 00362 #define BNO055_EULER_H_MSB_ADDR (0X1B) 00363 00364 #define BNO055_EULER_R_LSB_ADDR (0X1C) 00365 #define BNO055_EULER_R_MSB_ADDR (0X1D) 00366 00367 #define BNO055_EULER_P_LSB_ADDR (0X1E) 00368 #define BNO055_EULER_P_MSB_ADDR (0X1F) 00369 00370 /*Quaternion data registers*/ 00371 #define BNO055_QUATERNION_DATA_W_LSB_ADDR (0X20) 00372 #define BNO055_QUATERNION_DATA_W_MSB_ADDR (0X21) 00373 #define BNO055_QUATERNION_DATA_X_LSB_ADDR (0X22) 00374 #define BNO055_QUATERNION_DATA_X_MSB_ADDR (0X23) 00375 #define BNO055_QUATERNION_DATA_Y_LSB_ADDR (0X24) 00376 #define BNO055_QUATERNION_DATA_Y_MSB_ADDR (0X25) 00377 #define BNO055_QUATERNION_DATA_Z_LSB_ADDR (0X26) 00378 #define BNO055_QUATERNION_DATA_Z_MSB_ADDR (0X27) 00379 00380 /* Linear acceleration data registers*/ 00381 #define BNO055_LINEAR_ACCEL_DATA_X_LSB_ADDR (0X28) 00382 #define BNO055_LINEAR_ACCEL_DATA_X_MSB_ADDR (0X29) 00383 #define BNO055_LINEAR_ACCEL_DATA_Y_LSB_ADDR (0X2A) 00384 #define BNO055_LINEAR_ACCEL_DATA_Y_MSB_ADDR (0X2B) 00385 #define BNO055_LINEAR_ACCEL_DATA_Z_LSB_ADDR (0X2C) 00386 #define BNO055_LINEAR_ACCEL_DATA_Z_MSB_ADDR (0X2D) 00387 00388 /*Gravity data registers*/ 00389 #define BNO055_GRAVITY_DATA_X_LSB_ADDR (0X2E) 00390 #define BNO055_GRAVITY_DATA_X_MSB_ADDR (0X2F) 00391 #define BNO055_GRAVITY_DATA_Y_LSB_ADDR (0X30) 00392 #define BNO055_GRAVITY_DATA_Y_MSB_ADDR (0X31) 00393 #define BNO055_GRAVITY_DATA_Z_LSB_ADDR (0X32) 00394 #define BNO055_GRAVITY_DATA_Z_MSB_ADDR (0X33) 00395 00396 /* Temperature data register*/ 00397 #define BNO055_TEMP_ADDR (0X34) 00398 00399 /* Status registers*/ 00400 #define BNO055_CALIB_STAT_ADDR (0X35) 00401 #define BNO055_SELFTEST_RESULT_ADDR (0X36) 00402 #define BNO055_INTR_STAT_ADDR (0X37) 00403 #define BNO055_SYS_CLK_STAT_ADDR (0X38) 00404 #define BNO055_SYS_STAT_ADDR (0X39) 00405 #define BNO055_SYS_ERR_ADDR (0X3A) 00406 00407 /* Unit selection register*/ 00408 #define BNO055_UNIT_SEL_ADDR (0X3B) 00409 #define BNO055_DATA_SELECT_ADDR (0X3C) 00410 00411 /* Mode registers*/ 00412 #define BNO055_OPR_MODE_ADDR (0X3D) 00413 #define BNO055_PWR_MODE_ADDR (0X3E) 00414 00415 #define BNO055_SYS_TRIGGER_ADDR (0X3F) 00416 #define BNO055_TEMP_SOURCE_ADDR (0X40) 00417 /* Axis remap registers*/ 00418 #define BNO055_AXIS_MAP_CONFIG_ADDR (0X41) 00419 #define BNO055_AXIS_MAP_SIGN_ADDR (0X42) 00420 00421 /* SIC registers*/ 00422 #define BNO055_SIC_MATRIX_0_LSB_ADDR (0X43) 00423 #define BNO055_SIC_MATRIX_0_MSB_ADDR (0X44) 00424 #define BNO055_SIC_MATRIX_1_LSB_ADDR (0X45) 00425 #define BNO055_SIC_MATRIX_1_MSB_ADDR (0X46) 00426 #define BNO055_SIC_MATRIX_2_LSB_ADDR (0X47) 00427 #define BNO055_SIC_MATRIX_2_MSB_ADDR (0X48) 00428 #define BNO055_SIC_MATRIX_3_LSB_ADDR (0X49) 00429 #define BNO055_SIC_MATRIX_3_MSB_ADDR (0X4A) 00430 #define BNO055_SIC_MATRIX_4_LSB_ADDR (0X4B) 00431 #define BNO055_SIC_MATRIX_4_MSB_ADDR (0X4C) 00432 #define BNO055_SIC_MATRIX_5_LSB_ADDR (0X4D) 00433 #define BNO055_SIC_MATRIX_5_MSB_ADDR (0X4E) 00434 #define BNO055_SIC_MATRIX_6_LSB_ADDR (0X4F) 00435 #define BNO055_SIC_MATRIX_6_MSB_ADDR (0X50) 00436 #define BNO055_SIC_MATRIX_7_LSB_ADDR (0X51) 00437 #define BNO055_SIC_MATRIX_7_MSB_ADDR (0X52) 00438 #define BNO055_SIC_MATRIX_8_LSB_ADDR (0X53) 00439 #define BNO055_SIC_MATRIX_8_MSB_ADDR (0X54) 00440 00441 /* Accelerometer Offset registers*/ 00442 #define BNO055_ACCEL_OFFSET_X_LSB_ADDR (0X55) 00443 #define BNO055_ACCEL_OFFSET_X_MSB_ADDR (0X56) 00444 #define BNO055_ACCEL_OFFSET_Y_LSB_ADDR (0X57) 00445 #define BNO055_ACCEL_OFFSET_Y_MSB_ADDR (0X58) 00446 #define BNO055_ACCEL_OFFSET_Z_LSB_ADDR (0X59) 00447 #define BNO055_ACCEL_OFFSET_Z_MSB_ADDR (0X5A) 00448 00449 /* Magnetometer Offset registers*/ 00450 #define BNO055_MAG_OFFSET_X_LSB_ADDR (0X5B) 00451 #define BNO055_MAG_OFFSET_X_MSB_ADDR (0X5C) 00452 #define BNO055_MAG_OFFSET_Y_LSB_ADDR (0X5D) 00453 #define BNO055_MAG_OFFSET_Y_MSB_ADDR (0X5E) 00454 #define BNO055_MAG_OFFSET_Z_LSB_ADDR (0X5F) 00455 #define BNO055_MAG_OFFSET_Z_MSB_ADDR (0X60) 00456 00457 /* Gyroscope Offset registers*/ 00458 #define BNO055_GYRO_OFFSET_X_LSB_ADDR (0X61) 00459 #define BNO055_GYRO_OFFSET_X_MSB_ADDR (0X62) 00460 #define BNO055_GYRO_OFFSET_Y_LSB_ADDR (0X63) 00461 #define BNO055_GYRO_OFFSET_Y_MSB_ADDR (0X64) 00462 #define BNO055_GYRO_OFFSET_Z_LSB_ADDR (0X65) 00463 #define BNO055_GYRO_OFFSET_Z_MSB_ADDR (0X66) 00464 00465 /* Radius registers*/ 00466 #define BNO055_ACCEL_RADIUS_LSB_ADDR (0X67) 00467 #define BNO055_ACCEL_RADIUS_MSB_ADDR (0X68) 00468 #define BNO055_MAG_RADIUS_LSB_ADDR (0X69) 00469 #define BNO055_MAG_RADIUS_MSB_ADDR (0X6A) 00470 /* PAGE0 REGISTERS DEFINITION END*/ 00471 00472 /* PAGE1 REGISTERS DEFINITION START*/ 00473 /* Configuration registers*/ 00474 #define BNO055_ACCEL_CONFIG_ADDR (0X08) 00475 #define BNO055_MAG_CONFIG_ADDR (0X09) 00476 #define BNO055_GYRO_CONFIG_ADDR (0X0A) 00477 #define BNO055_GYRO_MODE_CONFIG_ADDR (0X0B) 00478 #define BNO055_ACCEL_SLEEP_CONFIG_ADDR (0X0C) 00479 #define BNO055_GYRO_SLEEP_CONFIG_ADDR (0X0D) 00480 #define BNO055_MAG_SLEEP_CONFIG_ADDR (0x0E) 00481 00482 /* Interrupt registers*/ 00483 #define BNO055_INT_MASK_ADDR (0X0F) 00484 #define BNO055_INT_ADDR (0X10) 00485 #define BNO055_ACCEL_ANY_MOTION_THRES_ADDR (0X11) 00486 #define BNO055_ACCEL_INTR_SETTINGS_ADDR (0X12) 00487 #define BNO055_ACCEL_HIGH_G_DURN_ADDR (0X13) 00488 #define BNO055_ACCEL_HIGH_G_THRES_ADDR (0X14) 00489 #define BNO055_ACCEL_NO_MOTION_THRES_ADDR (0X15) 00490 #define BNO055_ACCEL_NO_MOTION_SET_ADDR (0X16) 00491 #define BNO055_GYRO_INTR_SETING_ADDR (0X17) 00492 #define BNO055_GYRO_HIGHRATE_X_SET_ADDR (0X18) 00493 #define BNO055_GYRO_DURN_X_ADDR (0X19) 00494 #define BNO055_GYRO_HIGHRATE_Y_SET_ADDR (0X1A) 00495 #define BNO055_GYRO_DURN_Y_ADDR (0X1B) 00496 #define BNO055_GYRO_HIGHRATE_Z_SET_ADDR (0X1C) 00497 #define BNO055_GYRO_DURN_Z_ADDR (0X1D) 00498 #define BNO055_GYRO_ANY_MOTION_THRES_ADDR (0X1E) 00499 #define BNO055_GYRO_ANY_MOTION_SET_ADDR (0X1F) 00500 /* PAGE1 REGISTERS DEFINITION END*/ 00501 00502 00503 #define BNO055_MDELAY_DATA_TYPE u32 00504 00505 /*< This refers BNO055 return type as s8 */ 00506 #define BNO055_RETURN_FUNCTION_TYPE s8 00507 00508 /* Compile switch definition for Float and double*/ 00509 #define BNO055_FLOAT_ENABLE 00510 #define BNO055_DOUBLE_ENABLE 00511 /**************************************************************/ 00512 /**\name STRUCTURE DEFINITIONS */ 00513 /**************************************************************/ 00514 /*! 00515 * @brief bno055 struct 00516 */ 00517 struct bno055_t { 00518 u8 chip_id;/**< chip_id of bno055 */ 00519 u16 sw_rev_id;/**< software revision id of bno055 */ 00520 u8 page_id;/**< page_id of bno055 */ 00521 u8 accel_rev_id;/**< accel revision id of bno055 */ 00522 u8 mag_rev_id;/**< mag revision id of bno055 */ 00523 u8 gyro_rev_id;/**< gyro revision id of bno055 */ 00524 u8 bl_rev_id;/**< boot loader revision id of bno055 */ 00525 u8 dev_addr;/**< i2c device address of bno055 */ 00526 BNO055_WR_FUNC_PTR;/**< bus write function pointer */ 00527 BNO055_RD_FUNC_PTR;/**<bus read function pointer */ 00528 void (*delay_msec)(BNO055_MDELAY_DATA_TYPE);/**< delay function pointer */ 00529 }; 00530 /*! 00531 * @brief struct for accel data read from registers 00532 */ 00533 struct bno055_accel_t { 00534 s16 x;/**< accel x data */ 00535 s16 y;/**< accel y data */ 00536 s16 z;/**< accel z data */ 00537 }; 00538 /*! 00539 * @brief struct for Mag data read from registers 00540 */ 00541 struct bno055_mag_t { 00542 s16 x;/**< mag x data */ 00543 s16 y;/**< mag y data */ 00544 s16 z;/**< mag z data */ 00545 }; 00546 /*! 00547 * @brief struct for Gyro data read from registers 00548 */ 00549 struct bno055_gyro_t { 00550 s16 x;/**< gyro x data */ 00551 s16 y;/**< gyro y data */ 00552 s16 z;/**< gyro z data */ 00553 }; 00554 /*! 00555 * @brief struct for Euler data read from registers 00556 */ 00557 struct bno055_euler_t { 00558 s16 h;/**< Euler h data */ 00559 s16 r;/**< Euler r data */ 00560 s16 p;/**< Euler p data */ 00561 }; 00562 /*! 00563 * @brief struct for Quaternion data read from registers 00564 */ 00565 struct bno055_quaternion_t { 00566 s16 w;/**< Quaternion w data */ 00567 s16 x;/**< Quaternion x data */ 00568 s16 y;/**< Quaternion y data */ 00569 s16 z;/**< Quaternion z data */ 00570 }; 00571 /*! 00572 * @brief struct for Linear Accel data read from registers 00573 */ 00574 struct bno055_linear_accel_t { 00575 s16 x; /**< Linear Accel x data */ 00576 s16 y; /**< Linear Accel y data */ 00577 s16 z; /**< Linear Accel z data */ 00578 }; 00579 /*! 00580 * @brief struct for Gravity data read from registers 00581 */ 00582 struct bno055_gravity_t { 00583 s16 x;/**< Gravity x data */ 00584 s16 y;/**< Gravity y data */ 00585 s16 z;/**< Gravity z data */ 00586 }; 00587 #ifdef BNO055_DOUBLE_ENABLE 00588 /*! 00589 * @brief struct for Accel-output data of precision double 00590 */ 00591 struct bno055_accel_double_t { 00592 double x;/**< Accel x double data */ 00593 double y;/**< Accel y double data */ 00594 double z;/**< Accel z double data */ 00595 }; 00596 /*! 00597 * @brief struct for Mag-output data of precision double 00598 */ 00599 struct bno055_mag_double_t { 00600 double x;/**< Mag x double data */ 00601 double y;/**< Mag y double data */ 00602 double z;/**< Mag z double data */ 00603 }; 00604 /*! 00605 * @brief struct for Gyro-output data of precision double 00606 */ 00607 struct bno055_gyro_double_t { 00608 double x;/**< Gyro x double data */ 00609 double y;/**< Gyro y double data */ 00610 double z;/**< Gyro z double data */ 00611 }; 00612 /*! 00613 * @brief struct for Euler-output data of precision double 00614 */ 00615 struct bno055_euler_double_t { 00616 double h;/**< Euler h double data */ 00617 double r;/**< Euler r double data */ 00618 double p;/**< Euler p double data */ 00619 }; 00620 /*! 00621 * @brief struct for Linear Accel-output data of precision double 00622 */ 00623 struct bno055_linear_accel_double_t { 00624 double x;/**< linear accel x double data */ 00625 double y;/**< linear accel y double data */ 00626 double z;/**< linear accel z double data */ 00627 }; 00628 /*! 00629 * @brief struct for Gravity-output data of precision double 00630 */ 00631 struct bno055_gravity_double_t { 00632 double x;/**< Gravity x double data */ 00633 double y;/**< Gravity y double data */ 00634 double z;/**< Gravity z double data */ 00635 }; 00636 #endif 00637 #ifdef BNO055_FLOAT_ENABLE 00638 /*! 00639 * @brief struct for Accel-output data of precision float 00640 */ 00641 struct bno055_accel_float_t { 00642 float x;/**< accel x float data */ 00643 float y;/**< accel y float data */ 00644 float z;/**< accel z float data */ 00645 }; 00646 /*! 00647 * @brief struct for Mag-output data of precision float 00648 */ 00649 struct bno055_mag_float_t { 00650 float x;/**< Mag x float data */ 00651 float y;/**< Mag y float data */ 00652 float z;/**< Mag z float data */ 00653 }; 00654 /*! 00655 * @brief struct for Gyro-output data of precision float 00656 */ 00657 struct bno055_gyro_float_t { 00658 float x;/**< Gyro x float data */ 00659 float y;/**< Gyro y float data */ 00660 float z;/**< Gyro z float data */ 00661 }; 00662 /*! 00663 * @brief struct for Euler-output data of precision float 00664 */ 00665 struct bno055_euler_float_t { 00666 float h;/**< Euler h float data */ 00667 float r;/**< Euler r float data */ 00668 float p;/**< Euler p float data */ 00669 }; 00670 /*! 00671 * @brief struct for Linear accel-output data of precision float 00672 */ 00673 struct bno055_linear_accel_float_t { 00674 float x;/**< Linear accel x float data */ 00675 float y;/**< Linear accel y float data */ 00676 float z;/**< Linear accel z float data */ 00677 }; 00678 /*! 00679 * @brief struct for Gravity-output data of precision float 00680 */ 00681 struct bno055_gravity_float_t { 00682 float x;/**< Gravity x float data */ 00683 float y;/**< Gravity y float data */ 00684 float z;/**< Gravity z float data */ 00685 }; 00686 #endif 00687 /*! 00688 * @brief struct for Accel offset 00689 */ 00690 struct bno055_accel_offset_t { 00691 s16 x;/**< Accel offset x data */ 00692 s16 y;/**< Accel offset y data */ 00693 s16 z;/**< Accel offset z data */ 00694 s16 r;/**< Accel radius r data */ 00695 }; 00696 /*! 00697 * @brief struct for Gyro offset 00698 */ 00699 struct bno055_gyro_offset_t { 00700 s16 x;/**< Gyro offset x data */ 00701 s16 y;/**< Gyro offset y data */ 00702 s16 z;/**< Gyro offset z data */ 00703 }; 00704 /*! 00705 * @brief struct for Mag offset 00706 */ 00707 struct bno055_mag_offset_t { 00708 s16 x;/**< Mag offset x data */ 00709 s16 y;/**< Mag offset y data */ 00710 s16 z;/**< Mag offset z data */ 00711 s16 r;/**< Mag radius x data */ 00712 }; 00713 /*! 00714 * @brief struct for soft iron calibration matrix 00715 */ 00716 struct bno055_sic_matrix_t { 00717 s16 sic_0;/**< soft iron calibration matrix 0 data */ 00718 s16 sic_1;/**< soft iron calibration matrix 1 data */ 00719 s16 sic_2;/**< soft iron calibration matrix 2 data */ 00720 s16 sic_3;/**< soft iron calibration matrix 3 data */ 00721 s16 sic_4;/**< soft iron calibration matrix 4 data */ 00722 s16 sic_5;/**< soft iron calibration matrix 5 data */ 00723 s16 sic_6;/**< soft iron calibration matrix 6 data */ 00724 s16 sic_7;/**< soft iron calibration matrix 7 data */ 00725 s16 sic_8;/**< soft iron calibration matrix 8 data */ 00726 }; 00727 /***************************************************/ 00728 /**\name CONSTANT DEFINITIONS */ 00729 /***************************************************/ 00730 #define BNO055_INIT_VALUE ((u8)0) 00731 #define BNO055_GEN_READ_WRITE_LENGTH ((u8)1) 00732 #define BNO055_LSB_MSB_READ_LENGTH ((u8)2) 00733 #define BNO055_MAG_POWER_MODE_RANGE ((u8)4) 00734 #define BNO055_MAG_OPR_MODE_RANGE ((u8)5) 00735 #define BNO055_ACCEL_POWER_MODE_RANGE ((u8)6) 00736 #define BNO055_ACCEL_SLEEP_DURATION_RANGE ((u8)16) 00737 #define BNO055_GYRO_AUTO_SLEEP_DURATION_RANGE ((u8)8) 00738 #define BNO055_ACCEL_GYRO_BW_RANGE ((u8)8) 00739 #define BNO055_MAG_OUTPUT_RANGE ((u8)8) 00740 #define BNO055_ACCEL_RANGE ((u8)5) 00741 #define BNO055_SHIFT_EIGHT_BITS ((u8)8) 00742 #define BNO055_GYRO_RANGE ((u8)5) 00743 #define BNO055_ACCEL_SLEEP_MODE_RANGE ((u8)2) 00744 /* BNO055 API BNO055_ERROR codes */ 00745 #define BNO055_E_NULL_PTR ((s8)-127) 00746 #define BNO055_OUT_OF_RANGE ((s8)-2) 00747 #define BNO055_SUCCESS ((u8)0) 00748 #define BNO055_ERROR ((s8)-1) 00749 00750 /* Selection for bit enable and disable */ 00751 #define BNO055_BIT_ENABLE (0x01) 00752 #define BNO055_BIT_DISABLE (0x00) 00753 00754 /* Page ID */ 00755 #define BNO055_PAGE_ZERO (0X00) 00756 #define BNO055_PAGE_ONE (0X01) 00757 00758 /* Enable the temperature source */ 00759 #define BNO055_ACCEL_TEMP_EN (0x00) 00760 #define BNO055_GYRO_TEMP_EN (0x01) 00761 #define BNO055_MCU_TEMP_EN (0x03) 00762 00763 /*Accel unit*/ 00764 #define BNO055_ACCEL_UNIT_MSQ (0x00) 00765 #define BNO055_ACCEL_UNIT_MG (0x01) 00766 00767 /*Gyro unit*/ 00768 #define BNO055_GYRO_UNIT_DPS (0x00) 00769 #define BNO055_GYRO_UNIT_RPS (0x01) 00770 00771 /* Euler unit*/ 00772 #define BNO055_EULER_UNIT_DEG (0x00) 00773 #define BNO055_EULER_UNIT_RAD (0x01) 00774 00775 /*Temperature unit*/ 00776 #define BNO055_TEMP_UNIT_CELSIUS (0x00) 00777 #define BNO055_TEMP_UNIT_FAHRENHEIT (0x01) 00778 00779 /*Accel division factor*/ 00780 #define BNO055_ACCEL_DIV_MSQ (100.0) 00781 #define BNO055_ACCEL_DIV_MG (1) 00782 00783 /*Mag division factor*/ 00784 #define BNO055_MAG_DIV_UT (16.0) 00785 00786 /*Gyro division factor*/ 00787 #define BNO055_GYRO_DIV_DPS (16.0) 00788 #define BNO055_GYRO_DIV_RPS (900.0) 00789 00790 /*Euler division factor*/ 00791 #define BNO055_EULER_DIV_DEG (16.0) 00792 #define BNO055_EULER_DIV_RAD (900.0) 00793 00794 /*Linear accel division factor*/ 00795 #define BNO055_LINEAR_ACCEL_DIV_MSQ (100.0) 00796 00797 /*Gravity accel division factor*/ 00798 #define BNO055_GRAVITY_DIV_MSQ (100.0) 00799 00800 /* Temperature division factor*/ 00801 #define BNO055_TEMP_DIV_FAHRENHEIT (0.5) 00802 #define BNO055_TEMP_DIV_CELSIUS (1) 00803 00804 #define BNO055_MODE_SWITCHING_DELAY (600) 00805 #define BNO055_CONFIG_MODE_SWITCHING_DELAY ((u8)20) 00806 00807 00808 00809 /* Operation mode settings*/ 00810 #define BNO055_OPERATION_MODE_CONFIG (0X00) 00811 #define BNO055_OPERATION_MODE_ACCONLY (0X01) 00812 #define BNO055_OPERATION_MODE_MAGONLY (0X02) 00813 #define BNO055_OPERATION_MODE_GYRONLY (0X03) 00814 #define BNO055_OPERATION_MODE_ACCMAG (0X04) 00815 #define BNO055_OPERATION_MODE_ACCGYRO (0X05) 00816 #define BNO055_OPERATION_MODE_MAGGYRO (0X06) 00817 #define BNO055_OPERATION_MODE_AMG (0X07) 00818 #define BNO055_OPERATION_MODE_IMUPLUS (0X08) 00819 #define BNO055_OPERATION_MODE_COMPASS (0X09) 00820 #define BNO055_OPERATION_MODE_M4G (0X0A) 00821 #define BNO055_OPERATION_MODE_NDOF_FMC_OFF (0X0B) 00822 #define BNO055_OPERATION_MODE_NDOF (0X0C) 00823 00824 /* Power mode*/ 00825 #define BNO055_POWER_MODE_NORMAL (0X00) 00826 #define BNO055_POWER_MODE_LOWPOWER (0X01) 00827 #define BNO055_POWER_MODE_SUSPEND (0X02) 00828 00829 /* PAGE-1 definitions*/ 00830 /* Accel Range */ 00831 00832 #define BNO055_ACCEL_RANGE_2G (0X00) 00833 #define BNO055_ACCEL_RANGE_4G (0X01) 00834 #define BNO055_ACCEL_RANGE_8G (0X02) 00835 #define BNO055_ACCEL_RANGE_16G (0X03) 00836 00837 /* Accel Bandwidth*/ 00838 #define BNO055_ACCEL_BW_7_81HZ (0x00) 00839 #define BNO055_ACCEL_BW_15_63HZ (0x01) 00840 #define BNO055_ACCEL_BW_31_25HZ (0x02) 00841 #define BNO055_ACCEL_BW_62_5HZ (0X03) 00842 #define BNO055_ACCEL_BW_125HZ (0X04) 00843 #define BNO055_ACCEL_BW_250HZ (0X05) 00844 #define BNO055_ACCEL_BW_500HZ (0X06) 00845 #define BNO055_ACCEL_BW_1000HZ (0X07) 00846 00847 /* Accel Power mode*/ 00848 #define BNO055_ACCEL_NORMAL (0X00) 00849 #define BNO055_ACCEL_SUSPEND (0X01) 00850 #define BNO055_ACCEL_LOWPOWER_1 (0X02) 00851 #define BNO055_ACCEL_STANDBY (0X03) 00852 #define BNO055_ACCEL_LOWPOWER_2 (0X04) 00853 #define BNO055_ACCEL_DEEPSUSPEND (0X05) 00854 00855 /* Mag data output rate*/ 00856 #define BNO055_MAG_DATA_OUTRATE_2HZ (0X00) 00857 #define BNO055_MAG_DATA_OUTRATE_6HZ (0X01) 00858 #define BNO055_MAG_DATA_OUTRATE_8HZ (0X02) 00859 #define BNO055_MAG_DATA_OUTRATE_10HZ (0X03) 00860 #define BNO055_MAG_DATA_OUTRATE_15HZ (0X04) 00861 #define BNO055_MAG_DATA_OUTRATE_20HZ (0X05) 00862 #define BNO055_MAG_DATA_OUTRATE_25HZ (0X06) 00863 #define BNO055_MAG_DATA_OUTRATE_30HZ (0X07) 00864 00865 /* Mag Operation mode*/ 00866 #define BNO055_MAG_OPERATION_MODE_LOWPOWER (0X00) 00867 #define BNO055_MAG_OPERATION_MODE_REGULAR (0X01) 00868 #define BNO055_MAG_OPERATION_MODE_ENHANCED_REGULAR (0X02) 00869 #define BNO055_MAG_OPERATION_MODE_HIGH_ACCURACY (0X03) 00870 00871 /* Mag power mode*/ 00872 #define BNO055_MAG_POWER_MODE_NORMAL (0X00) 00873 #define BNO055_MAG_POWER_MODE_SLEEP (0X01) 00874 #define BNO055_MAG_POWER_MODE_SUSPEND (0X02) 00875 #define BNO055_MAG_POWER_MODE_FORCE_MODE (0X03) 00876 00877 /* Gyro range*/ 00878 #define BNO055_GYRO_RANGE_2000DPS (0x00) 00879 #define BNO055_GYRO_RANGE_1000DPS (0x01) 00880 #define BNO055_GYRO_RANGE_500DPS (0x02) 00881 #define BNO055_GYRO_RANGE_250DPS (0x03) 00882 #define BNO055_GYRO_RANGE_125DPS (0x04) 00883 00884 /* Gyro Bandwidth*/ 00885 #define BNO055_GYRO_BW_523HZ (0x00) 00886 #define BNO055_GYRO_BW_230HZ (0x01) 00887 #define BNO055_GYRO_BW_116HZ (0x02) 00888 #define BNO055_GYRO_BW_47HZ (0x03) 00889 #define BNO055_GYRO_BW_23HZ (0x04) 00890 #define BNO055_GYRO_BW_12HZ (0x05) 00891 #define BNO055_GYRO_BW_64HZ (0x06) 00892 #define BNO055_GYRO_BW_32HZ (0x07) 00893 00894 /* Gyro power mode*/ 00895 #define BNO055_GYRO_POWER_MODE_NORMAL (0X00) 00896 #define BNO055_GYRO_POWER_MODE_FASTPOWERUP (0X01) 00897 #define BNO055_GYRO_POWER_MODE_DEEPSUSPEND (0X02) 00898 #define BNO055_GYRO_POWER_MODE_SUSPEND (0X03) 00899 #define BNO055_GYRO_POWER_MODE_ADVANCE_POWERSAVE (0X04) 00900 00901 /* Accel Sleep Duration */ 00902 #define BNO055_ACCEL_SLEEP_DURN_0_5MS (0x05) 00903 /* sets sleep duration to 0.5 ms */ 00904 #define BNO055_ACCEL_SLEEP_DURN_1MS (0x06) 00905 /* sets sleep duration to 1 ms */ 00906 #define BNO055_ACCEL_SLEEP_DURN_2MS (0x07) 00907 /* sets sleep duration to 2 ms */ 00908 #define BNO055_ACCEL_SLEEP_DURN_4MS (0x08) 00909 /* sets sleep duration to 4 ms */ 00910 #define BNO055_ACCEL_SLEEP_DURN_6MS (0x09) 00911 /* sets sleep duration to 6 ms*/ 00912 #define BNO055_ACCEL_SLEEP_DURN_10MS (0x0A) 00913 /* sets sleep duration to 10 ms */ 00914 #define BNO055_ACCEL_SLEEP_DURN_25MS (0x0B) 00915 /* sets sleep duration to 25 ms */ 00916 #define BNO055_ACCEL_SLEEP_DURN_50MS (0x0C) 00917 /* sets sleep duration to 50 ms */ 00918 #define BNO055_ACCEL_SLEEP_DURN_100MS (0x0D) 00919 /* sets sleep duration to 100 ms */ 00920 #define BNO055_ACCEL_SLEEP_DURN_500MS (0x0E) 00921 /* sets sleep duration to 500 ms */ 00922 #define BNO055_ACCEL_SLEEP_DURN_1S (0x0F) 00923 /* sets sleep duration to 1 s */ 00924 00925 /* Gyro Auto sleep duration*/ 00926 #define BNO055_GYRO_No_AUTOSLPDUR (0x00) 00927 #define BNO055_GYRO_4MS_AUTOSLPDUR (0x01) 00928 #define BNO055_GYRO_5MS_AUTOSLPDUR (0x02) 00929 #define BNO055_GYRO_8MS_AUTOSLPDUR (0x03) 00930 #define BNO055_GYRO_10MS_AUTOSLPDUR (0x04) 00931 #define BNO055_GYRO_15MS_AUTOSLPDUR (0x05) 00932 #define BNO055_GYRO_20MS_AUTOSLPDUR (0x06) 00933 #define BNO055_GYRO_40MS_AUTOSLPDUR (0x07) 00934 00935 /* Accel Any/No motion axis selection*/ 00936 #define BNO055_ACCEL_ANY_MOTION_NO_MOTION_X_AXIS (0) 00937 #define BNO055_ACCEL_ANY_MOTION_NO_MOTION_Y_AXIS (1) 00938 #define BNO055_ACCEL_ANY_MOTION_NO_MOTION_Z_AXIS (2) 00939 00940 /* Accel High g axis selection*/ 00941 #define BNO055_ACCEL_HIGH_G_X_AXIS (0) 00942 #define BNO055_ACCEL_HIGH_G_Y_AXIS (1) 00943 #define BNO055_ACCEL_HIGH_G_Z_AXIS (2) 00944 00945 /* Gyro Any motion axis selection*/ 00946 #define BNO055_GYRO_ANY_MOTION_X_AXIS (0) 00947 #define BNO055_GYRO_ANY_MOTION_Y_AXIS (1) 00948 #define BNO055_GYRO_ANY_MOTION_Z_AXIS (2) 00949 00950 00951 /* Gyro High rate axis selection*/ 00952 #define BNO055_GYRO_HIGHRATE_X_AXIS (0) 00953 #define BNO055_GYRO_HIGHRATE_Y_AXIS (1) 00954 #define BNO055_GYRO_HIGHRATE_Z_AXIS (2) 00955 00956 /* Axis remap values*/ 00957 #define BNO055_REMAP_X_Y (0X21) 00958 #define BNO055_REMAP_Y_Z (0X18) 00959 #define BNO055_REMAP_Z_X (0X06) 00960 #define BNO055_REMAP_X_Y_Z_TYPE0 (0X12) 00961 #define BNO055_REMAP_X_Y_Z_TYPE1 (0X09) 00962 #define BNO055_DEFAULT_AXIS (0X24) 00963 00964 /* Axis remap sign */ 00965 #define BNO055_REMAP_AXIS_POSITIVE (0X00) 00966 #define BNO055_REMAP_AXIS_NEGATIVE (0X01) 00967 00968 /* Gyro anymotion and high rate filter configuration */ 00969 #define BNO055_GYRO_FILTERED_CONFIG (0x00) 00970 #define BNO055_GYRO_UNFILTERED_CONFIG (0x01) 00971 00972 /* mask definitions*/ 00973 #define BNO055_SIC_HEX_0_0_F_F_DATA (0x00FF) 00974 /****************************************************/ 00975 /**\name ARRAY SIZE DEFINITIONS */ 00976 /***************************************************/ 00977 #define BNO055_REV_ID_SIZE (2) 00978 #define BNO055_ACCEL_DATA_SIZE (2) 00979 #define BNO055_ACCEL_XYZ_DATA_SIZE (6) 00980 #define BNO055_MAG_DATA_SIZE (2) 00981 #define BNO055_MAG_XYZ_DATA_SIZE (6) 00982 #define BNO055_GYRO_DATA_SIZE (2) 00983 #define BNO055_GYRO_XYZ_DATA_SIZE (6) 00984 #define BNO055_EULER_DATA_SIZE (2) 00985 #define BNO055_EULER_HRP_DATA_SIZE (6) 00986 #define BNO055_QUATERNION_DATA_SIZE (2) 00987 #define BNO055_QUATERNION_WXYZ_DATA_SIZE (8) 00988 #define BNO055_GRAVITY_DATA_SIZE (2) 00989 #define BNO055_GRAVITY_XYZ_DATA_SIZE (6) 00990 #define BNO055_ACCEL_OFFSET_ARRAY (6) 00991 #define BNO055_MAG_OFFSET_ARRAY (6) 00992 #define BNO055_GYRO_OFFSET_ARRAY (6) 00993 #define BNO055_SOFT_IRON_CALIBRATION_MATRIX_SIZE (18) 00994 00995 00996 /*ARRAY INDEX DEFINITIONS*/ 00997 #define BNO055_SW_ID_LSB (0) 00998 #define BNO055_SW_ID_MSB (1) 00999 #define BNO055_SENSOR_DATA_LSB (0) 01000 #define BNO055_SENSOR_DATA_MSB (1) 01001 #define BNO055_SENSOR_DATA_EULER_LSB (0) 01002 #define BNO055_SENSOR_DATA_EULER_MSB (1) 01003 #define BNO055_SENSOR_DATA_QUATERNION_LSB (0) 01004 #define BNO055_SENSOR_DATA_QUATERNION_MSB (1) 01005 01006 #define BNO055_SENSOR_DATA_QUATERNION_WXYZ_W_LSB (0) 01007 #define BNO055_SENSOR_DATA_QUATERNION_WXYZ_W_MSB (1) 01008 #define BNO055_SENSOR_DATA_QUATERNION_WXYZ_X_LSB (2) 01009 #define BNO055_SENSOR_DATA_QUATERNION_WXYZ_X_MSB (3) 01010 #define BNO055_SENSOR_DATA_QUATERNION_WXYZ_Y_LSB (4) 01011 #define BNO055_SENSOR_DATA_QUATERNION_WXYZ_Y_MSB (5) 01012 #define BNO055_SENSOR_DATA_QUATERNION_WXYZ_Z_LSB (6) 01013 #define BNO055_SENSOR_DATA_QUATERNION_WXYZ_Z_MSB (7) 01014 01015 #define BNO055_SENSOR_DATA_XYZ_X_LSB (0) 01016 #define BNO055_SENSOR_DATA_XYZ_X_MSB (1) 01017 #define BNO055_SENSOR_DATA_XYZ_Y_LSB (2) 01018 #define BNO055_SENSOR_DATA_XYZ_Y_MSB (3) 01019 #define BNO055_SENSOR_DATA_XYZ_Z_LSB (4) 01020 #define BNO055_SENSOR_DATA_XYZ_Z_MSB (5) 01021 01022 01023 #define BNO055_SENSOR_DATA_EULER_HRP_H_LSB (0) 01024 #define BNO055_SENSOR_DATA_EULER_HRP_H_MSB (1) 01025 #define BNO055_SENSOR_DATA_EULER_HRP_R_LSB (2) 01026 #define BNO055_SENSOR_DATA_EULER_HRP_R_MSB (3) 01027 #define BNO055_SENSOR_DATA_EULER_HRP_P_LSB (4) 01028 #define BNO055_SENSOR_DATA_EULER_HRP_P_MSB (5) 01029 01030 #define BNO055_SOFT_IRON_CALIB_0_LSB (0) 01031 #define BNO055_SOFT_IRON_CALIB_0_MSB (1) 01032 #define BNO055_SOFT_IRON_CALIB_1_LSB (2) 01033 #define BNO055_SOFT_IRON_CALIB_1_MSB (3) 01034 #define BNO055_SOFT_IRON_CALIB_2_LSB (4) 01035 #define BNO055_SOFT_IRON_CALIB_2_MSB (5) 01036 #define BNO055_SOFT_IRON_CALIB_3_LSB (6) 01037 #define BNO055_SOFT_IRON_CALIB_3_MSB (7) 01038 #define BNO055_SOFT_IRON_CALIB_4_LSB (8) 01039 #define BNO055_SOFT_IRON_CALIB_4_MSB (9) 01040 #define BNO055_SOFT_IRON_CALIB_5_LSB (10) 01041 #define BNO055_SOFT_IRON_CALIB_5_MSB (11) 01042 #define BNO055_SOFT_IRON_CALIB_6_LSB (12) 01043 #define BNO055_SOFT_IRON_CALIB_6_MSB (13) 01044 #define BNO055_SOFT_IRON_CALIB_7_LSB (14) 01045 #define BNO055_SOFT_IRON_CALIB_7_MSB (15) 01046 #define BNO055_SOFT_IRON_CALIB_8_LSB (16) 01047 #define BNO055_SOFT_IRON_CALIB_8_MSB (17) 01048 01049 #define BNO055_SENSOR_OFFSET_DATA_X_LSB (0) 01050 #define BNO055_SENSOR_OFFSET_DATA_X_MSB (1) 01051 #define BNO055_SENSOR_OFFSET_DATA_Y_LSB (2) 01052 #define BNO055_SENSOR_OFFSET_DATA_Y_MSB (3) 01053 #define BNO055_SENSOR_OFFSET_DATA_Z_LSB (4) 01054 #define BNO055_SENSOR_OFFSET_DATA_Z_MSB (5) 01055 01056 #define BNO055_OFFSET_RADIUS_LSB (0) 01057 #define BNO055_OFFSET_RADIUS_MSB (1) 01058 /*********************************************************/ 01059 /**\name PAGE0 DATA REGISTERS DEFINITION */ 01060 /*********************************************************/ 01061 /* Chip ID */ 01062 #define BNO055_CHIP_ID_POS (0) 01063 #define BNO055_CHIP_ID_MSK (0xFF) 01064 #define BNO055_CHIP_ID_LEN (8) 01065 #define BNO055_CHIP_ID_REG BNO055_CHIP_ID_ADDR 01066 01067 /* Accel revision id*/ 01068 #define BNO055_ACCEL_REV_ID_POS (0) 01069 #define BNO055_ACCEL_REV_ID_MSK (0xFF) 01070 #define BNO055_ACCEL_REV_ID_LEN (8) 01071 #define BNO055_ACCEL_REV_ID_REG BNO055_ACCEL_REV_ID_ADDR 01072 01073 /* Mag revision id*/ 01074 #define BNO055_MAG_REV_ID_POS (0) 01075 #define BNO055_MAG_REV_ID_MSK (0xFF) 01076 #define BNO055_MAG_REV_ID_LEN (8) 01077 #define BNO055_MAG_REV_ID_REG BNO055_MAG_REV_ID_ADDR 01078 01079 /* Gyro revision id*/ 01080 #define BNO055_GYRO_REV_ID_POS (0) 01081 #define BNO055_GYRO_REV_ID_MSK (0xFF) 01082 #define BNO055_GYRO_REV_ID_LEN (8) 01083 #define BNO055_GYRO_REV_ID_REG BNO055_GYRO_REV_ID_ADDR 01084 01085 /*Software revision id LSB*/ 01086 #define BNO055_SW_REV_ID_LSB_POS (0) 01087 #define BNO055_SW_REV_ID_LSB_MSK (0xFF) 01088 #define BNO055_SW_REV_ID_LSB_LEN (8) 01089 #define BNO055_SW_REV_ID_LSB_REG BNO055_SW_REV_ID_LSB_ADDR 01090 01091 /*Software revision id MSB*/ 01092 #define BNO055_SW_REV_ID_MSB_POS (0) 01093 #define BNO055_SW_REV_ID_MSB_MSK (0xFF) 01094 #define BNO055_SW_REV_ID_MSB_LEN (8) 01095 #define BNO055_SW_REV_ID_MSB_REG BNO055_SW_REV_ID_MSB_ADDR 01096 01097 /* BOOTLODER revision id*/ 01098 #define BNO055_BL_REV_ID_POS (0) 01099 #define BNO055_BL_REV_ID_MSK (0xFF) 01100 #define BNO055_BL_REV_ID_LEN (8) 01101 #define BNO055_BL_REV_ID_REG BNO055_BL_REV_ID_ADDR 01102 01103 /*Page id*/ 01104 #define BNO055_PAGE_ID_POS (0) 01105 #define BNO055_PAGE_ID_MSK (0xFF) 01106 #define BNO055_PAGE_ID_LEN (8) 01107 #define BNO055_PAGE_ID_REG BNO055_PAGE_ID_ADDR 01108 01109 /* Accel data X-LSB register*/ 01110 #define BNO055_ACCEL_DATA_X_LSB_VALUEX_POS (0) 01111 #define BNO055_ACCEL_DATA_X_LSB_VALUEX_MSK (0xFF) 01112 #define BNO055_ACCEL_DATA_X_LSB_VALUEX_LEN (8) 01113 #define BNO055_ACCEL_DATA_X_LSB_VALUEX_REG \ 01114 BNO055_ACCEL_DATA_X_LSB_ADDR 01115 01116 /* Accel data X-MSB register*/ 01117 #define BNO055_ACCEL_DATA_X_MSB_VALUEX_POS (0) 01118 #define BNO055_ACCEL_DATA_X_MSB_VALUEX_MSK (0xFF) 01119 #define BNO055_ACCEL_DATA_X_MSB_VALUEX_LEN (8) 01120 #define BNO055_ACCEL_DATA_X_MSB_VALUEX_REG \ 01121 BNO055_ACCEL_DATA_X_MSB_ADDR 01122 01123 /* Accel data Y-LSB register*/ 01124 #define BNO055_ACCEL_DATA_Y_LSB_VALUEY_POS (0) 01125 #define BNO055_ACCEL_DATA_Y_LSB_VALUEY_MSK (0xFF) 01126 #define BNO055_ACCEL_DATA_Y_LSB_VALUEY_LEN (8) 01127 #define BNO055_ACCEL_DATA_Y_LSB_VALUEY_REG \ 01128 BNO055_ACCEL_DATA_Y_LSB_ADDR 01129 01130 /* Accel data Y-MSB register*/ 01131 #define BNO055_ACCEL_DATA_Y_MSB_VALUEY_POS (0) 01132 #define BNO055_ACCEL_DATA_Y_MSB_VALUEY_MSK (0xFF) 01133 #define BNO055_ACCEL_DATA_Y_MSB_VALUEY_LEN (8) 01134 #define BNO055_ACCEL_DATA_Y_MSB_VALUEY_REG \ 01135 BNO055_ACCEL_DATA_Y_MSB_ADDR 01136 01137 /* Accel data Z-LSB register*/ 01138 #define BNO055_ACCEL_DATA_Z_LSB_VALUEZ_POS (0) 01139 #define BNO055_ACCEL_DATA_Z_LSB_VALUEZ_MSK (0xFF) 01140 #define BNO055_ACCEL_DATA_Z_LSB_VALUEZ_LEN (8) 01141 #define BNO055_ACCEL_DATA_Z_LSB_VALUEZ_REG \ 01142 BNO055_ACCEL_DATA_Z_LSB_ADDR 01143 01144 /* Accel data Z-MSB register*/ 01145 #define BNO055_ACCEL_DATA_Z_MSB_VALUEZ_POS (0) 01146 #define BNO055_ACCEL_DATA_Z_MSB_VALUEZ_MSK (0xFF) 01147 #define BNO055_ACCEL_DATA_Z_MSB_VALUEZ_LEN (8) 01148 #define BNO055_ACCEL_DATA_Z_MSB_VALUEZ_REG \ 01149 BNO055_ACCEL_DATA_Z_MSB_ADDR 01150 01151 /* Mag data X-LSB register*/ 01152 #define BNO055_MAG_DATA_X_LSB_VALUEX_POS (0) 01153 #define BNO055_MAG_DATA_X_LSB_VALUEX_MSK (0xFF) 01154 #define BNO055_MAG_DATA_X_LSB_VALUEX_LEN (8) 01155 #define BNO055_MAG_DATA_X_LSB_VALUEX_REG \ 01156 BNO055_MAG_DATA_X_LSB_ADDR 01157 01158 /* Mag data X-MSB register*/ 01159 #define BNO055_MAG_DATA_X_MSB_VALUEX_POS (0) 01160 #define BNO055_MAG_DATA_X_MSB_VALUEX_MSK (0xFF) 01161 #define BNO055_MAG_DATA_X_MSB_VALUEX_LEN (8) 01162 #define BNO055_MAG_DATA_X_MSB_VALUEX_REG BNO055_MAG_DATA_X_MSB_ADDR 01163 01164 /* Mag data Y-LSB register*/ 01165 #define BNO055_MAG_DATA_Y_LSB_VALUEY_POS (0) 01166 #define BNO055_MAG_DATA_Y_LSB_VALUEY_MSK (0xFF) 01167 #define BNO055_MAG_DATA_Y_LSB_VALUEY_LEN (8) 01168 #define BNO055_MAG_DATA_Y_LSB_VALUEY_REG BNO055_MAG_DATA_Y_LSB_ADDR 01169 01170 /* Mag data Y-MSB register*/ 01171 #define BNO055_MAG_DATA_Y_MSB_VALUEY_POS (0) 01172 #define BNO055_MAG_DATA_Y_MSB_VALUEY_MSK (0xFF) 01173 #define BNO055_MAG_DATA_Y_MSB_VALUEY_LEN (8) 01174 #define BNO055_MAG_DATA_Y_MSB_VALUEY_REG BNO055_MAG_DATA_Y_MSB_ADDR 01175 01176 /* Mag data Z-LSB register*/ 01177 #define BNO055_MAG_DATA_Z_LSB_VALUEZ_POS (0) 01178 #define BNO055_MAG_DATA_Z_LSB_VALUEZ_MSK (0xFF) 01179 #define BNO055_MAG_DATA_Z_LSB_VALUEZ_LEN (8) 01180 #define BNO055_MAG_DATA_Z_LSB_VALUEZ_REG BNO055_MAG_DATA_Z_LSB_ADDR 01181 01182 /* Mag data Z-MSB register*/ 01183 #define BNO055_MAG_DATA_Z_MSB_VALUEZ_POS (0) 01184 #define BNO055_MAG_DATA_Z_MSB_VALUEZ_MSK (0xFF) 01185 #define BNO055_MAG_DATA_Z_MSB_VALUEZ_LEN (8) 01186 #define BNO055_MAG_DATA_Z_MSB_VALUEZ_REG BNO055_MAG_DATA_Z_MSB_ADDR 01187 01188 /* Gyro data X-LSB register*/ 01189 #define BNO055_GYRO_DATA_X_LSB_VALUEX_POS (0) 01190 #define BNO055_GYRO_DATA_X_LSB_VALUEX_MSK (0xFF) 01191 #define BNO055_GYRO_DATA_X_LSB_VALUEX_LEN (8) 01192 #define BNO055_GYRO_DATA_X_LSB_VALUEX_REG BNO055_GYRO_DATA_X_LSB_ADDR 01193 01194 /* Gyro data X-MSB register*/ 01195 #define BNO055_GYRO_DATA_X_MSB_VALUEX_POS (0) 01196 #define BNO055_GYRO_DATA_X_MSB_VALUEX_MSK (0xFF) 01197 #define BNO055_GYRO_DATA_X_MSB_VALUEX_LEN (8) 01198 #define BNO055_GYRO_DATA_X_MSB_VALUEX_REG BNO055_GYRO_DATA_X_MSB_ADDR 01199 01200 /* Gyro data Y-LSB register*/ 01201 #define BNO055_GYRO_DATA_Y_LSB_VALUEY_POS (0) 01202 #define BNO055_GYRO_DATA_Y_LSB_VALUEY_MSK (0xFF) 01203 #define BNO055_GYRO_DATA_Y_LSB_VALUEY_LEN (8) 01204 #define BNO055_GYRO_DATA_Y_LSB_VALUEY_REG BNO055_GYRO_DATA_Y_LSB_ADDR 01205 01206 /* Gyro data Y-MSB register*/ 01207 #define BNO055_GYRO_DATA_Y_MSB_VALUEY_POS (0) 01208 #define BNO055_GYRO_DATA_Y_MSB_VALUEY_MSK (0xFF) 01209 #define BNO055_GYRO_DATA_Y_MSB_VALUEY_LEN (8) 01210 #define BNO055_GYRO_DATA_Y_MSB_VALUEY_REG BNO055_GYRO_DATA_Y_MSB_ADDR 01211 01212 /* Gyro data Z-LSB register*/ 01213 #define BNO055_GYRO_DATA_Z_LSB_VALUEZ_POS (0) 01214 #define BNO055_GYRO_DATA_Z_LSB_VALUEZ_MSK (0xFF) 01215 #define BNO055_GYRO_DATA_Z_LSB_VALUEZ_LEN (8) 01216 #define BNO055_GYRO_DATA_Z_LSB_VALUEZ_REG BNO055_GYRO_DATA_Z_LSB_ADDR 01217 01218 /* Gyro data Z-MSB register*/ 01219 #define BNO055_GYRO_DATA_Z_MSB_VALUEZ_POS (0) 01220 #define BNO055_GYRO_DATA_Z_MSB_VALUEZ_MSK (0xFF) 01221 #define BNO055_GYRO_DATA_Z_MSB_VALUEZ_LEN (8) 01222 #define BNO055_GYRO_DATA_Z_MSB_VALUEZ_REG BNO055_GYRO_DATA_Z_MSB_ADDR 01223 01224 /* Euler data HEADING-LSB register*/ 01225 #define BNO055_EULER_H_LSB_VALUEH_POS (0) 01226 #define BNO055_EULER_H_LSB_VALUEH_MSK (0xFF) 01227 #define BNO055_EULER_H_LSB_VALUEH_LEN (8) 01228 #define BNO055_EULER_H_LSB_VALUEH_REG BNO055_EULER_H_LSB_ADDR 01229 01230 /* Euler data HEADING-MSB register*/ 01231 #define BNO055_EULER_H_MSB_VALUEH_POS (0) 01232 #define BNO055_EULER_H_MSB_VALUEH_MSK (0xFF) 01233 #define BNO055_EULER_H_MSB_VALUEH_LEN (8) 01234 #define BNO055_EULER_H_MSB_VALUEH_REG BNO055_EULER_H_MSB_ADDR 01235 01236 /* Euler data ROLL-LSB register*/ 01237 #define BNO055_EULER_R_LSB_VALUER_POS (0) 01238 #define BNO055_EULER_R_LSB_VALUER_MSK (0xFF) 01239 #define BNO055_EULER_R_LSB_VALUER_LEN (8) 01240 #define BNO055_EULER_R_LSB_VALUER_REG BNO055_EULER_R_LSB_ADDR 01241 01242 /* Euler data ROLL-MSB register*/ 01243 #define BNO055_EULER_R_MSB_VALUER_POS (0) 01244 #define BNO055_EULER_R_MSB_VALUER_MSK (0xFF) 01245 #define BNO055_EULER_R_MSB_VALUER_LEN (8) 01246 #define BNO055_EULER_R_MSB_VALUER_REG BNO055_EULER_R_MSB_ADDR 01247 01248 /* Euler data PITCH-LSB register*/ 01249 #define BNO055_EULER_P_LSB_VALUEP_POS (0) 01250 #define BNO055_EULER_P_LSB_VALUEP_MSK (0xFF) 01251 #define BNO055_EULER_P_LSB_VALUEP_LEN (8) 01252 #define BNO055_EULER_P_LSB_VALUEP_REG BNO055_EULER_P_LSB_ADDR 01253 01254 /* Euler data HEADING-MSB register*/ 01255 #define BNO055_EULER_P_MSB_VALUEP_POS (0) 01256 #define BNO055_EULER_P_MSB_VALUEP_MSK (0xFF) 01257 #define BNO055_EULER_P_MSB_VALUEP_LEN (8) 01258 #define BNO055_EULER_P_MSB_VALUEP_REG BNO055_EULER_P_MSB_ADDR 01259 01260 /* Quaternion data W-LSB register*/ 01261 #define BNO055_QUATERNION_DATA_W_LSB_VALUEW_POS (0) 01262 #define BNO055_QUATERNION_DATA_W_LSB_VALUEW_MSK (0xFF) 01263 #define BNO055_QUATERNION_DATA_W_LSB_VALUEW_LEN (8) 01264 #define BNO055_QUATERNION_DATA_W_LSB_VALUEW_REG \ 01265 BNO055_QUATERNION_DATA_W_LSB_ADDR 01266 01267 /* Quaternion data W-MSB register*/ 01268 #define BNO055_QUATERNION_DATA_W_MSB_VALUEW_POS (0) 01269 #define BNO055_QUATERNION_DATA_W_MSB_VALUEW_MSK (0xFF) 01270 #define BNO055_QUATERNION_DATA_W_MSB_VALUEW_LEN (8) 01271 #define BNO055_QUATERNION_DATA_W_MSB_VALUEW_REG \ 01272 BNO055_QUATERNION_DATA_W_MSB_ADDR 01273 01274 /* Quaternion data X-LSB register*/ 01275 #define BNO055_QUATERNION_DATA_X_LSB_VALUEX_POS (0) 01276 #define BNO055_QUATERNION_DATA_X_LSB_VALUEX_MSK (0xFF) 01277 #define BNO055_QUATERNION_DATA_X_LSB_VALUEX_LEN (8) 01278 #define BNO055_QUATERNION_DATA_X_LSB_VALUEX_REG \ 01279 BNO055_QUATERNION_DATA_X_LSB_ADDR 01280 01281 /* Quaternion data X-MSB register*/ 01282 #define BNO055_QUATERNION_DATA_X_MSB_VALUEX_POS (0) 01283 #define BNO055_QUATERNION_DATA_X_MSB_VALUEX_MSK (0xFF) 01284 #define BNO055_QUATERNION_DATA_X_MSB_VALUEX_LEN (8) 01285 #define BNO055_QUATERNION_DATA_X_MSB_VALUEX_REG \ 01286 BNO055_QUATERNION_DATA_X_MSB_ADDR 01287 01288 /* Quaternion data Y-LSB register*/ 01289 #define BNO055_QUATERNION_DATA_Y_LSB_VALUEY_POS (0) 01290 #define BNO055_QUATERNION_DATA_Y_LSB_VALUEY_MSK (0xFF) 01291 #define BNO055_QUATERNION_DATA_Y_LSB_VALUEY_LEN (8) 01292 #define BNO055_QUATERNION_DATA_Y_LSB_VALUEY_REG \ 01293 BNO055_QUATERNION_DATA_Y_LSB_ADDR 01294 01295 /* Quaternion data Y-MSB register*/ 01296 #define BNO055_QUATERNION_DATA_Y_MSB_VALUEY_POS (0) 01297 #define BNO055_QUATERNION_DATA_Y_MSB_VALUEY_MSK (0xFF) 01298 #define BNO055_QUATERNION_DATA_Y_MSB_VALUEY_LEN (8) 01299 #define BNO055_QUATERNION_DATA_Y_MSB_VALUEY_REG \ 01300 BNO055_QUATERNION_DATA_Y_MSB_ADDR 01301 01302 /* Quaternion data Z-LSB register*/ 01303 #define BNO055_QUATERNION_DATA_Z_LSB_VALUEZ_POS (0) 01304 #define BNO055_QUATERNION_DATA_Z_LSB_VALUEZ_MSK (0xFF) 01305 #define BNO055_QUATERNION_DATA_Z_LSB_VALUEZ_LEN (8) 01306 #define BNO055_QUATERNION_DATA_Z_LSB_VALUEZ_REG \ 01307 BNO055_QUATERNION_DATA_Z_LSB_ADDR 01308 01309 /* Quaternion data Z-MSB register*/ 01310 #define BNO055_QUATERNION_DATA_Z_MSB_VALUEZ_POS (0) 01311 #define BNO055_QUATERNION_DATA_Z_MSB_VALUEZ_MSK (0xFF) 01312 #define BNO055_QUATERNION_DATA_Z_MSB_VALUEZ_LEN (8) 01313 #define BNO055_QUATERNION_DATA_Z_MSB_VALUEZ_REG \ 01314 BNO055_QUATERNION_DATA_Z_MSB_ADDR 01315 01316 /* Linear acceleration data X-LSB register*/ 01317 #define BNO055_LINEAR_ACCEL_DATA_X_LSB_VALUEX_POS (0) 01318 #define BNO055_LINEAR_ACCEL_DATA_X_LSB_VALUEX_MSK (0xFF) 01319 #define BNO055_LINEAR_ACCEL_DATA_X_LSB_VALUEX_LEN (8) 01320 #define BNO055_LINEAR_ACCEL_DATA_X_LSB_VALUEX_REG \ 01321 BNO055_LINEAR_ACCEL_DATA_X_LSB_ADDR 01322 01323 /* Linear acceleration data X-MSB register*/ 01324 #define BNO055_LINEAR_ACCEL_DATA_X_MSB_VALUEX_POS (0) 01325 #define BNO055_LINEAR_ACCEL_DATA_X_MSB_VALUEX_MSK (0xFF) 01326 #define BNO055_LINEAR_ACCEL_DATA_X_MSB_VALUEX_LEN (8) 01327 #define BNO055_LINEAR_ACCEL_DATA_X_MSB_VALUEX_REG \ 01328 BNO055_LINEAR_ACCEL_DATA_X_MSB_ADDR 01329 01330 /* Linear acceleration data Y-LSB register*/ 01331 #define BNO055_LINEAR_ACCEL_DATA_Y_LSB_VALUEY_POS (0) 01332 #define BNO055_LINEAR_ACCEL_DATA_Y_LSB_VALUEY_MSK (0xFF) 01333 #define BNO055_LINEAR_ACCEL_DATA_Y_LSB_VALUEY_LEN (8) 01334 #define BNO055_LINEAR_ACCEL_DATA_Y_LSB_VALUEY_REG \ 01335 BNO055_LINEAR_ACCEL_DATA_Y_LSB_ADDR 01336 01337 /* Linear acceleration data Y-MSB register*/ 01338 #define BNO055_LINEAR_ACCEL_DATA_Y_MSB_VALUEY_POS (0) 01339 #define BNO055_LINEAR_ACCEL_DATA_Y_MSB_VALUEY_MSK (0xFF) 01340 #define BNO055_LINEAR_ACCEL_DATA_Y_MSB_VALUEY_LEN (8) 01341 #define BNO055_LINEAR_ACCEL_DATA_Y_MSB_VALUEY_REG \ 01342 BNO055_LINEAR_ACCEL_DATA_Y_MSB_ADDR 01343 01344 /* Linear acceleration data Z-LSB register*/ 01345 #define BNO055_LINEAR_ACCEL_DATA_Z_LSB_VALUEZ_POS (0) 01346 #define BNO055_LINEAR_ACCEL_DATA_Z_LSB_VALUEZ_MSK (0xFF) 01347 #define BNO055_LINEAR_ACCEL_DATA_Z_LSB_VALUEZ_LEN (8) 01348 #define BNO055_LINEAR_ACCEL_DATA_Z_LSB_VALUEZ_REG \ 01349 BNO055_LINEAR_ACCEL_DATA_Z_LSB_ADDR 01350 01351 /* Linear acceleration data Z-MSB register*/ 01352 #define BNO055_LINEAR_ACCEL_DATA_Z_MSB_VALUEZ_POS (0) 01353 #define BNO055_LINEAR_ACCEL_DATA_Z_MSB_VALUEZ_MSK (0xFF) 01354 #define BNO055_LINEAR_ACCEL_DATA_Z_MSB_VALUEZ_LEN (8) 01355 #define BNO055_LINEAR_ACCEL_DATA_Z_MSB_VALUEZ_REG \ 01356 BNO055_LINEAR_ACCEL_DATA_Z_MSB_ADDR 01357 01358 /* Gravity data X-LSB register*/ 01359 #define BNO055_GRAVITY_DATA_X_LSB_VALUEX_POS (0) 01360 #define BNO055_GRAVITY_DATA_X_LSB_VALUEX_MSK (0xFF) 01361 #define BNO055_GRAVITY_DATA_X_LSB_VALUEX_LEN (8) 01362 #define BNO055_GRAVITY_DATA_X_LSB_VALUEX_REG \ 01363 BNO055_GRAVITY_DATA_X_LSB_ADDR 01364 01365 /* Gravity data X-MSB register*/ 01366 #define BNO055_GRAVITY_DATA_X_MSB_VALUEX_POS (0) 01367 #define BNO055_GRAVITY_DATA_X_MSB_VALUEX_MSK (0xFF) 01368 #define BNO055_GRAVITY_DATA_X_MSB_VALUEX_LEN (8) 01369 #define BNO055_GRAVITY_DATA_X_MSB_VALUEX_REG \ 01370 BNO055_GRAVITY_DATA_X_MSB_ADDR 01371 01372 /* Gravity data Y-LSB register*/ 01373 #define BNO055_GRAVITY_DATA_Y_LSB_VALUEY_POS (0) 01374 #define BNO055_GRAVITY_DATA_Y_LSB_VALUEY_MSK (0xFF) 01375 #define BNO055_GRAVITY_DATA_Y_LSB_VALUEY_LEN (8) 01376 #define BNO055_GRAVITY_DATA_Y_LSB_VALUEY_REG \ 01377 BNO055_GRAVITY_DATA_Y_LSB_ADDR 01378 01379 /* Gravity data Y-MSB register*/ 01380 #define BNO055_GRAVITY_DATA_Y_MSB_VALUEY_POS (0) 01381 #define BNO055_GRAVITY_DATA_Y_MSB_VALUEY_MSK (0xFF) 01382 #define BNO055_GRAVITY_DATA_Y_MSB_VALUEY_LEN (8) 01383 #define BNO055_GRAVITY_DATA_Y_MSB_VALUEY_REG \ 01384 BNO055_GRAVITY_DATA_Y_MSB_ADDR 01385 01386 /* Gravity data Z-LSB register*/ 01387 #define BNO055_GRAVITY_DATA_Z_LSB_VALUEZ_POS (0) 01388 #define BNO055_GRAVITY_DATA_Z_LSB_VALUEZ_MSK (0xFF) 01389 #define BNO055_GRAVITY_DATA_Z_LSB_VALUEZ_LEN (8) 01390 #define BNO055_GRAVITY_DATA_Z_LSB_VALUEZ_REG \ 01391 BNO055_GRAVITY_DATA_Z_LSB_ADDR 01392 01393 /* Gravity data Z-MSB register*/ 01394 #define BNO055_GRAVITY_DATA_Z_MSB_VALUEZ_POS (0) 01395 #define BNO055_GRAVITY_DATA_Z_MSB_VALUEZ_MSK (0xFF) 01396 #define BNO055_GRAVITY_DATA_Z_MSB_VALUEZ_LEN (8) 01397 #define BNO055_GRAVITY_DATA_Z_MSB_VALUEZ_REG \ 01398 BNO055_GRAVITY_DATA_Z_MSB_ADDR 01399 01400 /* Temperature register*/ 01401 #define BNO055_TEMP_POS (0) 01402 #define BNO055_TEMP_MSK (0xFF) 01403 #define BNO055_TEMP_LEN (8) 01404 #define BNO055_TEMP_REG BNO055_TEMP_ADDR 01405 01406 /*Mag_Calib status register*/ 01407 #define BNO055_MAG_CALIB_STAT_POS (0) 01408 #define BNO055_MAG_CALIB_STAT_MSK (0X03) 01409 #define BNO055_MAG_CALIB_STAT_LEN (2) 01410 #define BNO055_MAG_CALIB_STAT_REG BNO055_CALIB_STAT_ADDR 01411 01412 /*Acc_Calib status register*/ 01413 #define BNO055_ACCEL_CALIB_STAT_POS (2) 01414 #define BNO055_ACCEL_CALIB_STAT_MSK (0X0C) 01415 #define BNO055_ACCEL_CALIB_STAT_LEN (2) 01416 #define BNO055_ACCEL_CALIB_STAT_REG BNO055_CALIB_STAT_ADDR 01417 01418 /*Gyro_Calib status register*/ 01419 #define BNO055_GYRO_CALIB_STAT_POS (4) 01420 #define BNO055_GYRO_CALIB_STAT_MSK (0X30) 01421 #define BNO055_GYRO_CALIB_STAT_LEN (2) 01422 #define BNO055_GYRO_CALIB_STAT_REG BNO055_CALIB_STAT_ADDR 01423 01424 /*Sys_Calib status register*/ 01425 #define BNO055_SYS_CALIB_STAT_POS (6) 01426 #define BNO055_SYS_CALIB_STAT_MSK (0XC0) 01427 #define BNO055_SYS_CALIB_STAT_LEN (2) 01428 #define BNO055_SYS_CALIB_STAT_REG BNO055_CALIB_STAT_ADDR 01429 01430 /*All_Calib status register*/ 01431 #define BNO055_ALL_CALIB_STAT_POS (0) 01432 #define BNO055_ALL_CALIB_STAT_MSK (0XFF) 01433 #define BNO055_ALL_CALIB_STAT_LEN (8) 01434 #define BNO055_ALL_CALIB_STAT_REG BNO055_CALIB_STAT_ADDR 01435 01436 /*ST_ACCEL register*/ 01437 #define BNO055_SELFTEST_ACCEL_POS (0) 01438 #define BNO055_SELFTEST_ACCEL_MSK (0X01) 01439 #define BNO055_SELFTEST_ACCEL_LEN (1) 01440 #define BNO055_SELFTEST_ACCEL_REG BNO055_SELFTEST_RESULT_ADDR 01441 01442 /*ST_MAG register*/ 01443 #define BNO055_SELFTEST_MAG_POS (1) 01444 #define BNO055_SELFTEST_MAG_MSK (0X02) 01445 #define BNO055_SELFTEST_MAG_LEN (1) 01446 #define BNO055_SELFTEST_MAG_REG BNO055_SELFTEST_RESULT_ADDR 01447 01448 /*ST_GYRO register*/ 01449 #define BNO055_SELFTEST_GYRO_POS (2) 01450 #define BNO055_SELFTEST_GYRO_MSK (0X04) 01451 #define BNO055_SELFTEST_GYRO_LEN (1) 01452 #define BNO055_SELFTEST_GYRO_REG BNO055_SELFTEST_RESULT_ADDR 01453 01454 /*ST_MCU register*/ 01455 #define BNO055_SELFTEST_MCU_POS (3) 01456 #define BNO055_SELFTEST_MCU_MSK (0X08) 01457 #define BNO055_SELFTEST_MCU_LEN (1) 01458 #define BNO055_SELFTEST_MCU_REG BNO055_SELFTEST_RESULT_ADDR 01459 01460 /*Interrupt status registers*/ 01461 #define BNO055_INTR_STAT_GYRO_ANY_MOTION_POS (2) 01462 #define BNO055_INTR_STAT_GYRO_ANY_MOTION_MSK (0X04) 01463 #define BNO055_INTR_STAT_GYRO_ANY_MOTION_LEN (1) 01464 #define BNO055_INTR_STAT_GYRO_ANY_MOTION_REG BNO055_INTR_STAT_ADDR 01465 01466 #define BNO055_INTR_STAT_GYRO_HIGHRATE_POS (3) 01467 #define BNO055_INTR_STAT_GYRO_HIGHRATE_MSK (0X08) 01468 #define BNO055_INTR_STAT_GYRO_HIGHRATE_LEN (1) 01469 #define BNO055_INTR_STAT_GYRO_HIGHRATE_REG BNO055_INTR_STAT_ADDR 01470 01471 #define BNO055_INTR_STAT_ACCEL_HIGH_G_POS (5) 01472 #define BNO055_INTR_STAT_ACCEL_HIGH_G_MSK (0X20) 01473 #define BNO055_INTR_STAT_ACCEL_HIGH_G_LEN (1) 01474 #define BNO055_INTR_STAT_ACCEL_HIGH_G_REG BNO055_INTR_STAT_ADDR 01475 01476 #define BNO055_INTR_STAT_ACCEL_ANY_MOTION_POS (6) 01477 #define BNO055_INTR_STAT_ACCEL_ANY_MOTION_MSK (0X40) 01478 #define BNO055_INTR_STAT_ACCEL_ANY_MOTION_LEN (1) 01479 #define BNO055_INTR_STAT_ACCEL_ANY_MOTION_REG BNO055_INTR_STAT_ADDR 01480 01481 #define BNO055_INTR_STAT_ACCEL_NO_MOTION_POS (7) 01482 #define BNO055_INTR_STAT_ACCEL_NO_MOTION_MSK (0X80) 01483 #define BNO055_INTR_STAT_ACCEL_NO_MOTION_LEN (1) 01484 #define BNO055_INTR_STAT_ACCEL_NO_MOTION_REG BNO055_INTR_STAT_ADDR 01485 01486 /* system clock status register*/ 01487 #define BNO055_SYS_MAIN_CLK_POS (0) 01488 #define BNO055_SYS_MAIN_CLK_MSK (0X10) 01489 #define BNO055_SYS_MAIN_CLK_LEN (1) 01490 #define BNO055_SYS_MAIN_CLK_REG BNO055_SYS_CLK_STAT_ADDR 01491 01492 /* System registers*/ 01493 #define BNO055_SYS_STAT_CODE_POS (0) 01494 #define BNO055_SYS_STAT_CODE_MSK (0XFF) 01495 #define BNO055_SYS_STAT_CODE_LEN (8) 01496 #define BNO055_SYS_STAT_CODE_REG BNO055_SYS_STAT_ADDR 01497 01498 #define BNO055_SYS_ERROR_CODE_POS (0) 01499 #define BNO055_SYS_ERROR_CODE_MSK (0XFF) 01500 #define BNO055_SYS_ERROR_CODE_LEN (8) 01501 #define BNO055_SYS_ERROR_CODE_REG BNO055_SYS_ERR_ADDR 01502 01503 /* Accel_Unit register*/ 01504 #define BNO055_ACCEL_UNIT_POS (0) 01505 #define BNO055_ACCEL_UNIT_MSK (0X01) 01506 #define BNO055_ACCEL_UNIT_LEN (1) 01507 #define BNO055_ACCEL_UNIT_REG BNO055_UNIT_SEL_ADDR 01508 01509 /* Gyro_Unit register*/ 01510 #define BNO055_GYRO_UNIT_POS (1) 01511 #define BNO055_GYRO_UNIT_MSK (0X02) 01512 #define BNO055_GYRO_UNIT_LEN (1) 01513 #define BNO055_GYRO_UNIT_REG BNO055_UNIT_SEL_ADDR 01514 01515 /* Euler_Unit register*/ 01516 #define BNO055_EULER_UNIT_POS (2) 01517 #define BNO055_EULER_UNIT_MSK (0X04) 01518 #define BNO055_EULER_UNIT_LEN (1) 01519 #define BNO055_EULER_UNIT_REG BNO055_UNIT_SEL_ADDR 01520 01521 /* Tilt_Unit register*/ 01522 #define BNO055_TILT_UNIT_POS (3) 01523 #define BNO055_TILT_UNIT_MSK (0X08) 01524 #define BNO055_TILT_UNIT_LEN (1) 01525 #define BNO055_TILT_UNIT_REG BNO055_UNIT_SEL_ADDR 01526 01527 /* Temperature_Unit register*/ 01528 #define BNO055_TEMP_UNIT_POS (4) 01529 #define BNO055_TEMP_UNIT_MSK (0X10) 01530 #define BNO055_TEMP_UNIT_LEN (1) 01531 #define BNO055_TEMP_UNIT_REG BNO055_UNIT_SEL_ADDR 01532 01533 /* ORI android-windows register*/ 01534 #define BNO055_DATA_OUTPUT_FORMAT_POS (7) 01535 #define BNO055_DATA_OUTPUT_FORMAT_MSK (0X80) 01536 #define BNO055_DATA_OUTPUT_FORMAT_LEN (1) 01537 #define BNO055_DATA_OUTPUT_FORMAT_REG BNO055_UNIT_SEL_ADDR 01538 /*Operation Mode data register*/ 01539 #define BNO055_OPERATION_MODE_POS (0) 01540 #define BNO055_OPERATION_MODE_MSK (0X0F) 01541 #define BNO055_OPERATION_MODE_LEN (4) 01542 #define BNO055_OPERATION_MODE_REG BNO055_OPR_MODE_ADDR 01543 /* Power Mode register*/ 01544 #define BNO055_POWER_MODE_POS (0) 01545 #define BNO055_POWER_MODE_MSK (0X03) 01546 #define BNO055_POWER_MODE_LEN (2) 01547 #define BNO055_POWER_MODE_REG BNO055_PWR_MODE_ADDR 01548 01549 /*Self Test register*/ 01550 #define BNO055_SELFTEST_POS (0) 01551 #define BNO055_SELFTEST_MSK (0X01) 01552 #define BNO055_SELFTEST_LEN (1) 01553 #define BNO055_SELFTEST_REG BNO055_SYS_TRIGGER_ADDR 01554 01555 /* RST_SYS register*/ 01556 #define BNO055_SYS_RST_POS (5) 01557 #define BNO055_SYS_RST_MSK (0X20) 01558 #define BNO055_SYS_RST_LEN (1) 01559 #define BNO055_SYS_RST_REG BNO055_SYS_TRIGGER_ADDR 01560 01561 /* RST_INT register*/ 01562 #define BNO055_INTR_RST_POS (6) 01563 #define BNO055_INTR_RST_MSK (0X40) 01564 #define BNO055_INTR_RST_LEN (1) 01565 #define BNO055_INTR_RST_REG BNO055_SYS_TRIGGER_ADDR 01566 01567 /* CLK_SRC register*/ 01568 #define BNO055_CLK_SRC_POS (7) 01569 #define BNO055_CLK_SRC_MSK (0X80) 01570 #define BNO055_CLK_SRC_LEN (1) 01571 #define BNO055_CLK_SRC_REG BNO055_SYS_TRIGGER_ADDR 01572 01573 /* Temp source register*/ 01574 #define BNO055_TEMP_SOURCE_POS (0) 01575 #define BNO055_TEMP_SOURCE_MSK (0X03) 01576 #define BNO055_TEMP_SOURCE_LEN (2) 01577 #define BNO055_TEMP_SOURCE_REG BNO055_TEMP_SOURCE_ADDR 01578 01579 /* Axis remap value register*/ 01580 #define BNO055_REMAP_AXIS_VALUE_POS (0) 01581 #define BNO055_REMAP_AXIS_VALUE_MSK (0X3F) 01582 #define BNO055_REMAP_AXIS_VALUE_LEN (6) 01583 #define BNO055_REMAP_AXIS_VALUE_REG BNO055_AXIS_MAP_CONFIG_ADDR 01584 01585 /* Axis sign value register*/ 01586 #define BNO055_REMAP_Z_SIGN_POS (0) 01587 #define BNO055_REMAP_Z_SIGN_MSK (0X01) 01588 #define BNO055_REMAP_Z_SIGN_LEN (1) 01589 #define BNO055_REMAP_Z_SIGN_REG BNO055_AXIS_MAP_SIGN_ADDR 01590 01591 #define BNO055_REMAP_Y_SIGN_POS (1) 01592 #define BNO055_REMAP_Y_SIGN_MSK (0X02) 01593 #define BNO055_REMAP_Y_SIGN_LEN (1) 01594 #define BNO055_REMAP_Y_SIGN_REG BNO055_AXIS_MAP_SIGN_ADDR 01595 01596 #define BNO055_REMAP_X_SIGN_POS (2) 01597 #define BNO055_REMAP_X_SIGN_MSK (0X04) 01598 #define BNO055_REMAP_X_SIGN_LEN (1) 01599 #define BNO055_REMAP_X_SIGN_REG BNO055_AXIS_MAP_SIGN_ADDR 01600 01601 /* Soft Iron Calibration matrix register*/ 01602 #define BNO055_SIC_MATRIX_0_LSB_POS (0) 01603 #define BNO055_SIC_MATRIX_0_LSB_MSK (0XFF) 01604 #define BNO055_SIC_MATRIX_0_LSB_LEN (8) 01605 #define BNO055_SIC_MATRIX_0_LSB_REG BNO055_SIC_MATRIX_0_LSB_ADDR 01606 01607 #define BNO055_SIC_MATRIX_0_MSB_POS (0) 01608 #define BNO055_SIC_MATRIX_0_MSB_MSK (0XFF) 01609 #define BNO055_SIC_MATRIX_0_MSB_LEN (8) 01610 #define BNO055_SIC_MATRIX_0_MSB_REG BNO055_SIC_MATRIX_0_MSB_ADDR 01611 01612 #define BNO055_SIC_MATRIX_1_LSB_POS (0) 01613 #define BNO055_SIC_MATRIX_1_LSB_MSK (0XFF) 01614 #define BNO055_SIC_MATRIX_1_LSB_LEN (8) 01615 #define BNO055_SIC_MATRIX_1_LSB_REG BNO055_SIC_MATRIX_1_LSB_ADDR 01616 01617 #define BNO055_SIC_MATRIX_1_MSB_POS (0) 01618 #define BNO055_SIC_MATRIX_1_MSB_MSK (0XFF) 01619 #define BNO055_SIC_MATRIX_1_MSB_LEN (8) 01620 #define BNO055_SIC_MATRIX_1_MSB_REG BNO055_SIC_MATRIX_1_MSB_ADDR 01621 01622 #define BNO055_SIC_MATRIX_2_LSB_POS (0) 01623 #define BNO055_SIC_MATRIX_2_LSB_MSK (0XFF) 01624 #define BNO055_SIC_MATRIX_2_LSB_LEN (8) 01625 #define BNO055_SIC_MATRIX_2_LSB_REG BNO055_SIC_MATRIX_2_LSB_ADDR 01626 01627 #define BNO055_SIC_MATRIX_2_MSB_POS (0) 01628 #define BNO055_SIC_MATRIX_2_MSB_MSK (0XFF) 01629 #define BNO055_SIC_MATRIX_2_MSB_LEN (8) 01630 #define BNO055_SIC_MATRIX_2_MSB_REG BNO055_SIC_MATRIX_2_MSB_ADDR 01631 01632 #define BNO055_SIC_MATRIX_3_LSB_POS (0) 01633 #define BNO055_SIC_MATRIX_3_LSB_MSK (0XFF) 01634 #define BNO055_SIC_MATRIX_3_LSB_LEN (8) 01635 #define BNO055_SIC_MATRIX_3_LSB_REG BNO055_SIC_MATRIX_3_LSB_ADDR 01636 01637 #define BNO055_SIC_MATRIX_3_MSB_POS (0) 01638 #define BNO055_SIC_MATRIX_3_MSB_MSK (0XFF) 01639 #define BNO055_SIC_MATRIX_3_MSB_LEN (8) 01640 #define BNO055_SIC_MATRIX_3_MSB_REG BNO055_SIC_MATRIX_3_MSB_ADDR 01641 01642 #define BNO055_SIC_MATRIX_4_LSB_POS (0) 01643 #define BNO055_SIC_MATRIX_4_LSB_MSK (0XFF) 01644 #define BNO055_SIC_MATRIX_4_LSB_LEN (8) 01645 #define BNO055_SIC_MATRIX_4_LSB_REG BNO055_SIC_MATRIX_4_LSB_ADDR 01646 01647 #define BNO055_SIC_MATRIX_4_MSB_POS (0) 01648 #define BNO055_SIC_MATRIX_4_MSB_MSK (0XFF) 01649 #define BNO055_SIC_MATRIX_4_MSB_LEN (8) 01650 #define BNO055_SIC_MATRIX_4_MSB_REG BNO055_SIC_MATRIX_4_MSB_ADDR 01651 01652 #define BNO055_SIC_MATRIX_5_LSB_POS (0) 01653 #define BNO055_SIC_MATRIX_5_LSB_MSK (0XFF) 01654 #define BNO055_SIC_MATRIX_5_LSB_LEN (8) 01655 #define BNO055_SIC_MATRIX_5_LSB_REG BNO055_SIC_MATRIX_5_LSB_ADDR 01656 01657 #define BNO055_SIC_MATRIX_5_MSB_POS (0) 01658 #define BNO055_SIC_MATRIX_5_MSB_MSK (0XFF) 01659 #define BNO055_SIC_MATRIX_5_MSB_LEN (8) 01660 #define BNO055_SIC_MATRIX_5_MSB_REG BNO055_SIC_MATRIX_5_MSB_ADDR 01661 01662 #define BNO055_SIC_MATRIX_6_LSB_POS (0) 01663 #define BNO055_SIC_MATRIX_6_LSB_MSK (0XFF) 01664 #define BNO055_SIC_MATRIX_6_LSB_LEN (8) 01665 #define BNO055_SIC_MATRIX_6_LSB_REG BNO055_SIC_MATRIX_6_LSB_ADDR 01666 01667 #define BNO055_SIC_MATRIX_6_MSB_POS (0) 01668 #define BNO055_SIC_MATRIX_6_MSB_MSK (0XFF) 01669 #define BNO055_SIC_MATRIX_6_MSB_LEN (8) 01670 #define BNO055_SIC_MATRIX_6_MSB_REG BNO055_SIC_MATRIX_6_MSB_ADDR 01671 01672 #define BNO055_SIC_MATRIX_7_LSB_POS (0) 01673 #define BNO055_SIC_MATRIX_7_LSB_MSK (0XFF) 01674 #define BNO055_SIC_MATRIX_7_LSB_LEN (8) 01675 #define BNO055_SIC_MATRIX_7_LSB_REG BNO055_SIC_MATRIX_7_LSB_ADDR 01676 01677 #define BNO055_SIC_MATRIX_7_MSB_POS (0) 01678 #define BNO055_SIC_MATRIX_7_MSB_MSK (0XFF) 01679 #define BNO055_SIC_MATRIX_7_MSB_LEN (8) 01680 #define BNO055_SIC_MATRIX_7_MSB_REG BNO055_SIC_MATRIX_7_MSB_ADDR 01681 01682 #define BNO055_SIC_MATRIX_8_LSB_POS (0) 01683 #define BNO055_SIC_MATRIX_8_LSB_MSK (0XFF) 01684 #define BNO055_SIC_MATRIX_8_LSB_LEN (8) 01685 #define BNO055_SIC_MATRIX_8_LSB_REG BNO055_SIC_MATRIX_8_LSB_ADDR 01686 01687 #define BNO055_SIC_MATRIX_8_MSB_POS (0) 01688 #define BNO055_SIC_MATRIX_8_MSB_MSK (0XFF) 01689 #define BNO055_SIC_MATRIX_8_MSB_LEN (8) 01690 #define BNO055_SIC_MATRIX_8_MSB_REG BNO055_SIC_MATRIX_8_MSB_ADDR 01691 01692 /*Accel Offset registers*/ 01693 #define BNO055_ACCEL_OFFSET_X_LSB_POS (0) 01694 #define BNO055_ACCEL_OFFSET_X_LSB_MSK (0XFF) 01695 #define BNO055_ACCEL_OFFSET_X_LSB_LEN (8) 01696 #define BNO055_ACCEL_OFFSET_X_LSB_REG BNO055_ACCEL_OFFSET_X_LSB_ADDR 01697 01698 #define BNO055_ACCEL_OFFSET_X_MSB_POS (0) 01699 #define BNO055_ACCEL_OFFSET_X_MSB_MSK (0XFF) 01700 #define BNO055_ACCEL_OFFSET_X_MSB_LEN (8) 01701 #define BNO055_ACCEL_OFFSET_X_MSB_REG BNO055_ACCEL_OFFSET_X_MSB_ADDR 01702 01703 #define BNO055_ACCEL_OFFSET_Y_LSB_POS (0) 01704 #define BNO055_ACCEL_OFFSET_Y_LSB_MSK (0XFF) 01705 #define BNO055_ACCEL_OFFSET_Y_LSB_LEN (8) 01706 #define BNO055_ACCEL_OFFSET_Y_LSB_REG BNO055_ACCEL_OFFSET_Y_LSB_ADDR 01707 01708 #define BNO055_ACCEL_OFFSET_Y_MSB_POS (0) 01709 #define BNO055_ACCEL_OFFSET_Y_MSB_MSK (0XFF) 01710 #define BNO055_ACCEL_OFFSET_Y_MSB_LEN (8) 01711 #define BNO055_ACCEL_OFFSET_Y_MSB_REG BNO055_ACCEL_OFFSET_Y_MSB_ADDR 01712 01713 #define BNO055_ACCEL_OFFSET_Z_LSB_POS (0) 01714 #define BNO055_ACCEL_OFFSET_Z_LSB_MSK (0XFF) 01715 #define BNO055_ACCEL_OFFSET_Z_LSB_LEN (8) 01716 #define BNO055_ACCEL_OFFSET_Z_LSB_REG BNO055_ACCEL_OFFSET_Z_LSB_ADDR 01717 01718 #define BNO055_ACCEL_OFFSET_Z_MSB_POS (0) 01719 #define BNO055_ACCEL_OFFSET_Z_MSB_MSK (0XFF) 01720 #define BNO055_ACCEL_OFFSET_Z_MSB_LEN (8) 01721 #define BNO055_ACCEL_OFFSET_Z_MSB_REG BNO055_ACCEL_OFFSET_Z_MSB_ADDR 01722 01723 /*Mag Offset registers*/ 01724 #define BNO055_MAG_OFFSET_X_LSB_POS (0) 01725 #define BNO055_MAG_OFFSET_X_LSB_MSK (0XFF) 01726 #define BNO055_MAG_OFFSET_X_LSB_LEN (8) 01727 #define BNO055_MAG_OFFSET_X_LSB_REG BNO055_MAG_OFFSET_X_LSB_ADDR 01728 01729 #define BNO055_MAG_OFFSET_X_MSB_POS (0) 01730 #define BNO055_MAG_OFFSET_X_MSB_MSK (0XFF) 01731 #define BNO055_MAG_OFFSET_X_MSB_LEN (8) 01732 #define BNO055_MAG_OFFSET_X_MSB_REG BNO055_MAG_OFFSET_X_MSB_ADDR 01733 01734 #define BNO055_MAG_OFFSET_Y_LSB_POS (0) 01735 #define BNO055_MAG_OFFSET_Y_LSB_MSK (0XFF) 01736 #define BNO055_MAG_OFFSET_Y_LSB_LEN (8) 01737 #define BNO055_MAG_OFFSET_Y_LSB_REG BNO055_MAG_OFFSET_Y_LSB_ADDR 01738 01739 #define BNO055_MAG_OFFSET_Y_MSB_POS (0) 01740 #define BNO055_MAG_OFFSET_Y_MSB_MSK (0XFF) 01741 #define BNO055_MAG_OFFSET_Y_MSB_LEN (8) 01742 #define BNO055_MAG_OFFSET_Y_MSB_REG BNO055_MAG_OFFSET_Y_MSB_ADDR 01743 01744 #define BNO055_MAG_OFFSET_Z_LSB_POS (0) 01745 #define BNO055_MAG_OFFSET_Z_LSB_MSK (0XFF) 01746 #define BNO055_MAG_OFFSET_Z_LSB_LEN (8) 01747 #define BNO055_MAG_OFFSET_Z_LSB_REG BNO055_MAG_OFFSET_Z_LSB_ADDR 01748 01749 #define BNO055_MAG_OFFSET_Z_MSB_POS (0) 01750 #define BNO055_MAG_OFFSET_Z_MSB_MSK (0XFF) 01751 #define BNO055_MAG_OFFSET_Z_MSB_LEN (8) 01752 #define BNO055_MAG_OFFSET_Z_MSB_REG BNO055_MAG_OFFSET_Z_MSB_ADDR 01753 01754 /* Gyro Offset registers*/ 01755 #define BNO055_GYRO_OFFSET_X_LSB_POS (0) 01756 #define BNO055_GYRO_OFFSET_X_LSB_MSK (0XFF) 01757 #define BNO055_GYRO_OFFSET_X_LSB_LEN (8) 01758 #define BNO055_GYRO_OFFSET_X_LSB_REG BNO055_GYRO_OFFSET_X_LSB_ADDR 01759 01760 #define BNO055_GYRO_OFFSET_X_MSB_POS (0) 01761 #define BNO055_GYRO_OFFSET_X_MSB_MSK (0XFF) 01762 #define BNO055_GYRO_OFFSET_X_MSB_LEN (8) 01763 #define BNO055_GYRO_OFFSET_X_MSB_REG BNO055_GYRO_OFFSET_X_MSB_ADDR 01764 01765 #define BNO055_GYRO_OFFSET_Y_LSB_POS (0) 01766 #define BNO055_GYRO_OFFSET_Y_LSB_MSK (0XFF) 01767 #define BNO055_GYRO_OFFSET_Y_LSB_LEN (8) 01768 #define BNO055_GYRO_OFFSET_Y_LSB_REG BNO055_GYRO_OFFSET_Y_LSB_ADDR 01769 01770 #define BNO055_GYRO_OFFSET_Y_MSB_POS (0) 01771 #define BNO055_GYRO_OFFSET_Y_MSB_MSK (0XFF) 01772 #define BNO055_GYRO_OFFSET_Y_MSB_LEN (8) 01773 #define BNO055_GYRO_OFFSET_Y_MSB_REG BNO055_GYRO_OFFSET_Y_MSB_ADDR 01774 01775 #define BNO055_GYRO_OFFSET_Z_LSB_POS (0) 01776 #define BNO055_GYRO_OFFSET_Z_LSB_MSK (0XFF) 01777 #define BNO055_GYRO_OFFSET_Z_LSB_LEN (8) 01778 #define BNO055_GYRO_OFFSET_Z_LSB_REG BNO055_GYRO_OFFSET_Z_LSB_ADDR 01779 01780 #define BNO055_GYRO_OFFSET_Z_MSB_POS (0) 01781 #define BNO055_GYRO_OFFSET_Z_MSB_MSK (0XFF) 01782 #define BNO055_GYRO_OFFSET_Z_MSB_LEN (8) 01783 #define BNO055_GYRO_OFFSET_Z_MSB_REG BNO055_GYRO_OFFSET_Z_MSB_ADDR 01784 01785 /* Radius register definition*/ 01786 #define BNO055_ACCEL_RADIUS_LSB_POS (0) 01787 #define BNO055_ACCEL_RADIUS_LSB_MSK (0XFF) 01788 #define BNO055_ACCEL_RADIUS_LSB_LEN (8) 01789 #define BNO055_ACCEL_RADIUS_LSB_REG BNO055_ACCEL_RADIUS_LSB_ADDR 01790 01791 #define BNO055_ACCEL_RADIUS_MSB_POS (0) 01792 #define BNO055_ACCEL_RADIUS_MSB_MSK (0XFF) 01793 #define BNO055_ACCEL_RADIUS_MSB_LEN (8) 01794 #define BNO055_ACCEL_RADIUS_MSB_REG BNO055_ACCEL_RADIUS_MSB_ADDR 01795 01796 #define BNO055_MAG_RADIUS_LSB_POS (0) 01797 #define BNO055_MAG_RADIUS_LSB_MSK (0XFF) 01798 #define BNO055_MAG_RADIUS_LSB_LEN (8) 01799 #define BNO055_MAG_RADIUS_LSB_REG BNO055_MAG_RADIUS_LSB_ADDR 01800 01801 #define BNO055_MAG_RADIUS_MSB_POS (0) 01802 #define BNO055_MAG_RADIUS_MSB_MSK (0XFF) 01803 #define BNO055_MAG_RADIUS_MSB_LEN (8) 01804 #define BNO055_MAG_RADIUS_MSB_REG BNO055_MAG_RADIUS_MSB_ADDR 01805 01806 /* PAGE0 DATA REGISTERS DEFINITION END*/ 01807 /*************************************************/ 01808 /**\name PAGE1 DATA REGISTERS DEFINITION */ 01809 /*************************************************/ 01810 /* Configuration registers*/ 01811 /* Accel range configuration register*/ 01812 #define BNO055_ACCEL_RANGE_POS (0) 01813 #define BNO055_ACCEL_RANGE_MSK (0X03) 01814 #define BNO055_ACCEL_RANGE_LEN (2) 01815 #define BNO055_ACCEL_RANGE_REG BNO055_ACCEL_CONFIG_ADDR 01816 01817 /* Accel bandwidth configuration register*/ 01818 #define BNO055_ACCEL_BW_POS (2) 01819 #define BNO055_ACCEL_BW_MSK (0X1C) 01820 #define BNO055_ACCEL_BW_LEN (3) 01821 #define BNO055_ACCEL_BW_REG BNO055_ACCEL_CONFIG_ADDR 01822 01823 /* Accel power mode configuration register*/ 01824 #define BNO055_ACCEL_POWER_MODE_POS (5) 01825 #define BNO055_ACCEL_POWER_MODE_MSK (0XE0) 01826 #define BNO055_ACCEL_POWER_MODE_LEN (3) 01827 #define BNO055_ACCEL_POWER_MODE_REG BNO055_ACCEL_CONFIG_ADDR 01828 01829 /* Mag data output rate configuration register*/ 01830 #define BNO055_MAG_DATA_OUTPUT_RATE_POS (0) 01831 #define BNO055_MAG_DATA_OUTPUT_RATE_MSK (0X07) 01832 #define BNO055_MAG_DATA_OUTPUT_RATE_LEN (3) 01833 #define BNO055_MAG_DATA_OUTPUT_RATE_REG BNO055_MAG_CONFIG_ADDR 01834 01835 /* Mag operation mode configuration register*/ 01836 #define BNO055_MAG_OPERATION_MODE_POS (3) 01837 #define BNO055_MAG_OPERATION_MODE_MSK (0X18) 01838 #define BNO055_MAG_OPERATION_MODE_LEN (2) 01839 #define BNO055_MAG_OPERATION_MODE_REG BNO055_MAG_CONFIG_ADDR 01840 01841 /* Mag power mode configuration register*/ 01842 #define BNO055_MAG_POWER_MODE_POS (5) 01843 #define BNO055_MAG_POWER_MODE_MSK (0X60) 01844 #define BNO055_MAG_POWER_MODE_LEN (2) 01845 #define BNO055_MAG_POWER_MODE_REG BNO055_MAG_CONFIG_ADDR 01846 01847 /* Gyro range configuration register*/ 01848 #define BNO055_GYRO_RANGE_POS (0) 01849 #define BNO055_GYRO_RANGE_MSK (0X07) 01850 #define BNO055_GYRO_RANGE_LEN (3) 01851 #define BNO055_GYRO_RANGE_REG BNO055_GYRO_CONFIG_ADDR 01852 01853 /* Gyro bandwidth configuration register*/ 01854 #define BNO055_GYRO_BW_POS (3) 01855 #define BNO055_GYRO_BW_MSK (0X38) 01856 #define BNO055_GYRO_BW_LEN (3) 01857 #define BNO055_GYRO_BW_REG BNO055_GYRO_CONFIG_ADDR 01858 01859 /* Gyro power mode configuration register*/ 01860 #define BNO055_GYRO_POWER_MODE_POS (0) 01861 #define BNO055_GYRO_POWER_MODE_MSK (0X07) 01862 #define BNO055_GYRO_POWER_MODE_LEN (3) 01863 #define BNO055_GYRO_POWER_MODE_REG BNO055_GYRO_MODE_CONFIG_ADDR 01864 01865 /* Sleep configuration registers*/ 01866 /* Accel sleep mode configuration register*/ 01867 #define BNO055_ACCEL_SLEEP_MODE_POS (0) 01868 #define BNO055_ACCEL_SLEEP_MODE_MSK (0X01) 01869 #define BNO055_ACCEL_SLEEP_MODE_LEN (1) 01870 #define BNO055_ACCEL_SLEEP_MODE_REG BNO055_ACCEL_SLEEP_CONFIG_ADDR 01871 01872 /* Accel sleep duration configuration register*/ 01873 #define BNO055_ACCEL_SLEEP_DURN_POS (1) 01874 #define BNO055_ACCEL_SLEEP_DURN_MSK (0X1E) 01875 #define BNO055_ACCEL_SLEEP_DURN_LEN (4) 01876 #define BNO055_ACCEL_SLEEP_DURN_REG BNO055_ACCEL_SLEEP_CONFIG_ADDR 01877 01878 /* Gyro sleep duration configuration register*/ 01879 #define BNO055_GYRO_SLEEP_DURN_POS (0) 01880 #define BNO055_GYRO_SLEEP_DURN_MSK (0X07) 01881 #define BNO055_GYRO_SLEEP_DURN_LEN (3) 01882 #define BNO055_GYRO_SLEEP_DURN_REG BNO055_GYRO_SLEEP_CONFIG_ADDR 01883 01884 /* Gyro auto sleep duration configuration register*/ 01885 #define BNO055_GYRO_AUTO_SLEEP_DURN_POS (3) 01886 #define BNO055_GYRO_AUTO_SLEEP_DURN_MSK (0X38) 01887 #define BNO055_GYRO_AUTO_SLEEP_DURN_LEN (3) 01888 #define BNO055_GYRO_AUTO_SLEEP_DURN_REG BNO055_GYRO_SLEEP_CONFIG_ADDR 01889 01890 /* Mag sleep mode configuration register*/ 01891 #define BNO055_MAG_SLEEP_MODE_POS (0) 01892 #define BNO055_MAG_SLEEP_MODE_MSK (0X01) 01893 #define BNO055_MAG_SLEEP_MODE_LEN (1) 01894 #define BNO055_MAG_SLEEP_MODE_REG BNO055_MAG_SLEEP_CONFIG_ADDR 01895 01896 /* Mag sleep duration configuration register*/ 01897 #define BNO055_MAG_SLEEP_DURN_POS (1) 01898 #define BNO055_MAG_SLEEP_DURN_MSK (0X1E) 01899 #define BNO055_MAG_SLEEP_DURN_LEN (4) 01900 #define BNO055_MAG_SLEEP_DURN_REG BNO055_MAG_SLEEP_CONFIG_ADDR 01901 01902 /* Interrupt registers*/ 01903 /* Gyro any motion interrupt msk register*/ 01904 #define BNO055_GYRO_ANY_MOTION_INTR_MASK_POS (2) 01905 #define BNO055_GYRO_ANY_MOTION_INTR_MASK_MSK (0X04) 01906 #define BNO055_GYRO_ANY_MOTION_INTR_MASK_LEN (1) 01907 #define BNO055_GYRO_ANY_MOTION_INTR_MASK_REG BNO055_INT_MASK_ADDR 01908 01909 /* Gyro high rate interrupt msk register*/ 01910 #define BNO055_GYRO_HIGHRATE_INTR_MASK_POS (3) 01911 #define BNO055_GYRO_HIGHRATE_INTR_MASK_MSK (0X08) 01912 #define BNO055_GYRO_HIGHRATE_INTR_MASK_LEN (1) 01913 #define BNO055_GYRO_HIGHRATE_INTR_MASK_REG BNO055_INT_MASK_ADDR 01914 01915 /* Accel high g interrupt msk register*/ 01916 #define BNO055_ACCEL_HIGH_G_INTR_MASK_POS (5) 01917 #define BNO055_ACCEL_HIGH_G_INTR_MASK_MSK (0X20) 01918 #define BNO055_ACCEL_HIGH_G_INTR_MASK_LEN (1) 01919 #define BNO055_ACCEL_HIGH_G_INTR_MASK_REG BNO055_INT_MASK_ADDR 01920 01921 /* Accel any motion interrupt msk register*/ 01922 #define BNO055_ACCEL_ANY_MOTION_INTR_MASK_POS (6) 01923 #define BNO055_ACCEL_ANY_MOTION_INTR_MASK_MSK (0X40) 01924 #define BNO055_ACCEL_ANY_MOTION_INTR_MASK_LEN (1) 01925 #define BNO055_ACCEL_ANY_MOTION_INTR_MASK_REG BNO055_INT_MASK_ADDR 01926 01927 /* Accel any motion interrupt msk register*/ 01928 #define BNO055_ACCEL_NO_MOTION_INTR_MASK_POS (7) 01929 #define BNO055_ACCEL_NO_MOTION_INTR_MASK_MSK (0X80) 01930 #define BNO055_ACCEL_NO_MOTION_INTR_MASK_LEN (1) 01931 #define BNO055_ACCEL_NO_MOTION_INTR_MASK_REG BNO055_INT_MASK_ADDR 01932 01933 /* Gyro any motion interrupt register*/ 01934 #define BNO055_GYRO_ANY_MOTION_INTR_POS (2) 01935 #define BNO055_GYRO_ANY_MOTION_INTR_MSK (0X04) 01936 #define BNO055_GYRO_ANY_MOTION_INTR_LEN (1) 01937 #define BNO055_GYRO_ANY_MOTION_INTR_REG BNO055_INT_ADDR 01938 01939 /* Gyro high rate interrupt register*/ 01940 #define BNO055_GYRO_HIGHRATE_INTR_POS (3) 01941 #define BNO055_GYRO_HIGHRATE_INTR_MSK (0X08) 01942 #define BNO055_GYRO_HIGHRATE_INTR_LEN (1) 01943 #define BNO055_GYRO_HIGHRATE_INTR_REG BNO055_INT_ADDR 01944 01945 /* Accel high g interrupt register*/ 01946 #define BNO055_ACCEL_HIGH_G_INTR_POS (5) 01947 #define BNO055_ACCEL_HIGH_G_INTR_MSK (0X20) 01948 #define BNO055_ACCEL_HIGH_G_INTR_LEN (1) 01949 #define BNO055_ACCEL_HIGH_G_INTR_REG BNO055_INT_ADDR 01950 01951 /* Accel any motion interrupt register*/ 01952 #define BNO055_ACCEL_ANY_MOTION_INTR_POS (6) 01953 #define BNO055_ACCEL_ANY_MOTION_INTR_MSK (0X40) 01954 #define BNO055_ACCEL_ANY_MOTION_INTR_LEN (1) 01955 #define BNO055_ACCEL_ANY_MOTION_INTR_REG BNO055_INT_ADDR 01956 01957 /*Accel any motion interrupt register*/ 01958 #define BNO055_ACCEL_NO_MOTION_INTR_POS (7) 01959 #define BNO055_ACCEL_NO_MOTION_INTR_MSK (0X80) 01960 #define BNO055_ACCEL_NO_MOTION_INTR_LEN (1) 01961 #define BNO055_ACCEL_NO_MOTION_INTR_REG BNO055_INT_ADDR 01962 01963 /*Accel any motion threshold setting*/ 01964 #define BNO055_ACCEL_ANY_MOTION_THRES_POS (0) 01965 #define BNO055_ACCEL_ANY_MOTION_THRES_MSK (0XFF) 01966 #define BNO055_ACCEL_ANY_MOTION_THRES_LEN (8) 01967 #define BNO055_ACCEL_ANY_MOTION_THRES_REG BNO055_ACCEL_ANY_MOTION_THRES_ADDR 01968 01969 /*Accel interrupt setting register*/ 01970 #define BNO055_ACCEL_ANY_MOTION_DURN_SET_POS (0) 01971 #define BNO055_ACCEL_ANY_MOTION_DURN_SET_MSK (0X03) 01972 #define BNO055_ACCEL_ANY_MOTION_DURN_SET_LEN (2) 01973 #define BNO055_ACCEL_ANY_MOTION_DURN_SET_REG BNO055_ACCEL_INTR_SETTINGS_ADDR 01974 01975 /* Accel AM/NM axis selection register*/ 01976 #define BNO055_ACCEL_ANY_MOTION_X_AXIS_POS (2) 01977 #define BNO055_ACCEL_ANY_MOTION_X_AXIS_MSK (0X04) 01978 #define BNO055_ACCEL_ANY_MOTION_X_AXIS_LEN (1) 01979 #define BNO055_ACCEL_ANY_MOTION_X_AXIS_REG BNO055_ACCEL_INTR_SETTINGS_ADDR 01980 01981 #define BNO055_ACCEL_ANY_MOTION_Y_AXIS_POS (3) 01982 #define BNO055_ACCEL_ANY_MOTION_Y_AXIS_MSK (0X08) 01983 #define BNO055_ACCEL_ANY_MOTION_Y_AXIS_LEN (1) 01984 #define BNO055_ACCEL_ANY_MOTION_Y_AXIS_REG BNO055_ACCEL_INTR_SETTINGS_ADDR 01985 01986 #define BNO055_ACCEL_ANY_MOTION_Z_AXIS_POS (4) 01987 #define BNO055_ACCEL_ANY_MOTION_Z_AXIS_MSK (0X10) 01988 #define BNO055_ACCEL_ANY_MOTION_Z_AXIS_LEN (1) 01989 #define BNO055_ACCEL_ANY_MOTION_Z_AXIS_REG BNO055_ACCEL_INTR_SETTINGS_ADDR 01990 01991 /* Accel high g axis selection register*/ 01992 #define BNO055_ACCEL_HIGH_G_X_AXIS_POS (5) 01993 #define BNO055_ACCEL_HIGH_G_X_AXIS_MSK (0X20) 01994 #define BNO055_ACCEL_HIGH_G_X_AXIS_LEN (1) 01995 #define BNO055_ACCEL_HIGH_G_X_AXIS_REG BNO055_ACCEL_INTR_SETTINGS_ADDR 01996 01997 #define BNO055_ACCEL_HIGH_G_Y_AXIS_POS (6) 01998 #define BNO055_ACCEL_HIGH_G_Y_AXIS_MSK (0X40) 01999 #define BNO055_ACCEL_HIGH_G_Y_AXIS_LEN (1) 02000 #define BNO055_ACCEL_HIGH_G_Y_AXIS_REG BNO055_ACCEL_INTR_SETTINGS_ADDR 02001 02002 #define BNO055_ACCEL_HIGH_G_Z_AXIS_POS (7) 02003 #define BNO055_ACCEL_HIGH_G_Z_AXIS_MSK (0X80) 02004 #define BNO055_ACCEL_HIGH_G_Z_AXIS_LEN (1) 02005 #define BNO055_ACCEL_HIGH_G_Z_AXIS_REG BNO055_ACCEL_INTR_SETTINGS_ADDR 02006 02007 /* Accel High g duration setting register*/ 02008 #define BNO055_ACCEL_HIGH_G_DURN_POS (0) 02009 #define BNO055_ACCEL_HIGH_G_DURN_MSK (0XFF) 02010 #define BNO055_ACCEL_HIGH_G_DURN_LEN (8) 02011 #define BNO055_ACCEL_HIGH_G_DURN_REG BNO055_ACCEL_HIGH_G_DURN_ADDR 02012 02013 /* Accel High g threshold setting register*/ 02014 #define BNO055_ACCEL_HIGH_G_THRES_POS (0) 02015 #define BNO055_ACCEL_HIGH_G_THRES_MSK (0XFF) 02016 #define BNO055_ACCEL_HIGH_G_THRES_LEN (8) 02017 #define BNO055_ACCEL_HIGH_G_THRES_REG BNO055_ACCEL_HIGH_G_THRES_ADDR 02018 02019 /* Accel no/slow motion threshold setting*/ 02020 #define BNO055_ACCEL_SLOW_NO_MOTION_THRES_POS (0) 02021 #define BNO055_ACCEL_SLOW_NO_MOTION_THRES_MSK (0XFF) 02022 #define BNO055_ACCEL_SLOW_NO_MOTION_THRES_LEN (8) 02023 #define BNO055_ACCEL_SLOW_NO_MOTION_THRES_REG \ 02024 BNO055_ACCEL_NO_MOTION_THRES_ADDR 02025 02026 /* Accel no/slow motion enable setting*/ 02027 #define BNO055_ACCEL_SLOW_NO_MOTION_ENABLE_POS (0) 02028 #define BNO055_ACCEL_SLOW_NO_MOTION_ENABLE_MSK (0X01) 02029 #define BNO055_ACCEL_SLOW_NO_MOTION_ENABLE_LEN (1) 02030 #define BNO055_ACCEL_SLOW_NO_MOTION_ENABLE_REG BNO055_ACCEL_NO_MOTION_SET_ADDR 02031 02032 /* Accel no/slow motion duration setting*/ 02033 #define BNO055_ACCEL_SLOW_NO_MOTION_DURN_POS (1) 02034 #define BNO055_ACCEL_SLOW_NO_MOTION_DURN_MSK (0X7E) 02035 #define BNO055_ACCEL_SLOW_NO_MOTION_DURN_LEN (6) 02036 #define BNO055_ACCEL_SLOW_NO_MOTION_DURN_REG BNO055_ACCEL_NO_MOTION_SET_ADDR 02037 02038 /*Gyro interrupt setting register*/ 02039 /*Gyro any motion axis setting*/ 02040 #define BNO055_GYRO_ANY_MOTION_X_AXIS_POS (0) 02041 #define BNO055_GYRO_ANY_MOTION_X_AXIS_MSK (0X01) 02042 #define BNO055_GYRO_ANY_MOTION_X_AXIS_LEN (1) 02043 #define BNO055_GYRO_ANY_MOTION_X_AXIS_REG BNO055_GYRO_INTR_SETING_ADDR 02044 02045 #define BNO055_GYRO_ANY_MOTION_Y_AXIS_POS (1) 02046 #define BNO055_GYRO_ANY_MOTION_Y_AXIS_MSK (0X02) 02047 #define BNO055_GYRO_ANY_MOTION_Y_AXIS_LEN (1) 02048 #define BNO055_GYRO_ANY_MOTION_Y_AXIS_REG BNO055_GYRO_INTR_SETING_ADDR 02049 02050 #define BNO055_GYRO_ANY_MOTION_Z_AXIS_POS (2) 02051 #define BNO055_GYRO_ANY_MOTION_Z_AXIS_MSK (0X04) 02052 #define BNO055_GYRO_ANY_MOTION_Z_AXIS_LEN (1) 02053 #define BNO055_GYRO_ANY_MOTION_Z_AXIS_REG BNO055_GYRO_INTR_SETING_ADDR 02054 02055 /*Gyro high rate axis setting*/ 02056 #define BNO055_GYRO_HIGHRATE_X_AXIS_POS (3) 02057 #define BNO055_GYRO_HIGHRATE_X_AXIS_MSK (0X08) 02058 #define BNO055_GYRO_HIGHRATE_X_AXIS_LEN (1) 02059 #define BNO055_GYRO_HIGHRATE_X_AXIS_REG BNO055_GYRO_INTR_SETING_ADDR 02060 02061 #define BNO055_GYRO_HIGHRATE_Y_AXIS_POS (4) 02062 #define BNO055_GYRO_HIGHRATE_Y_AXIS_MSK (0X10) 02063 #define BNO055_GYRO_HIGHRATE_Y_AXIS_LEN (1) 02064 #define BNO055_GYRO_HIGHRATE_Y_AXIS_REG BNO055_GYRO_INTR_SETING_ADDR 02065 02066 #define BNO055_GYRO_HIGHRATE_Z_AXIS_POS (5) 02067 #define BNO055_GYRO_HIGHRATE_Z_AXIS_MSK (0X20) 02068 #define BNO055_GYRO_HIGHRATE_Z_AXIS_LEN (1) 02069 #define BNO055_GYRO_HIGHRATE_Z_AXIS_REG BNO055_GYRO_INTR_SETING_ADDR 02070 02071 /* Gyro filter setting*/ 02072 #define BNO055_GYRO_ANY_MOTION_FILTER_POS (6) 02073 #define BNO055_GYRO_ANY_MOTION_FILTER_MSK (0X40) 02074 #define BNO055_GYRO_ANY_MOTION_FILTER_LEN (1) 02075 #define BNO055_GYRO_ANY_MOTION_FILTER_REG BNO055_GYRO_INTR_SETING_ADDR 02076 02077 #define BNO055_GYRO_HIGHRATE_FILTER_POS (7) 02078 #define BNO055_GYRO_HIGHRATE_FILTER_MSK (0X80) 02079 #define BNO055_GYRO_HIGHRATE_FILTER_LEN (1) 02080 #define BNO055_GYRO_HIGHRATE_FILTER_REG BNO055_GYRO_INTR_SETING_ADDR 02081 02082 /* Gyro high rate X axis settings*/ 02083 #define BNO055_GYRO_HIGHRATE_X_THRES_POS (0) 02084 #define BNO055_GYRO_HIGHRATE_X_THRES_MSK (0X1F) 02085 #define BNO055_GYRO_HIGHRATE_X_THRES_LEN (5) 02086 #define BNO055_GYRO_HIGHRATE_X_THRES_REG BNO055_GYRO_HIGHRATE_X_SET_ADDR 02087 02088 #define BNO055_GYRO_HIGHRATE_X_HYST_POS (5) 02089 #define BNO055_GYRO_HIGHRATE_X_HYST_MSK (0X60) 02090 #define BNO055_GYRO_HIGHRATE_X_HYST_LEN (2) 02091 #define BNO055_GYRO_HIGHRATE_X_HYST_REG BNO055_GYRO_HIGHRATE_X_SET_ADDR 02092 02093 #define BNO055_GYRO_HIGHRATE_X_DURN_POS (0) 02094 #define BNO055_GYRO_HIGHRATE_X_DURN_MSK (0XFF) 02095 #define BNO055_GYRO_HIGHRATE_X_DURN_LEN (8) 02096 #define BNO055_GYRO_HIGHRATE_X_DURN_REG BNO055_GYRO_DURN_X_ADDR 02097 02098 /* Gyro high rate Y axis settings*/ 02099 #define BNO055_GYRO_HIGHRATE_Y_THRES_POS (0) 02100 #define BNO055_GYRO_HIGHRATE_Y_THRES_MSK (0X1F) 02101 #define BNO055_GYRO_HIGHRATE_Y_THRES_LEN (5) 02102 #define BNO055_GYRO_HIGHRATE_Y_THRES_REG BNO055_GYRO_HIGHRATE_Y_SET_ADDR 02103 02104 #define BNO055_GYRO_HIGHRATE_Y_HYST_POS (5) 02105 #define BNO055_GYRO_HIGHRATE_Y_HYST_MSK (0X60) 02106 #define BNO055_GYRO_HIGHRATE_Y_HYST_LEN (2) 02107 #define BNO055_GYRO_HIGHRATE_Y_HYST_REG BNO055_GYRO_HIGHRATE_Y_SET_ADDR 02108 02109 #define BNO055_GYRO_HIGHRATE_Y_DURN_POS (0) 02110 #define BNO055_GYRO_HIGHRATE_Y_DURN_MSK (0XFF) 02111 #define BNO055_GYRO_HIGHRATE_Y_DURN_LEN (8) 02112 #define BNO055_GYRO_HIGHRATE_Y_DURN_REG BNO055_GYRO_DURN_Y_ADDR 02113 02114 /* Gyro high rate Z axis settings*/ 02115 #define BNO055_GYRO_HIGHRATE_Z_THRES_POS (0) 02116 #define BNO055_GYRO_HIGHRATE_Z_THRES_MSK (0X1F) 02117 #define BNO055_GYRO_HIGHRATE_Z_THRES_LEN (5) 02118 #define BNO055_GYRO_HIGHRATE_Z_THRES_REG BNO055_GYRO_HIGHRATE_Z_SET_ADDR 02119 02120 #define BNO055_GYRO_HIGHRATE_Z_HYST_POS (5) 02121 #define BNO055_GYRO_HIGHRATE_Z_HYST_MSK (0X60) 02122 #define BNO055_GYRO_HIGHRATE_Z_HYST_LEN (2) 02123 #define BNO055_GYRO_HIGHRATE_Z_HYST_REG BNO055_GYRO_HIGHRATE_Z_SET_ADDR 02124 02125 #define BNO055_GYRO_HIGHRATE_Z_DURN_POS (0) 02126 #define BNO055_GYRO_HIGHRATE_Z_DURN_MSK (0XFF) 02127 #define BNO055_GYRO_HIGHRATE_Z_DURN_LEN (8) 02128 #define BNO055_GYRO_HIGHRATE_Z_DURN_REG (BNO055_GYRO_DURN_Z_ADDR) 02129 02130 /*Gyro any motion threshold setting*/ 02131 #define BNO055_GYRO_ANY_MOTION_THRES_POS (0) 02132 #define BNO055_GYRO_ANY_MOTION_THRES_MSK (0X7F) 02133 #define BNO055_GYRO_ANY_MOTION_THRES_LEN (7) 02134 #define BNO055_GYRO_ANY_MOTION_THRES_REG \ 02135 BNO055_GYRO_ANY_MOTION_THRES_ADDR 02136 02137 /* Gyro any motion slope sample setting*/ 02138 #define BNO055_GYRO_SLOPE_SAMPLES_POS (0) 02139 #define BNO055_GYRO_SLOPE_SAMPLES_MSK (0X03) 02140 #define BNO055_GYRO_SLOPE_SAMPLES_LEN (2) 02141 #define BNO055_GYRO_SLOPE_SAMPLES_REG BNO055_GYRO_ANY_MOTION_SET_ADDR 02142 02143 /* Gyro awake duration setting*/ 02144 #define BNO055_GYRO_AWAKE_DURN_POS (2) 02145 #define BNO055_GYRO_AWAKE_DURN_MSK (0X0C) 02146 #define BNO055_GYRO_AWAKE_DURN_LEN (2) 02147 #define BNO055_GYRO_AWAKE_DURN_REG BNO055_GYRO_ANY_MOTION_SET_ADDR 02148 02149 /* PAGE1 DATA REGISTERS DEFINITION END*/ 02150 /*************************************************/ 02151 /**\name GET AND SET BITSLICE FUNCTIONS */ 02152 /*************************************************/ 02153 #define BNO055_GET_BITSLICE(regvar, bitname)\ 02154 ((regvar & bitname##_MSK) >> bitname##_POS) 02155 02156 02157 #define BNO055_SET_BITSLICE(regvar, bitname, val)\ 02158 ((regvar & ~bitname##_MSK) | ((val<<bitname##_POS)&bitname##_MSK)) 02159 /*************************************************/ 02160 /**\name FUNCTION DECLARATION */ 02161 /*************************************************/ 02162 /**************************************************/ 02163 /**\name INITIALIZATION AND REVISION ID FUNCTIONS */ 02164 /**************************************************/ 02165 /*! 02166 * @brief 02167 * This API is used for initialize 02168 * bus read, bus write function pointers,device 02169 * address,accel revision id, gyro revision id 02170 * mag revision id, software revision id, boot loader 02171 * revision id and page id 02172 * 02173 * @param bno055 - structure pointer 02174 * 02175 * 02176 * @return results of bus communication function 02177 * @retval 0 -> BNO055_SUCCESS 02178 * @retval 1 -> BNO055_ERROR 02179 * 02180 * @note While changing the parameter of the bno055_t 02181 * consider the following point: 02182 * Changing the reference value of the parameter 02183 * will changes the local copy or local reference 02184 * make sure your changes will not 02185 * affect the reference value of the parameter 02186 * (Better case don't change the reference value of the parameter) 02187 */ 02188 BNO055_RETURN_FUNCTION_TYPE bno055_init(struct bno055_t *bno055); 02189 /*! 02190 * @brief 02191 * This API gives data to the given register and 02192 * the data is written in the corresponding register address 02193 * 02194 * @param addr_u8 : Address of the register 02195 * @param data_u8 : Data to be written to the register 02196 * @param len_u8 : Length of the Data 02197 * 02198 * @return results of bus communication function 02199 * @retval 0 -> BNO055_SUCCESS 02200 * @retval 1 -> BNO055_ERROR 02201 * 02202 * 02203 */ 02204 BNO055_RETURN_FUNCTION_TYPE bno055_write_register(u8 addr_u8, 02205 u8 *data_u8, u8 len_u8); 02206 /*! 02207 * @brief This API reads the data from 02208 * the given register address 02209 * 02210 * @param addr_u8 : Address of the register 02211 * @param data_u8 : address of the variable, 02212 * read value will be kept 02213 * @param len_u8 : Length of the data 02214 * 02215 * 02216 * @return results of bus communication function 02217 * @retval 0 -> BNO055_SUCCESS 02218 * @retval 1 -> BNO055_ERROR 02219 * 02220 */ 02221 BNO055_RETURN_FUNCTION_TYPE bno055_read_register(u8 addr_u8, 02222 u8 *data_u8, u8 len_u8); 02223 /*! 02224 * @brief This API reads chip id 02225 * from register 0x00 it is a byte of data 02226 * 02227 * 02228 * @param chip_id_u8 : The chip id value 0xA0 02229 * 02230 * @return results of bus communication function 02231 * @retval 0 -> BNO055_SUCCESS 02232 * @retval 1 -> BNO055_ERROR 02233 */ 02234 BNO055_RETURN_FUNCTION_TYPE bno055_read_chip_id(u8 *chip_id_u8); 02235 /*! 02236 * @brief This API reads software revision id 02237 * from register 0x04 and 0x05 it is a two byte of data 02238 * 02239 * @param sw_id_u8 : The SW revision id 02240 * 02241 * @return results of bus communication function 02242 * @retval 0 -> BNO055_SUCCESS 02243 * @retval 1 -> BNO055_ERROR 02244 * 02245 * 02246 */ 02247 BNO055_RETURN_FUNCTION_TYPE bno055_read_sw_rev_id(u16 *sw_id_u8); 02248 /*! 02249 * @brief This API reads page id 02250 * from register 0x07 it is a byte of data 02251 * 02252 * 02253 * @param page_id_u8 : The value of page id 02254 * 02255 * BNO055_PAGE_ZERO -> 0x00 02256 * BNO055_PAGE_ONE -> 0x01 02257 * 02258 * @return results of bus communication function 02259 * @retval 0 -> BNO055_SUCCESS 02260 * @retval 1 -> BNO055_ERROR 02261 * 02262 * 02263 */ 02264 BNO055_RETURN_FUNCTION_TYPE bno055_read_page_id(u8 *page_id_u8); 02265 /*! 02266 * @brief This API used to write 02267 * the page id register 0x07 02268 * 02269 * @param page_id_u8 : The value of page id 02270 * 02271 * BNO055_PAGE_ZERO -> 0x00 02272 * BNO055_PAGE_ONE -> 0x01 02273 * 02274 * @return results of bus communication function 02275 * @retval 0 -> BNO055_SUCCESS 02276 * @retval 1 -> BNO055_ERROR 02277 * 02278 * 02279 */ 02280 BNO055_RETURN_FUNCTION_TYPE bno055_write_page_id(u8 page_id_u8); 02281 /*! 02282 * @brief This API reads accel revision id 02283 * from register 0x01 it is a byte of value 02284 * 02285 * @param accel_rev_id_u8 : The accel revision id 0xFB 02286 * 02287 * @return results of bus communication function 02288 * @retval 0 -> BNO055_SUCCESS 02289 * @retval 1 -> BNO055_ERROR 02290 * 02291 * 02292 */ 02293 BNO055_RETURN_FUNCTION_TYPE bno055_read_accel_rev_id( 02294 u8 *accel_rev_id_u8); 02295 /*! 02296 * @brief This API reads mag revision id 02297 * from register 0x02 it is a byte of value 02298 * 02299 * @param mag_rev_id_u8 : The mag revision id 0x32 02300 * 02301 * @return results of bus communication function 02302 * @retval 0 -> BNO055_SUCCESS 02303 * @retval 1 -> BNO055_ERROR 02304 * 02305 * 02306 */ 02307 BNO055_RETURN_FUNCTION_TYPE bno055_read_mag_rev_id( 02308 u8 *mag_rev_id_u8); 02309 /*! 02310 * @brief This API reads gyro revision id 02311 * from register 0x03 it is a byte of value 02312 * 02313 * @param gyro_rev_id_u8 : The gyro revision id 0xF0 02314 * 02315 * 02316 * 02317 * @return results of bus communication function 02318 * @retval 0 -> BNO055_SUCCESS 02319 * @retval 1 -> BNO055_ERROR 02320 * 02321 * 02322 */ 02323 BNO055_RETURN_FUNCTION_TYPE bno055_read_gyro_rev_id( 02324 u8 *gyro_rev_id_u8); 02325 /*! 02326 * @brief This API used to read boot loader revision id 02327 * from register 0x06 it is a byte of value 02328 * 02329 * @param bl_rev_id_u8 : The boot loader revision id 02330 * 02331 * 02332 * @return results of bus communication function 02333 * @retval 0 -> BNO055_SUCCESS 02334 * @retval 1 -> BNO055_ERROR 02335 * 02336 * 02337 */ 02338 BNO055_RETURN_FUNCTION_TYPE bno055_read_bl_rev_id( 02339 u8 *bl_rev_id_u8); 02340 /**************************************************/ 02341 /**\name ACCEL DATA READ FUNCTIONS */ 02342 /**************************************************/ 02343 /*! 02344 * @brief This API reads acceleration data X values 02345 * from register 0x08 and 0x09 it is a two byte data 02346 * 02347 * 02348 * 02349 * 02350 * @param accel_x_s16 : The X raw data 02351 * 02352 * 02353 * 02354 * @return results of bus communication function 02355 * @retval 0 -> BNO055_SUCCESS 02356 * @retval 1 -> BNO055_ERROR 02357 * 02358 * 02359 */ 02360 BNO055_RETURN_FUNCTION_TYPE bno055_read_accel_x(s16 *accel_x_s16); 02361 /*! 02362 * @brief This API reads acceleration data Y values 02363 * from register 0x0A and 0x0B it is a two byte data 02364 * 02365 * 02366 * 02367 * 02368 * @param accel_y_s16 : The Y raw data 02369 * 02370 * 02371 * 02372 * @return results of bus communication function 02373 * @retval 0 -> BNO055_SUCCESS 02374 * @retval 1 -> BNO055_ERROR 02375 * 02376 * 02377 */ 02378 BNO055_RETURN_FUNCTION_TYPE bno055_read_accel_y(s16 *accel_y_s16); 02379 /*! 02380 * @brief This API reads acceleration data z values 02381 * from register 0x0C and 0x0D it is a two byte data 02382 * 02383 * 02384 * 02385 * 02386 * @param accel_z_s16 : The z raw data 02387 * 02388 * 02389 * 02390 * @return results of bus communication function 02391 * @retval 0 -> BNO055_SUCCESS 02392 * @retval 1 -> BNO055_ERROR 02393 * 02394 * 02395 */ 02396 BNO055_RETURN_FUNCTION_TYPE bno055_read_accel_z(s16 *accel_z_s16); 02397 /*! 02398 * @brief This API reads acceleration data xyz values 02399 * from register 0x08 to 0x0D it is a six byte data 02400 * 02401 * 02402 * @param accel : The value of accel xyz data 02403 * 02404 * Parameter | result 02405 * --------- | ----------------- 02406 * x | The accel x data 02407 * y | The accel y data 02408 * z | The accel z data 02409 * 02410 * 02411 * 02412 * @return results of bus communication function 02413 * @retval 0 -> BNO055_SUCCESS 02414 * @retval 1 -> BNO055_ERROR 02415 * 02416 */ 02417 BNO055_RETURN_FUNCTION_TYPE bno055_read_accel_xyz( 02418 struct bno055_accel_t *accel); 02419 /**************************************************/ 02420 /**\name MAG DATA READ FUNCTIONS */ 02421 /**************************************************/ 02422 /*! 02423 * @brief This API reads mag data x values 02424 * from register 0x0E and 0x0F it is a two byte data 02425 * 02426 * 02427 * 02428 * 02429 * @param mag_x_s16 : The x raw data 02430 * 02431 * 02432 * 02433 * @return results of bus communication function 02434 * @retval 0 -> BNO055_SUCCESS 02435 * @retval 1 -> BNO055_ERROR 02436 * 02437 * 02438 * 02439 */ 02440 BNO055_RETURN_FUNCTION_TYPE bno055_read_mag_x(s16 *mag_x_s16); 02441 /*! 02442 * @brief This API reads mag data y values 02443 * from register 0x10 and 0x11 it is a two byte data 02444 * 02445 * 02446 * 02447 * 02448 * @param mag_y_s16 : The y raw data 02449 * 02450 * 02451 * 02452 * @return results of bus communication function 02453 * @retval 0 -> BNO055_SUCCESS 02454 * @retval 1 -> BNO055_ERROR 02455 * 02456 * 02457 */ 02458 BNO055_RETURN_FUNCTION_TYPE bno055_read_mag_y(s16 *mag_y_s16); 02459 /*! 02460 * @brief This API reads mag data z values 02461 * from register 0x12 and 0x13 it is a two byte data 02462 * 02463 * 02464 * 02465 * 02466 * @param mag_z_s16 : The z raw data 02467 * 02468 * 02469 * 02470 * @return results of bus communication function 02471 * @retval 0 -> BNO055_SUCCESS 02472 * @retval 1 -> BNO055_ERROR 02473 * 02474 * 02475 * 02476 */ 02477 BNO055_RETURN_FUNCTION_TYPE bno055_read_mag_z(s16 *mag_z_s16); 02478 /*! 02479 * @brief This API reads mag data xyz values 02480 * from register 0x0E to 0x13 it is a six byte data 02481 * 02482 * 02483 * @param mag : The mag xyz values 02484 * 02485 * Parameter | result 02486 * --------- | ----------------- 02487 * x | The mag x data 02488 * y | The mag y data 02489 * z | The mag z data 02490 * 02491 * 02492 * 02493 * @return results of bus communication function 02494 * @retval 0 -> BNO055_SUCCESS 02495 * @retval 1 -> BNO055_ERROR 02496 * 02497 */ 02498 BNO055_RETURN_FUNCTION_TYPE bno055_read_mag_xyz(struct bno055_mag_t *mag); 02499 /**************************************************/ 02500 /**\name GYRO DATA READ FUNCTIONS */ 02501 /**************************************************/ 02502 /*! 02503 * @brief This API reads gyro data x values 02504 * from register 0x14 and 0x15 it is a two byte data 02505 * 02506 * 02507 * 02508 * 02509 * @param gyro_x_s16 : The x raw data 02510 * 02511 * 02512 * 02513 * @return results of bus communication function 02514 * @retval 0 -> BNO055_SUCCESS 02515 * @retval 1 -> BNO055_ERROR 02516 * 02517 * 02518 */ 02519 BNO055_RETURN_FUNCTION_TYPE bno055_read_gyro_x(s16 *gyro_x_s16); 02520 /*! 02521 * @brief This API reads gyro data y values 02522 * from register 0x16 and 0x17 it is a two byte data 02523 * 02524 * 02525 * 02526 * 02527 * @param gyro_y_s16 : The y raw data 02528 * 02529 * 02530 * 02531 * @return results of bus communication function 02532 * @retval 0 -> BNO055_SUCCESS 02533 * @retval 1 -> BNO055_ERROR 02534 * 02535 * 02536 */ 02537 BNO055_RETURN_FUNCTION_TYPE bno055_read_gyro_y(s16 *gyro_y_s16); 02538 /*! 02539 * @brief This API reads gyro data z values 02540 * from register 0x18 and 0x19 it is a two byte data 02541 * 02542 * @param gyro_z_s16 : The z raw data 02543 * 02544 * @return results of bus communication function 02545 * @retval 0 -> BNO055_SUCCESS 02546 * @retval 1 -> BNO055_ERROR 02547 * 02548 * 02549 */ 02550 BNO055_RETURN_FUNCTION_TYPE bno055_read_gyro_z(s16 *gyro_z_s16); 02551 /*! 02552 * @brief This API reads gyro data xyz values 02553 * from register 0x14 to 0x19 it is a six byte data 02554 * 02555 * 02556 * @param gyro : The value of gyro xyz data's 02557 * 02558 * Parameter | result 02559 * --------- | ----------------- 02560 * x | The gyro x data 02561 * y | The gyro y data 02562 * z | The gyro z data 02563 * 02564 * 02565 * 02566 * @return results of bus communication function 02567 * @retval 0 -> BNO055_SUCCESS 02568 * @retval 1 -> BNO055_ERROR 02569 * 02570 */ 02571 BNO055_RETURN_FUNCTION_TYPE bno055_read_gyro_xyz(struct bno055_gyro_t *gyro); 02572 /**************************************************/ 02573 /**\name EULER DATA READ FUNCTIONS */ 02574 /**************************************************/ 02575 /*! 02576 * @brief This API reads gyro data z values 02577 * from register 0x1A and 0x1B it is a two byte data 02578 * 02579 * @param euler_h_s16 : The raw h data 02580 * 02581 * @return results of bus communication function 02582 * @retval 0 -> BNO055_SUCCESS 02583 * @retval 1 -> BNO055_ERROR 02584 * 02585 */ 02586 BNO055_RETURN_FUNCTION_TYPE bno055_read_euler_h(s16 *euler_h_s16); 02587 /*! 02588 * @brief This API reads Euler data r values 02589 * from register 0x1C and 0x1D it is a two byte data 02590 * 02591 * @param euler_r_s16 : The raw r data 02592 * 02593 * @return results of bus communication function 02594 * @retval 0 -> BNO055_SUCCESS 02595 * @retval 1 -> BNO055_ERROR 02596 * 02597 */ 02598 BNO055_RETURN_FUNCTION_TYPE bno055_read_euler_r(s16 *euler_r_s16); 02599 /*! 02600 * @brief This API reads Euler data p values 02601 * from register 0x1E and 0x1F it is a two byte data 02602 * 02603 * @param euler_p_s16 : The raw p data 02604 * 02605 * @return results of bus communication function 02606 * @retval 0 -> BNO055_SUCCESS 02607 * @retval 1 -> BNO055_ERROR 02608 * 02609 * 02610 */ 02611 BNO055_RETURN_FUNCTION_TYPE bno055_read_euler_p(s16 *euler_p_s16); 02612 /*! 02613 * @brief This API reads Euler data hrp values 02614 * from register 0x1A to 0x1F it is a six byte data 02615 * 02616 * 02617 * @param euler : The Euler hrp data's 02618 * 02619 * Parameter | result 02620 * --------- | ----------------- 02621 * h | The Euler h data 02622 * r | The Euler r data 02623 * p | The Euler p data 02624 * 02625 * 02626 * @return results of bus communication function 02627 * @retval 0 -> BNO055_SUCCESS 02628 * @retval 1 -> BNO055_ERROR 02629 * 02630 */ 02631 BNO055_RETURN_FUNCTION_TYPE bno055_read_euler_hrp( 02632 struct bno055_euler_t *euler); 02633 /**************************************************/ 02634 /**\name QUATERNION DATA READ FUNCTIONS */ 02635 /**************************************************/ 02636 /*! 02637 * @brief This API reads quaternion data w values 02638 * from register 0x20 and 0x21 it is a two byte data 02639 * 02640 * @param quaternion_w_s16 : The raw w data 02641 * 02642 * @return results of bus communication function 02643 * @retval 0 -> BNO055_SUCCESS 02644 * @retval 1 -> BNO055_ERROR 02645 * 02646 * 02647 */ 02648 BNO055_RETURN_FUNCTION_TYPE bno055_read_quaternion_w( 02649 s16 *quaternion_w_s16); 02650 /*! 02651 * @brief This API reads quaternion data x values 02652 * from register 0x22 and 0x23 it is a two byte data 02653 * 02654 * @param quaternion_x_s16 : The raw x data 02655 * 02656 * @return results of bus communication function 02657 * @retval 0 -> BNO055_SUCCESS 02658 * @retval 1 -> BNO055_ERROR 02659 * 02660 * 02661 */ 02662 BNO055_RETURN_FUNCTION_TYPE bno055_read_quaternion_x( 02663 s16 *quaternion_x_s16); 02664 /*! 02665 * @brief This API reads quaternion data y values 02666 * from register 0x24 and 0x25 it is a two byte data 02667 * 02668 * @param quaternion_y_s16 : The raw y data 02669 * 02670 * @return results of bus communication function 02671 * @retval 0 -> BNO055_SUCCESS 02672 * @retval 1 -> BNO055_ERROR 02673 * 02674 * 02675 */ 02676 BNO055_RETURN_FUNCTION_TYPE bno055_read_quaternion_y( 02677 s16 *quaternion_y_s16); 02678 /*! 02679 * @brief This API reads quaternion data z values 02680 * from register 0x26 and 0x27 it is a two byte data 02681 * 02682 * @param quaternion_z_s16 : The raw z data 02683 * 02684 * @return results of bus communication function 02685 * @retval 0 -> BNO055_SUCCESS 02686 * @retval 1 -> BNO055_ERROR 02687 * 02688 * 02689 */ 02690 BNO055_RETURN_FUNCTION_TYPE bno055_read_quaternion_z( 02691 s16 *quaternion_z_s16); 02692 /*! 02693 * @brief This API reads Quaternion data wxyz values 02694 * from register 0x20 to 0x27 it is a six byte data 02695 * 02696 * 02697 * @param quaternion : The value of quaternion wxyz data's 02698 * 02699 * Parameter | result 02700 * --------- | ----------------- 02701 * w | The quaternion w data 02702 * x | The quaternion x data 02703 * y | The quaternion y data 02704 * z | The quaternion z data 02705 * 02706 * 02707 * 02708 * @return results of bus communication function 02709 * @retval 0 -> BNO055_SUCCESS 02710 * @retval 1 -> BNO055_ERROR 02711 * 02712 */ 02713 BNO055_RETURN_FUNCTION_TYPE bno055_read_quaternion_wxyz( 02714 struct bno055_quaternion_t *quaternion); 02715 /**************************************************/ 02716 /**\name LINEAR ACCEL DATA READ FUNCTIONS */ 02717 /**************************************************/ 02718 /*! 02719 * @brief This API reads Linear accel data x values 02720 * from register 0x29 and 0x2A it is a two byte data 02721 * 02722 * @param linear_accel_x_s16 : The raw x data 02723 * 02724 * @return results of bus communication function 02725 * @retval 0 -> BNO055_SUCCESS 02726 * @retval 1 -> BNO055_ERROR 02727 * 02728 * 02729 */ 02730 BNO055_RETURN_FUNCTION_TYPE bno055_read_linear_accel_x( 02731 s16 *linear_accel_x_s16); 02732 /*! 02733 * @brief This API reads Linear accel data x values 02734 * from register 0x2B and 0x2C it is a two byte data 02735 * 02736 * @param linear_accel_y_s16 : The raw y data 02737 * 02738 * @return results of bus communication function 02739 * @retval 0 -> BNO055_SUCCESS 02740 * @retval 1 -> BNO055_ERROR 02741 * 02742 * 02743 */ 02744 BNO055_RETURN_FUNCTION_TYPE bno055_read_linear_accel_y( 02745 s16 *linear_accel_y_s16); 02746 /*! 02747 * @brief This API reads Linear accel data x values 02748 * from register 0x2C and 0x2D it is a two byte data 02749 * 02750 * @param linear_accel_z_s16 : The raw z data 02751 * 02752 * @return results of bus communication function 02753 * @retval 0 -> BNO055_SUCCESS 02754 * @retval 1 -> BNO055_ERROR 02755 * 02756 * 02757 */ 02758 BNO055_RETURN_FUNCTION_TYPE bno055_read_linear_accel_z( 02759 s16 *linear_accel_z_s16); 02760 /*! 02761 * @brief This API reads Linear accel data xyz values 02762 * from register 0x28 to 0x2D it is a six byte data 02763 * 02764 * 02765 * @param linear_accel : The value of linear accel xyz data's 02766 * 02767 * Parameter | result 02768 * --------- | ----------------- 02769 * x | The linear accel x data 02770 * y | The linear accel y data 02771 * z | The linear accel z data 02772 * 02773 * 02774 * @return results of bus communication function 02775 * @retval 0 -> BNO055_SUCCESS 02776 * @retval 1 -> BNO055_ERROR 02777 */ 02778 BNO055_RETURN_FUNCTION_TYPE bno055_read_linear_accel_xyz( 02779 struct bno055_linear_accel_t *linear_accel); 02780 /**************************************************/ 02781 /**\name GRAVITY DATA READ FUNCTIONS */ 02782 /**************************************************/ 02783 /*! 02784 * @brief This API reads gravity data x values 02785 * from register 0x2E and 0x2F it is a two byte data 02786 * 02787 * @param gravity_x_s16 : The raw x data 02788 * 02789 * @return results of bus communication function 02790 * @retval 0 -> BNO055_SUCCESS 02791 * @retval 1 -> BNO055_ERROR 02792 * 02793 * 02794 */ 02795 BNO055_RETURN_FUNCTION_TYPE bno055_read_gravity_x( 02796 s16 *gravity_x_s16); 02797 /*! 02798 * @brief This API reads gravity data y values 02799 * from register 0x30 and 0x31 it is a two byte data 02800 * 02801 * @param gravity_y_s16 : The raw y data 02802 * 02803 * @return results of bus communication function 02804 * @retval 0 -> BNO055_SUCCESS 02805 * @retval 1 -> BNO055_ERROR 02806 * 02807 * 02808 */ 02809 BNO055_RETURN_FUNCTION_TYPE bno055_read_gravity_y( 02810 s16 *gravity_y_s16); 02811 /*! 02812 * @brief This API reads gravity data z values 02813 * from register 0x32 and 0x33 it is a two byte data 02814 * 02815 * @param gravity_z_s16 : The raw z data 02816 * 02817 * @return results of bus communication function 02818 * @retval 0 -> BNO055_SUCCESS 02819 * @retval 1 -> BNO055_ERROR 02820 * 02821 * 02822 */ 02823 BNO055_RETURN_FUNCTION_TYPE bno055_read_gravity_z( 02824 s16 *gravity_z_s16); 02825 /*! 02826 * @brief This API reads gravity data xyz values 02827 * from register 0x2E to 0x33 it is a six byte data 02828 * 02829 * 02830 * @param gravity : The value of gravity xyz data's 02831 * 02832 * Parameter | result 02833 * --------- | ----------------- 02834 * x | The gravity x data 02835 * y | The gravity y data 02836 * z | The gravity z data 02837 * 02838 * 02839 * @return results of bus communication function 02840 * @retval 0 -> BNO055_SUCCESS 02841 * @retval 1 -> BNO055_ERROR 02842 * 02843 */ 02844 BNO055_RETURN_FUNCTION_TYPE bno055_read_gravity_xyz( 02845 struct bno055_gravity_t *gravity); 02846 /**************************************************/ 02847 /**\name TEMPERATURE DATA READ FUNCTIONS */ 02848 /**************************************************/ 02849 /*! 02850 * @brief This API reads temperature values 02851 * from register 0x33 it is a byte data 02852 * 02853 * @param temp_s8 : The raw temperature data 02854 * 02855 * @return results of bus communication function 02856 * @retval 0 -> BNO055_SUCCESS 02857 * @retval 1 -> BNO055_ERROR 02858 * 02859 * 02860 */ 02861 BNO055_RETURN_FUNCTION_TYPE bno055_read_temp_data(s8 *temp_s8); 02862 #ifdef BNO055_FLOAT_ENABLE 02863 /********************************************************************/ 02864 /**\name FUNCTIONS FOR READING ACCEL DATA OUTPUT AS FLOAT PRECISION */ 02865 /********************************************************************/ 02866 /*! 02867 * @brief This API is used to convert the accel x raw data 02868 * to meterpersecseq output as float 02869 * 02870 * @param accel_x_f : The accel x meterpersecseq data 02871 * 02872 * 02873 * 02874 * @return results of bus communication function 02875 * @retval 0 -> BNO055_SUCCESS 02876 * @retval 1 -> BNO055_ERROR 02877 * 02878 * 02879 */ 02880 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_accel_x_msq( 02881 float *accel_x_f); 02882 /*! 02883 * @brief This API is used to convert the accel x raw data 02884 * to meterpersecseq output as float 02885 * 02886 * @param accel_y_f : The accel y meterpersecseq data 02887 * 02888 * 02889 * 02890 * @return results of bus communication function 02891 * @retval 0 -> BNO055_SUCCESS 02892 * @retval 1 -> BNO055_ERROR 02893 * 02894 * 02895 */ 02896 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_accel_y_msq( 02897 float *accel_y_f); 02898 /*! 02899 * @brief This API is used to convert the accel z raw data 02900 * to meterpersecseq output as float 02901 * 02902 * @param accel_z_f : The accel z meterpersecseq data 02903 * 02904 * 02905 * 02906 * @return results of bus communication function 02907 * @retval 0 -> BNO055_SUCCESS 02908 * @retval 1 -> BNO055_ERROR 02909 * 02910 * 02911 */ 02912 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_accel_z_msq( 02913 float *accel_z_f); 02914 /*! 02915 * @brief This API is used to convert the accel y raw data 02916 * to millig output as float 02917 * 02918 * @param accel_x_f : The accel y millig data 02919 * 02920 * 02921 * 02922 * @return results of bus communication function 02923 * @retval 0 -> BNO055_SUCCESS 02924 * @retval 1 -> BNO055_ERROR 02925 * 02926 */ 02927 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_accel_x_mg( 02928 float *accel_x_f); 02929 /*! 02930 * @brief This API is used to convert the accel y raw data 02931 * to millig output as float 02932 * 02933 * @param accel_y_f : The accel y millig data 02934 * 02935 * 02936 * 02937 * @return results of bus communication function 02938 * @retval 0 -> BNO055_SUCCESS 02939 * @retval 1 -> BNO055_ERROR 02940 * 02941 */ 02942 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_accel_y_mg( 02943 float *accel_y_f); 02944 /*! 02945 * @brief This API is used to convert the accel z raw data 02946 * to millig output as float 02947 * 02948 * @param accel_z_f : The accel z millig data 02949 * 02950 * 02951 * 02952 * @return results of bus communication function 02953 * @retval 0 -> BNO055_SUCCESS 02954 * @retval 1 -> BNO055_ERROR 02955 * 02956 * 02957 */ 02958 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_accel_z_mg( 02959 float *accel_z_f); 02960 /*! 02961 * @brief This API is used to convert the accel xyz raw data 02962 * to meterpersecseq output as float 02963 * 02964 * @param accel_xyz : The meterpersecseq data of accel xyz 02965 * 02966 * Parameter | result 02967 * --------- | ----------------- 02968 * x | meterpersecseq data of accel 02969 * y | meterpersecseq data of accel 02970 * z | meterpersecseq data of accel 02971 * 02972 * @return results of bus communication function 02973 * @retval 0 -> BNO055_SUCCESS 02974 * @retval 1 -> BNO055_ERROR 02975 * 02976 * 02977 */ 02978 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_accel_xyz_msq( 02979 struct bno055_accel_float_t *accel_xyz); 02980 /*! 02981 * @brief This API is used to convert the accel xyz raw data 02982 * to millig output as float 02983 * 02984 * @param accel_xyz : The millig data of accel xyz 02985 * 02986 * Parameter | result 02987 * --------- | ----------------- 02988 * x | millig data of accel 02989 * y | millig data of accel 02990 * z | millig data of accel 02991 * 02992 * 02993 * @return results of bus communication function 02994 * @retval 0 -> BNO055_SUCCESS 02995 * @retval 1 -> BNO055_ERROR 02996 * 02997 * 02998 */ 02999 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_accel_xyz_mg( 03000 struct bno055_accel_float_t *accel_xyz); 03001 /********************************************************************/ 03002 /**\name FUNCTIONS FOR READING MAG DATA OUTPUT AS FLOAT PRECISION */ 03003 /********************************************************************/ 03004 /*! 03005 * @brief This API is used to convert the mag x raw data 03006 * to microTesla output as float 03007 * 03008 * @param mag_x_f : The mag x microTesla data 03009 * 03010 * 03011 * 03012 * @return results of bus communication function 03013 * @retval 0 -> BNO055_SUCCESS 03014 * @retval 1 -> BNO055_ERROR 03015 * 03016 * 03017 */ 03018 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_mag_x_uT( 03019 float *mag_x_f); 03020 /*! 03021 * @brief This API is used to convert the mag y raw data 03022 * to microTesla output as float 03023 * 03024 * @param mag_y_f : The mag y microTesla data 03025 * 03026 * 03027 * 03028 * @return results of bus communication function 03029 * @retval 0 -> BNO055_SUCCESS 03030 * @retval 1 -> BNO055_ERROR 03031 * 03032 */ 03033 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_mag_y_uT( 03034 float *mag_y_f); 03035 /*! 03036 * @brief This API is used to convert the mag z raw data 03037 * to microTesla output as float 03038 * 03039 * @param mag_z_f : The mag z microTesla data 03040 * 03041 * 03042 * 03043 * @return results of bus communication function 03044 * @retval 0 -> BNO055_SUCCESS 03045 * @retval 1 -> BNO055_ERROR 03046 * 03047 */ 03048 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_mag_z_uT( 03049 float *mag_z_f); 03050 /*! 03051 * @brief This API is used to convert the mag yz raw data 03052 * to microTesla output as float 03053 * 03054 * @param mag_xyz_data : The microTesla data of mag xyz 03055 * 03056 * Parameter | result 03057 * --------- | ----------------- 03058 * x | microTesla data of mag 03059 * y | microTesla data of mag 03060 * z | microTesla data of mag 03061 * 03062 * 03063 * @return results of bus communication function 03064 * @retval 0 -> BNO055_SUCCESS 03065 * @retval 1 -> BNO055_ERROR 03066 * 03067 */ 03068 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_mag_xyz_uT( 03069 struct bno055_mag_float_t *mag_xyz_data); 03070 /********************************************************************/ 03071 /**\name FUNCTIONS FOR READING GYRO DATA OUTPUT AS FLOAT PRECISION */ 03072 /********************************************************************/ 03073 /*! 03074 * @brief This API is used to convert the gyro x raw data 03075 * to dps output as float 03076 * 03077 * @param gyro_x_f : The gyro x dps float data 03078 * 03079 * 03080 * 03081 * @return results of bus communication function 03082 * @retval 0 -> BNO055_SUCCESS 03083 * @retval 1 -> BNO055_ERROR 03084 */ 03085 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_gyro_x_dps( 03086 float *gyro_x_f); 03087 /*! 03088 * @brief This API is used to convert the gyro x raw data 03089 * to rps output as float 03090 * 03091 * @param gyro_x_f : The gyro x dps float data 03092 * 03093 * 03094 * 03095 * @return results of bus communication function 03096 * @retval 0 -> BNO055_SUCCESS 03097 * @retval 1 -> BNO055_ERROR 03098 * 03099 */ 03100 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_gyro_x_rps( 03101 float *gyro_x_f); 03102 /*! 03103 * @brief This API is used to convert the gyro y raw data 03104 * to dps output as float 03105 * 03106 * @param gyro_y_f : The gyro y dps float data 03107 * 03108 * 03109 * 03110 * @return results of bus communication function 03111 * @retval 0 -> BNO055_SUCCESS 03112 * @retval 1 -> BNO055_ERROR 03113 * 03114 */ 03115 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_gyro_y_dps( 03116 float *gyro_y_f); 03117 /*! 03118 * @brief This API is used to convert the gyro y raw data 03119 * to rps output as float 03120 * 03121 * @param gyro_y_f : The gyro y dps float data 03122 * 03123 * 03124 * 03125 * @return results of bus communication function 03126 * @retval 0 -> BNO055_SUCCESS 03127 * @retval 1 -> BNO055_ERROR 03128 * 03129 * 03130 */ 03131 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_gyro_y_rps( 03132 float *gyro_y_f); 03133 /*! 03134 * @brief This API is used to convert the gyro z raw data 03135 * to dps output as float 03136 * 03137 * @param gyro_z_f : The gyro z dps float data 03138 * 03139 * 03140 * 03141 * @return results of bus communication function 03142 * @retval 0 -> BNO055_SUCCESS 03143 * @retval 1 -> BNO055_ERROR 03144 * 03145 */ 03146 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_gyro_z_dps( 03147 float *gyro_z_f); 03148 /*! 03149 * @brief This API is used to convert the gyro z raw data 03150 * to rps output as float 03151 * 03152 * @param gyro_z_f : The gyro z rps float data 03153 * 03154 * 03155 * 03156 * @return results of bus communication function 03157 * @retval 0 -> BNO055_SUCCESS 03158 * @retval 1 -> BNO055_ERROR 03159 * 03160 */ 03161 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_gyro_z_rps( 03162 float *gyro_z_f); 03163 /*! 03164 * @brief This API is used to convert the gyro xyz raw data 03165 * to dps output as float 03166 * 03167 * @param gyro_xyz_data : The dps data of gyro xyz 03168 * 03169 * Parameter | result 03170 * --------- | ----------------- 03171 * x | dps data of gyro 03172 * y | dps data of gyro 03173 * z | dps data of gyro 03174 * 03175 * 03176 * @return results of bus communication function 03177 * @retval 0 -> BNO055_SUCCESS 03178 * @retval 1 -> BNO055_ERROR 03179 * 03180 * 03181 */ 03182 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_gyro_xyz_dps( 03183 struct bno055_gyro_float_t *gyro_xyz_data); 03184 /*! 03185 * @brief This API is used to convert the gyro xyz raw data 03186 * to rps output as float 03187 * 03188 * @param gyro_xyz_data : The rps data of gyro xyz 03189 * 03190 * Parameter | result 03191 * --------- | ----------------- 03192 * x | rps data of gyro 03193 * y | rps data of gyro 03194 * z | rps data of gyro 03195 * 03196 * 03197 * @return results of bus communication function 03198 * @retval 0 -> BNO055_SUCCESS 03199 * @retval 1 -> BNO055_ERROR 03200 * 03201 * 03202 */ 03203 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_gyro_xyz_rps( 03204 struct bno055_gyro_float_t *gyro_xyz_data); 03205 /********************************************************************/ 03206 /**\name FUNCTIONS FOR READING EULER DATA OUTPUT AS FLOAT PRECISION */ 03207 /********************************************************************/ 03208 /*! 03209 * @brief This API is used to convert the Euler h raw data 03210 * to degree output as float 03211 * 03212 * @param euler_h_f : The float value of Euler h degree 03213 * 03214 * @return results of bus communication function 03215 * @retval 0 -> BNO055_SUCCESS 03216 * @retval 1 -> BNO055_ERROR 03217 * 03218 * 03219 */ 03220 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_euler_h_deg( 03221 float *euler_h_f); 03222 /*! 03223 * @brief This API is used to convert the Euler h raw data 03224 * to radians output as float 03225 * 03226 * @param euler_h_f : The float value of Euler h radians 03227 * 03228 * @return results of bus communication function 03229 * @retval 0 -> BNO055_SUCCESS 03230 * @retval 1 -> BNO055_ERROR 03231 * 03232 * 03233 */ 03234 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_euler_h_rad( 03235 float *euler_h_f); 03236 /*! 03237 * @brief This API is used to convert the Euler r raw data 03238 * to degree output as float 03239 * 03240 * @param euler_r_f : The float value of Euler r degree 03241 * 03242 * @return results of bus communication function 03243 * @retval 0 -> BNO055_SUCCESS 03244 * @retval 1 -> BNO055_ERROR 03245 * 03246 */ 03247 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_euler_r_deg( 03248 float *euler_r_f); 03249 /*! 03250 * @brief This API is used to convert the Euler r raw data 03251 * to radians output as float 03252 * 03253 * @param euler_r_f : The float value of Euler r radians 03254 * 03255 * @return results of bus communication function 03256 * @retval 0 -> BNO055_SUCCESS 03257 * @retval 1 -> BNO055_ERROR 03258 * 03259 */ 03260 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_euler_r_rad( 03261 float *euler_r_f); 03262 /*! 03263 * @brief This API is used to convert the Euler p raw data 03264 * to degree output as float 03265 * 03266 * @param euler_p_f : The float value of Euler p degree 03267 * 03268 * @return results of bus communication function 03269 * @retval 0 -> BNO055_SUCCESS 03270 * @retval 1 -> BNO055_ERROR 03271 * 03272 */ 03273 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_euler_p_deg( 03274 float *euler_p_f); 03275 /*! 03276 * @brief This API is used to convert the Euler p raw data 03277 * to radians output as float 03278 * 03279 * @param euler_p_f : The float value of Euler p radians 03280 * 03281 * @return results of bus communication function 03282 * @retval 0 -> BNO055_SUCCESS 03283 * @retval 1 -> BNO055_ERROR 03284 * 03285 * 03286 */ 03287 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_euler_p_rad( 03288 float *euler_p_f); 03289 /*! 03290 * @brief This API is used to convert the Euler hrp raw data 03291 * to degree output as float 03292 * 03293 * @param euler_hpr : The degree data of Euler hrp 03294 * 03295 * Parameter | result 03296 * --------- | ----------------- 03297 * h | degree data of Euler 03298 * r | degree data of Euler 03299 * p | degree data of Euler 03300 * 03301 * 03302 * @return results of bus communication function 03303 * @retval 0 -> BNO055_SUCCESS 03304 * @retval 1 -> BNO055_ERROR 03305 * 03306 */ 03307 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_euler_hpr_deg( 03308 struct bno055_euler_float_t *euler_hpr); 03309 /*! 03310 * @brief This API is used to convert the Euler xyz raw data 03311 * to radians output as float 03312 * 03313 * @param euler_hpr : The radians data of Euler hrp 03314 * 03315 * Parameter | result 03316 * --------- | ----------------- 03317 * h | radians data of Euler 03318 * r | radians data of Euler 03319 * p | radians data of Euler 03320 * 03321 * 03322 * @return results of bus communication function 03323 * @retval 0 -> BNO055_SUCCESS 03324 * @retval 1 -> BNO055_ERROR 03325 * 03326 */ 03327 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_euler_hpr_rad( 03328 struct bno055_euler_float_t *euler_hpr); 03329 /***************************************************************************/ 03330 /**\name FUNCTIONS FOR READING LINEAR ACCEL DATA OUTPUT AS FLOAT PRECISION */ 03331 /**************************************************************************/ 03332 /*! 03333 * @brief This API is used to convert the linear 03334 * accel x raw data to meterpersecseq output as float 03335 * 03336 * @param linear_accel_x_f : The float value of linear accel x meterpersecseq 03337 * 03338 * @return results of bus communication function 03339 * @retval 0 -> BNO055_SUCCESS 03340 * @retval 1 -> BNO055_ERROR 03341 */ 03342 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_linear_accel_x_msq( 03343 float *linear_accel_x_f); 03344 /*! 03345 * @brief This API is used to convert the linear 03346 * accel y raw data to meterpersecseq output as float 03347 * 03348 * @param linear_accel_y_f : The float value of linear accel y meterpersecseq 03349 * 03350 * @return results of bus communication function 03351 * @retval 0 -> BNO055_SUCCESS 03352 * @retval 1 -> BNO055_ERROR 03353 */ 03354 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_linear_accel_y_msq( 03355 float *linear_accel_y_f); 03356 /*! 03357 * @brief This API is used to convert the linear 03358 * accel z raw data to meterpersecseq output as float 03359 * 03360 * @param linear_accel_z_f : The float value of linear accel z meterpersecseq 03361 * 03362 * @return results of bus communication function 03363 * @retval 0 -> BNO055_SUCCESS 03364 * @retval 1 -> BNO055_ERROR 03365 * 03366 */ 03367 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_linear_accel_z_msq( 03368 float *linear_accel_z_f); 03369 /*! 03370 * @brief This API is used to convert the linear accel xyz raw data 03371 * to meterpersecseq output as float 03372 * 03373 * @param linear_accel_xyz : The meterpersecseq data of linear accel xyz 03374 * 03375 * Parameter | result 03376 * --------- | ----------------- 03377 * x | meterpersecseq data of linear accel 03378 * y | meterpersecseq data of linear accel 03379 * z | meterpersecseq data of linear accel 03380 * 03381 * 03382 * @return results of bus communication function 03383 * @retval 0 -> BNO055_SUCCESS 03384 * @retval 1 -> BNO055_ERROR 03385 * 03386 * 03387 */ 03388 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_linear_accel_xyz_msq( 03389 struct bno055_linear_accel_float_t *linear_accel_xyz); 03390 /********************************************************************/ 03391 /**\name FUNCTIONS FOR READING GRAVITY DATA OUTPUT AS FLOAT PRECISION */ 03392 /********************************************************************/ 03393 /*! 03394 * @brief This API is used to convert the gravity 03395 * x raw data to meterpersecseq output as float 03396 * 03397 * @param gravity_x_f : The float value of gravity x meterpersecseq 03398 * 03399 * @return results of bus communication function 03400 * @retval 0 -> BNO055_SUCCESS 03401 * @retval 1 -> BNO055_ERROR 03402 * 03403 * 03404 */ 03405 BNO055_RETURN_FUNCTION_TYPE bno055_convert_gravity_float_x_msq( 03406 float *gravity_x_f); 03407 /*! 03408 * @brief This API is used to convert the gravity 03409 * y raw data to meterpersecseq output as float 03410 * 03411 * @param gravity_y_f : The float value of gravity y meterpersecseq 03412 * 03413 * @return results of bus communication function 03414 * @retval 0 -> BNO055_SUCCESS 03415 * @retval 1 -> BNO055_ERROR 03416 * 03417 * 03418 */ 03419 BNO055_RETURN_FUNCTION_TYPE bno055_convert_gravity_float_y_msq( 03420 float *gravity_y_f); 03421 /*! 03422 * @brief This API is used to convert the gravity 03423 * z raw data to meterpersecseq output as float 03424 * 03425 * @param gravity_z_f : The float value of gravity z meterpersecseq 03426 * 03427 * @return results of bus communication function 03428 * @retval 0 -> BNO055_SUCCESS 03429 * @retval 1 -> BNO055_ERROR 03430 * 03431 */ 03432 BNO055_RETURN_FUNCTION_TYPE bno055_convert_gravity_float_z_msq( 03433 float *gravity_z_f); 03434 /*! 03435 * @brief This API is used to convert the gravity xyz raw data 03436 * to meterpersecseq output as float 03437 * 03438 * @param gravity_xyz : The meterpersecseq data of gravity xyz 03439 * 03440 * Parameter | result 03441 * --------- | ----------------- 03442 * x | meterpersecseq data of gravity 03443 * y | meterpersecseq data of gravity 03444 * z | meterpersecseq data of gravity 03445 * 03446 * 03447 * @return results of bus communication function 03448 * @retval 0 -> BNO055_SUCCESS 03449 * @retval 1 -> BNO055_ERROR 03450 * 03451 * 03452 */ 03453 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_gravity_xyz_msq( 03454 struct bno055_gravity_float_t *gravity_xyz); 03455 /**************************************************************************/ 03456 /**\name FUNCTIONS FOR READING TEMPERATURE DATA OUTPUT AS FLOAT PRECISION */ 03457 /*************************************************************************/ 03458 /*! 03459 * @brief This API is used to convert the temperature 03460 * data to Fahrenheit output as float 03461 * 03462 * @param temp_f : The float value of temperature Fahrenheit 03463 * 03464 * @return results of bus communication function 03465 * @retval 0 -> BNO055_SUCCESS 03466 * @retval 1 -> BNO055_ERROR 03467 * 03468 * 03469 */ 03470 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_temp_fahrenheit( 03471 float *temp_f); 03472 /*! 03473 * @brief This API is used to convert the temperature 03474 * data to Celsius output as float 03475 * 03476 * @param temp_f : The float value of temperature Celsius 03477 * 03478 * @return results of bus communication function 03479 * @retval 0 -> BNO055_SUCCESS 03480 * @retval 1 -> BNO055_ERROR 03481 * 03482 * 03483 * 03484 */ 03485 BNO055_RETURN_FUNCTION_TYPE bno055_convert_float_temp_celsius( 03486 float *temp_f); 03487 #endif 03488 #ifdef BNO055_DOUBLE_ENABLE 03489 /**************************************************************************/ 03490 /**\name FUNCTIONS FOR READING ACCEL DATA OUTPUT AS DOUBLE PRECISION */ 03491 /*************************************************************************/ 03492 /*! 03493 * @brief This API is used to convert the accel x raw data 03494 * to meterpersecseq output as double 03495 * 03496 * @param accel_x_d : The accel x meterpersecseq data 03497 * 03498 * 03499 * 03500 * @return results of bus communication function 03501 * @retval 0 -> BNO055_SUCCESS 03502 * @retval 1 -> BNO055_ERROR 03503 * 03504 * 03505 */ 03506 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_accel_x_msq( 03507 double *accel_x_d); 03508 /*! 03509 * @brief This API is used to convert the accel y raw data 03510 * to meterpersecseq output as double 03511 * 03512 * @param accel_y_d : The accel y meterpersecseq data 03513 * 03514 * 03515 * 03516 * @return results of bus communication function 03517 * @retval 0 -> BNO055_SUCCESS 03518 * @retval 1 -> BNO055_ERROR 03519 * 03520 * 03521 * 03522 */ 03523 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_accel_y_msq( 03524 double *accel_y_d); 03525 /*! 03526 * @brief This API is used to convert the accel z raw data 03527 * to meterpersecseq output as double 03528 * 03529 * @param accel_z_d : The accel z meterpersecseq data 03530 * 03531 * 03532 * 03533 * @return results of bus communication function 03534 * @retval 0 -> BNO055_SUCCESS 03535 * @retval 1 -> BNO055_ERROR 03536 */ 03537 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_accel_z_msq( 03538 double *accel_z_d); 03539 /*! 03540 * @brief This API is used to convert the accel x raw data 03541 * to millig output as double 03542 * 03543 * @param accel_x_d : The accel x millig data 03544 * 03545 * 03546 * 03547 * @return results of bus communication function 03548 * @retval 0 -> BNO055_SUCCESS 03549 * @retval 1 -> BNO055_ERROR 03550 * 03551 * 03552 * 03553 */ 03554 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_accel_x_mg( 03555 double *accel_x_d); 03556 /*! 03557 * @brief This API is used to convert the accel y raw data 03558 * to millig output as double 03559 * 03560 * @param accel_y_d : The accel y millig data 03561 * 03562 * 03563 * 03564 * @return results of bus communication function 03565 * @retval 0 -> BNO055_SUCCESS 03566 * @retval 1 -> BNO055_ERROR 03567 * 03568 * 03569 */ 03570 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_accel_y_mg( 03571 double *accel_y_d); 03572 /*! 03573 * @brief This API is used to convert the accel z raw data 03574 * to millig output as double 03575 * 03576 * @param accel_z_d : The accel z millig data 03577 * 03578 * 03579 * 03580 * @return results of bus communication function 03581 * @retval 0 -> BNO055_SUCCESS 03582 * @retval 1 -> BNO055_ERROR 03583 * 03584 */ 03585 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_accel_z_mg( 03586 double *accel_z_d); 03587 /*! 03588 * @brief This API is used to convert the accel xyz raw data 03589 * to meterpersecseq output as double 03590 * 03591 * @param accel_xyz : The meterpersecseq data of accel xyz 03592 * 03593 * Parameter | result 03594 * --------- | ----------------- 03595 * x | meterpersecseq data of accel 03596 * y | meterpersecseq data of accel 03597 * z | meterpersecseq data of accel 03598 * 03599 * 03600 * @return results of bus communication function 03601 * @retval 0 -> BNO055_SUCCESS 03602 * @retval 1 -> BNO055_ERROR 03603 * 03604 * 03605 */ 03606 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_accel_xyz_msq( 03607 struct bno055_accel_double_t *accel_xyz); 03608 /*! 03609 * @brief This API is used to convert the accel xyz raw data 03610 * to millig output as double 03611 * 03612 * @param accel_xyz : The millig data of accel xyz 03613 * 03614 * Parameter | result 03615 * --------- | ----------------- 03616 * x | millig data of accel 03617 * y | millig data of accel 03618 * z | millig data of accel 03619 * 03620 * 03621 * @return results of bus communication function 03622 * @retval 0 -> BNO055_SUCCESS 03623 * @retval 1 -> BNO055_ERROR 03624 * 03625 */ 03626 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_accel_xyz_mg( 03627 struct bno055_accel_double_t *accel_xyz); 03628 /**************************************************************************/ 03629 /**\name FUNCTIONS FOR READING MAG DATA OUTPUT AS DOUBLE PRECISION */ 03630 /*************************************************************************/ 03631 /*! 03632 * @brief This API is used to convert the mag x raw data 03633 * to microTesla output as double 03634 * 03635 * @param mag_x_d : The mag x microTesla data 03636 * 03637 * 03638 * 03639 * @return results of bus communication function 03640 * @retval 0 -> BNO055_SUCCESS 03641 * @retval 1 -> BNO055_ERROR 03642 * 03643 * 03644 * 03645 */ 03646 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_mag_x_uT( 03647 double *mag_x_d); 03648 /*! 03649 * @brief This API is used to convert the mag x raw data 03650 * to microTesla output as double 03651 * 03652 * @param mag_y_d : The mag x microTesla data 03653 * 03654 * 03655 * 03656 * @return results of bus communication function 03657 * @retval 0 -> BNO055_SUCCESS 03658 * @retval 1 -> BNO055_ERROR 03659 * 03660 * 03661 * 03662 */ 03663 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_mag_y_uT( 03664 double *mag_y_d); 03665 /*! 03666 * @brief This API is used to convert the mag z raw data 03667 * to microTesla output as double 03668 * 03669 * @param mag_z_d : The mag z microTesla data 03670 * 03671 * 03672 * 03673 * @return results of bus communication function 03674 * @retval 0 -> BNO055_SUCCESS 03675 * @retval 1 -> BNO055_ERROR 03676 * 03677 * 03678 */ 03679 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_mag_z_uT( 03680 double *mag_z_d); 03681 /*! 03682 * @brief This API is used to convert the mag yz raw data 03683 * to microTesla output as double 03684 * 03685 * @param mag_xyz : The microTesla data of mag xyz 03686 * 03687 * Parameter | result 03688 * --------- | ----------------- 03689 * x | microTesla data of mag 03690 * y | microTesla data of mag 03691 * z | microTesla data of mag 03692 * 03693 * 03694 * @return results of bus communication function 03695 * @retval 0 -> BNO055_SUCCESS 03696 * @retval 1 -> BNO055_ERROR 03697 * 03698 */ 03699 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_mag_xyz_uT( 03700 struct bno055_mag_double_t *mag_xyz); 03701 /**************************************************************************/ 03702 /**\name FUNCTIONS FOR READING GYRO DATA OUTPUT AS DOUBLE PRECISION */ 03703 /*************************************************************************/ 03704 /*! 03705 * @brief This API is used to convert the gyro x raw data 03706 * to dps output as double 03707 * 03708 * @param gyro_x_d : The gyro x dps double data 03709 * 03710 * 03711 * 03712 * @return results of bus communication function 03713 * @retval 0 -> BNO055_SUCCESS 03714 * @retval 1 -> BNO055_ERROR 03715 * 03716 * 03717 */ 03718 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_gyro_x_dps( 03719 double *gyro_x_d); 03720 /*! 03721 * @brief This API is used to convert the gyro y raw data 03722 * to dps output as double 03723 * 03724 * @param gyro_y_d : The gyro y dps double data 03725 * 03726 * 03727 * 03728 * @return results of bus communication function 03729 * @retval 0 -> BNO055_SUCCESS 03730 * @retval 1 -> BNO055_ERROR 03731 * 03732 * 03733 */ 03734 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_gyro_y_dps( 03735 double *gyro_y_d); 03736 /*! 03737 * @brief This API is used to convert the gyro z raw data 03738 * to dps output as double 03739 * 03740 * @param gyro_z_d : The gyro z dps double data 03741 * 03742 * 03743 * 03744 * @return results of bus communication function 03745 * @retval 0 -> BNO055_SUCCESS 03746 * @retval 1 -> BNO055_ERROR 03747 * 03748 * 03749 */ 03750 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_gyro_z_dps( 03751 double *gyro_z_d); 03752 /*! 03753 * @brief This API is used to convert the gyro x raw data 03754 * to rps output as double 03755 * 03756 * @param gyro_x_d : The gyro x dps double data 03757 * 03758 * 03759 * 03760 * @return results of bus communication function 03761 * @retval 0 -> BNO055_SUCCESS 03762 * @retval 1 -> BNO055_ERROR 03763 * 03764 * 03765 */ 03766 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_gyro_x_rps( 03767 double *gyro_x_d); 03768 /*! 03769 * @brief This API is used to convert the gyro y raw data 03770 * to rps output as double 03771 * 03772 * @param gyro_y_d : The gyro y dps double data 03773 * 03774 * 03775 * 03776 * @return results of bus communication function 03777 * @retval 0 -> BNO055_SUCCESS 03778 * @retval 1 -> BNO055_ERROR 03779 * 03780 * 03781 */ 03782 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_gyro_y_rps( 03783 double *gyro_y_d); 03784 /*! 03785 * @brief This API is used to convert the gyro z raw data 03786 * to rps output as double 03787 * 03788 * @param gyro_z_d : The gyro z rps double data 03789 * 03790 * 03791 * 03792 * @return results of bus communication function 03793 * @retval 0 -> BNO055_SUCCESS 03794 * @retval 1 -> BNO055_ERROR 03795 * 03796 * 03797 */ 03798 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_gyro_z_rps( 03799 double *gyro_z_d); 03800 /*! 03801 * @brief This API is used to convert the gyro xyz raw data 03802 * to dps output as double 03803 * 03804 * @param gyro_xyz : The dps data of gyro xyz 03805 * 03806 * Parameter | result 03807 * --------- | ----------------- 03808 * x | dps data of gyro 03809 * y | dps data of gyro 03810 * z | dps data of gyro 03811 * 03812 * 03813 * @return results of bus communication function 03814 * @retval 0 -> BNO055_SUCCESS 03815 * @retval 1 -> BNO055_ERROR 03816 * 03817 */ 03818 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_gyro_xyz_dps( 03819 struct bno055_gyro_double_t *gyro_xyz); 03820 /*! 03821 * @brief This API is used to convert the gyro xyz raw data 03822 * to rps output as double 03823 * 03824 * @param gyro_xyz : The rps data of gyro xyz 03825 * 03826 * Parameter | result 03827 * --------- | ----------------- 03828 * x | rps data of gyro 03829 * y | rps data of gyro 03830 * z | rps data of gyro 03831 * 03832 * 03833 * @return results of bus communication function 03834 * @retval 0 -> BNO055_SUCCESS 03835 * @retval 1 -> BNO055_ERROR 03836 * 03837 */ 03838 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_gyro_xyz_rps( 03839 struct bno055_gyro_double_t *gyro_xyz); 03840 /**************************************************************************/ 03841 /**\name FUNCTIONS FOR READING EULER DATA OUTPUT AS DOUBLE PRECISION */ 03842 /*************************************************************************/ 03843 /*! 03844 * @brief This API is used to convert the Euler h raw data 03845 * to degree output as double 03846 * 03847 * @param euler_h_d : The double value of Euler h degree 03848 * 03849 * @return results of bus communication function 03850 * @retval 0 -> BNO055_SUCCESS 03851 * @retval 1 -> BNO055_ERROR 03852 * 03853 * 03854 */ 03855 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_euler_h_deg( 03856 double *euler_h_d); 03857 /*! 03858 * @brief This API is used to convert the Euler p raw data 03859 * to degree output as double 03860 * 03861 * @param euler_p_d : The double value of Euler p degree 03862 * 03863 * @return results of bus communication function 03864 * @retval 0 -> BNO055_SUCCESS 03865 * @retval 1 -> BNO055_ERROR 03866 * 03867 * 03868 */ 03869 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_euler_p_deg( 03870 double *euler_p_d); 03871 /*! 03872 * @brief This API is used to convert the Euler r raw data 03873 * to degree output as double 03874 * 03875 * @param euler_r_d : The double value of Euler r degree 03876 * 03877 * @return results of bus communication function 03878 * @retval 0 -> BNO055_SUCCESS 03879 * @retval 1 -> BNO055_ERROR 03880 * 03881 * 03882 */ 03883 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_euler_r_deg( 03884 double *euler_r_d); 03885 /*! 03886 * @brief This API is used to convert the Euler h raw data 03887 * to radians output as double 03888 * 03889 * @param euler_h_d : The double value of Euler h radians 03890 * 03891 * @return results of bus communication function 03892 * @retval 0 -> BNO055_SUCCESS 03893 * @retval 1 -> BNO055_ERROR 03894 * 03895 * 03896 */ 03897 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_euler_h_rad( 03898 double *euler_h_d); 03899 /*! 03900 * @brief This API is used to convert the Euler p raw data 03901 * to radians output as double 03902 * 03903 * @param euler_p_d : The double value of Euler p radians 03904 * 03905 * @return results of bus communication function 03906 * @retval 0 -> BNO055_SUCCESS 03907 * @retval 1 -> BNO055_ERROR 03908 * 03909 * 03910 */ 03911 03912 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_euler_p_rad( 03913 double *euler_p_d); 03914 /*! 03915 * @brief This API is used to convert the Euler r raw data 03916 * to radians output as double 03917 * 03918 * @param euler_r_d : The double value of Euler r radians 03919 * 03920 * @return results of bus communication function 03921 * @retval 0 -> BNO055_SUCCESS 03922 * @retval 1 -> BNO055_ERROR 03923 * 03924 * 03925 */ 03926 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_euler_r_rad( 03927 double *euler_r_d); 03928 /*! 03929 * @brief This API is used to convert the Euler hpr raw data 03930 * to degree output as double 03931 * 03932 * @param euler_hpr : The degree data of Euler hpr 03933 * 03934 * Parameter | result 03935 * --------- | ----------------- 03936 * h | degree data of Euler 03937 * r | degree data of Euler 03938 * p | degree data of Euler 03939 * 03940 * 03941 * @return results of bus communication function 03942 * @retval 0 -> BNO055_SUCCESS 03943 * @retval 1 -> BNO055_ERROR 03944 * 03945 */ 03946 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_euler_hpr_deg( 03947 struct bno055_euler_double_t *euler_hpr); 03948 /*! 03949 * @brief This API is used to convert the Euler hpr raw data 03950 * to radians output as double 03951 * 03952 * @param euler_hpr : The radians data of Euler hpr 03953 * 03954 * Parameter | result 03955 * --------- | ----------------- 03956 * h | radians data of Euler 03957 * r | radians data of Euler 03958 * p | radians data of Euler 03959 * 03960 * 03961 * @return results of bus communication function 03962 * @retval 0 -> BNO055_SUCCESS 03963 * @retval 1 -> BNO055_ERROR 03964 * 03965 */ 03966 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_euler_hpr_rad( 03967 struct bno055_euler_double_t *euler_hpr); 03968 /****************************************************************************/ 03969 /**\name FUNCTIONS FOR READING LINEAR ACCEL DATA OUTPUT AS DOUBLE PRECISION */ 03970 /****************************************************************************/ 03971 /*! 03972 * @brief This API is used to convert the linear 03973 * accel x raw data to meterpersecseq output as double 03974 * 03975 * @param linear_accel_x_d : The double value of 03976 * linear accel x meterpersecseq 03977 * 03978 * @return results of bus communication function 03979 * @retval 0 -> BNO055_SUCCESS 03980 * @retval 1 -> BNO055_ERROR 03981 * 03982 * 03983 */ 03984 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_linear_accel_x_msq( 03985 double *linear_accel_x_d); 03986 /*! 03987 * @brief This API is used to convert the linear 03988 * accel y raw data to meterpersecseq output as double 03989 * 03990 * @param linear_accel_y_d : The double value of 03991 * linear accel y meterpersecseq 03992 * 03993 * @return results of bus communication function 03994 * @retval 0 -> BNO055_SUCCESS 03995 * @retval 1 -> BNO055_ERROR 03996 * 03997 * 03998 */ 03999 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_linear_accel_y_msq( 04000 double *linear_accel_y_d); 04001 /*! 04002 * @brief This API is used to convert the linear 04003 * accel z raw data to meterpersecseq output as double 04004 * 04005 * @param linear_accel_z_d : The double value of 04006 * linear accel z meterpersecseq 04007 * 04008 * @return results of bus communication function 04009 * @retval 0 -> BNO055_SUCCESS 04010 * @retval 1 -> BNO055_ERROR 04011 * 04012 * 04013 */ 04014 04015 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_linear_accel_z_msq( 04016 double *linear_accel_z_d); 04017 /*! 04018 * @brief This API is used to convert the linear accel xyz raw data 04019 * to meterpersecseq output as double 04020 * 04021 * @param linear_accel_xyz : The meterpersecseq data of linear accel xyz 04022 * 04023 * Parameter | result 04024 * --------- | ----------------- 04025 * x | meterpersecseq data of linear accel 04026 * y | meterpersecseq data of linear accel 04027 * z | meterpersecseq data of linear accel 04028 * 04029 * 04030 * @return results of bus communication function 04031 * @retval 0 -> BNO055_SUCCESS 04032 * @retval 1 -> BNO055_ERROR 04033 * 04034 */ 04035 04036 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_linear_accel_xyz_msq( 04037 struct bno055_linear_accel_double_t *linear_accel_xyz); 04038 /**************************************************************************/ 04039 /**\name FUNCTIONS FOR READING GRAVITY DATA OUTPUT AS DOUBLE PRECISION */ 04040 /*************************************************************************/ 04041 /*! 04042 * @brief This API is used to convert the gravity 04043 * x raw data to meterpersecseq output as double 04044 * 04045 * @param gravity_x_d : The double value of gravity x meterpersecseq 04046 * 04047 * @return results of bus communication function 04048 * @retval 0 -> BNO055_SUCCESS 04049 * @retval 1 -> BNO055_ERROR 04050 * 04051 * 04052 */ 04053 BNO055_RETURN_FUNCTION_TYPE bno055_convert_gravity_double_x_msq( 04054 double *gravity_x_d); 04055 /*! 04056 * @brief This API is used to convert the gravity 04057 * y raw data to meterpersecseq output as double 04058 * 04059 * @param gravity_y_d : The double value of gravity y meterpersecseq 04060 * 04061 * @return results of bus communication function 04062 * @retval 0 -> BNO055_SUCCESS 04063 * @retval 1 -> BNO055_ERROR 04064 * 04065 * 04066 */ 04067 BNO055_RETURN_FUNCTION_TYPE bno055_convert_gravity_double_y_msq( 04068 double *gravity_y_d); 04069 /*! 04070 * @brief This API is used to convert the gravity 04071 * z raw data to meterpersecseq output as double 04072 * 04073 * @param gravity_z_d : The double value of gravity z meterpersecseq 04074 * 04075 * @return results of bus communication function 04076 * @retval 0 -> BNO055_SUCCESS 04077 * @retval 1 -> BNO055_ERROR 04078 * 04079 * 04080 */ 04081 BNO055_RETURN_FUNCTION_TYPE bno055_convert_gravity_double_z_msq( 04082 double *gravity_z_d); 04083 /*! 04084 * @brief This API is used to convert the gravity xyz raw data 04085 * to meterpersecseq output as double 04086 * 04087 * @param gravity_xyz : The meterpersecseq data of gravity xyz 04088 * 04089 * Parameter | result 04090 * --------- | ----------------- 04091 * x | meterpersecseq data of gravity 04092 * y | meterpersecseq data of gravity 04093 * z | meterpersecseq data of gravity 04094 * 04095 * 04096 * @return results of bus communication function 04097 * @retval 0 -> BNO055_SUCCESS 04098 * @retval 1 -> BNO055_ERROR 04099 * 04100 */ 04101 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_gravity_xyz_msq( 04102 struct bno055_gravity_double_t *gravity_xyz); 04103 /**************************************************************************/ 04104 /**\name FUNCTIONS FOR READING TEMPERATURE DATA OUTPUT AS DOUBLE PRECISION*/ 04105 /*************************************************************************/ 04106 /*! 04107 * @brief This API is used to convert the temperature 04108 * data to Fahrenheit output as double 04109 * 04110 * @param temp_d : The double value of temperature Fahrenheit 04111 * 04112 * @return results of bus communication function 04113 * @retval 0 -> BNO055_SUCCESS 04114 * @retval 1 -> BNO055_ERROR 04115 * 04116 * 04117 */ 04118 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_temp_fahrenheit( 04119 double *temp_d); 04120 /*! 04121 * @brief This API is used to convert the temperature 04122 * data to Celsius output as double 04123 * 04124 * @param temp_d : The double value of temperature Celsius 04125 * 04126 * @return results of bus communication function 04127 * @retval 0 -> BNO055_SUCCESS 04128 * @retval 1 -> BNO055_ERROR 04129 * 04130 * 04131 */ 04132 BNO055_RETURN_FUNCTION_TYPE bno055_convert_double_temp_celsius( 04133 double *temp_d); 04134 #endif 04135 /**************************************************************************/ 04136 /**\name FUNCTIONS FOR READING ACCEL,MAG,GYRO AND SYSTEM CALIBRATION STATUS*/ 04137 /*************************************************************************/ 04138 /*! 04139 * @brief This API used to read 04140 * mag calibration status from register from 0x35 bit 0 and 1 04141 * 04142 * @param mag_calib_u8 : The value of mag calib status 04143 * 04144 * 04145 * @return results of bus communication function 04146 * @retval 0 -> BNO055_SUCCESS 04147 * @retval 1 -> BNO055_ERROR 04148 * 04149 */ 04150 BNO055_RETURN_FUNCTION_TYPE bno055_get_mag_calib_stat( 04151 u8 *mag_calib_u8); 04152 /*! 04153 * @brief This API used to read 04154 * accel calibration status from register from 0x35 bit 2 and 3 04155 * 04156 * @param accel_calib_u8 : The value of accel calib status 04157 * 04158 * 04159 * @return results of bus communication function 04160 * @retval 0 -> BNO055_SUCCESS 04161 * @retval 1 -> BNO055_ERROR 04162 * 04163 */ 04164 BNO055_RETURN_FUNCTION_TYPE bno055_get_accel_calib_stat( 04165 u8 *accel_calib_u8); 04166 /*! 04167 * @brief This API used to read 04168 * gyro calibration status from register from 0x35 bit 4 and 5 04169 * 04170 * @param gyro_calib_u8 : The value of gyro calib status 04171 * 04172 * 04173 * @return results of bus communication function 04174 * @retval 0 -> BNO055_SUCCESS 04175 * @retval 1 -> BNO055_ERROR 04176 * 04177 */ 04178 BNO055_RETURN_FUNCTION_TYPE bno055_get_gyro_calib_stat( 04179 u8 *gyro_calib_u8); 04180 /*! 04181 * @brief This API used to read 04182 * system calibration status from register from 0x35 bit 6 and 7 04183 * 04184 * @param sys_calib_u8 : The value of system calib status 04185 * 04186 * 04187 * @return results of bus communication function 04188 * @retval 0 -> BNO055_SUCCESS 04189 * @retval 1 -> BNO055_ERROR 04190 * 04191 */ 04192 BNO055_RETURN_FUNCTION_TYPE bno055_get_sys_calib_stat( 04193 u8 *sys_calib_u8); 04194 /*! 04195 * @brief This API used to read 04196 * all calibration status from register from 0x35 04197 * 04198 * @param all_calib_u8 : The value of all calib status 04199 * 04200 * 04201 * @return results of bus communication function 04202 * @retval 0 -> BNO055_SUCCESS 04203 * @retval 1 -> BNO055_ERROR 04204 * 04205 */ 04206 BNO055_RETURN_FUNCTION_TYPE bno055_get_all_calib_stat( 04207 u8 *all_calib_u8); 04208 /******************************************************************/ 04209 /**\name FUNCTIONS FOR READING ACCEL,MAG,GYRO AND SYSTEM SELF TEST */ 04210 /******************************************************************/ 04211 /*! 04212 * @brief This API used to read 04213 * self test of accel from register from 0x36 bit 0 04214 * 04215 * @param selftest_accel_u8 : The value of self test of accel 04216 * 04217 * selftest_accel_u8 | result 04218 * -------------------- | --------------------- 04219 * 0x00 | indicates test failed 04220 * 0x01 | indicated test passed 04221 * 04222 * @return results of bus communication function 04223 * @retval 0 -> BNO055_SUCCESS 04224 * @retval 1 -> BNO055_ERROR 04225 * 04226 */ 04227 BNO055_RETURN_FUNCTION_TYPE bno055_get_selftest_accel( 04228 u8 *selftest_accel_u8); 04229 /*! 04230 * @brief This API used to read 04231 * self test of mag from register from 0x36 bit 1 04232 * 04233 * @param selftest_mag_u8 : The value of self test of mag 04234 * 04235 * selftest_mag_u8 | result 04236 * -------------------- | --------------------- 04237 * 0x00 | indicates test failed 04238 * 0x01 | indicated test passed 04239 * 04240 * @return results of bus communication function 04241 * @retval 0 -> BNO055_SUCCESS 04242 * @retval 1 -> BNO055_ERROR 04243 * 04244 */ 04245 BNO055_RETURN_FUNCTION_TYPE bno055_get_selftest_mag( 04246 u8 *selftest_mag_u8); 04247 /*! 04248 * @brief This API used to read 04249 * self test of gyro from register from 0x36 bit 2 04250 * 04251 * @param selftest_gyro_u8 : The value of self test of gyro 04252 * 04253 * selftest_gyro_u8 | result 04254 * -------------------- | --------------------- 04255 * 0x00 | indicates test failed 04256 * 0x01 | indicated test passed 04257 * 04258 * @return results of bus communication function 04259 * @retval 0 -> BNO055_SUCCESS 04260 * @retval 1 -> BNO055_ERROR 04261 * 04262 */ 04263 BNO055_RETURN_FUNCTION_TYPE bno055_get_selftest_gyro( 04264 u8 *selftest_gyro_u8); 04265 /*! 04266 * @brief This API used to read 04267 * self test of micro controller from register from 0x36 bit 3 04268 * 04269 * @param selftest_mcu_u8 : The value of self test of micro controller 04270 * 04271 * selftest_mcu_u8 | result 04272 * -------------------- | --------------------- 04273 * 0x00 | indicates test failed 04274 * 0x01 | indicated test passed 04275 * 04276 * @return results of bus communication function 04277 * @retval 0 -> BNO055_SUCCESS 04278 * @retval 1 -> BNO055_ERROR 04279 * 04280 */ 04281 BNO055_RETURN_FUNCTION_TYPE bno055_get_selftest_mcu( 04282 u8 *selftest_mcu_u8); 04283 /*****************************************************/ 04284 /**\name FUNCTIONS FOR READING GYRO INTERRUPT STATUS */ 04285 /*****************************************************/ 04286 /*! 04287 * @brief This API used to read the stat_s8 of 04288 * gyro anymotion interrupt from register from 0x37 bit 2 04289 * 04290 * @param gyro_any_motion_u8 : The value of gyro anymotion interrupt 04291 * 04292 * gyro_any_motion_u8 | result 04293 * -------------------- | --------------------- 04294 * 0x00 | indicates no interrupt triggered 04295 * 0x01 | indicates interrupt triggered 04296 * 04297 * @return results of bus communication function 04298 * @retval 0 -> BNO055_SUCCESS 04299 * @retval 1 -> BNO055_ERROR 04300 * 04301 * @note Gyro anymotion interrupt can be BNO055_BIT_ENABLE 04302 * by the following APIs 04303 * 04304 * bno055_set_intr_mask_gyro_any_motion() 04305 * 04306 * bno055_set_intr_gyro_any_motion() 04307 * 04308 */ 04309 BNO055_RETURN_FUNCTION_TYPE bno055_get_intr_stat_gyro_any_motion( 04310 u8 *gyro_any_motion_u8); 04311 /*! 04312 * @brief This API used to read the stat_s8 of 04313 * gyro highrate interrupt from register from 0x37 bit 3 04314 * 04315 * @param gyro_highrate_u8 : The value of gyro highrate interrupt 04316 * 04317 * gyro_highrate_u8 | result 04318 * ------------------- | --------------------- 04319 * 0x00 | indicates no interrupt triggered 04320 * 0x01 | indicates interrupt triggered 04321 * 04322 * @return results of bus communication function 04323 * @retval 0 -> BNO055_SUCCESS 04324 * @retval 1 -> BNO055_ERROR 04325 * 04326 * @note Gyro highrate interrupt can be configured 04327 * by the following APIs 04328 * 04329 * bno055_set_intr_mask_gyro_highrate() 04330 * 04331 * bno055_set_intr_gyro_highrate() 04332 */ 04333 BNO055_RETURN_FUNCTION_TYPE bno055_get_intr_stat_gyro_highrate( 04334 u8 *gyro_highrate_u8); 04335 /*****************************************************/ 04336 /**\name FUNCTIONS FOR READING ACCEL INTERRUPT STATUS */ 04337 /*****************************************************/ 04338 /*! 04339 * @brief This API used to read the status of 04340 * accel highg interrupt from register from 0x37 bit 5 04341 * 04342 * @param accel_high_g_u8 : The value of accel highg interrupt 04343 * 04344 * accel_high_g_u8 | result 04345 * ------------------- | --------------------- 04346 * 0x00 | indicates no interrupt triggered 04347 * 0x01 | indicates interrupt triggered 04348 * 04349 * @return results of bus communication function 04350 * @retval 0 -> BNO055_SUCCESS 04351 * @retval 1 -> BNO055_ERROR 04352 * 04353 * @note Accel highg interrupt can be configured 04354 * by the following APIs 04355 * 04356 * bno055_set_intr_mask_accel_high_g() 04357 * 04358 * bno055_set_intr_accel_high_g() 04359 * 04360 */ 04361 BNO055_RETURN_FUNCTION_TYPE bno055_get_intr_stat_accel_high_g( 04362 u8 *accel_high_g_u8); 04363 /*! 04364 * @brief This API used to read the stat_s8 of 04365 * accel anymotion interrupt from register from 0x37 bit 6 04366 * 04367 * @param accel_any_motion_u8 : The value of accel anymotion interrupt 04368 * 04369 * accel_any_motion_u8 | result 04370 * ------------------- | --------------------- 04371 * 0x00 | indicates no interrupt triggered 04372 * 0x01 | indicates interrupt triggered 04373 * 04374 * @return results of bus communication function 04375 * @retval 0 -> BNO055_SUCCESS 04376 * @retval 1 -> BNO055_ERROR 04377 * 04378 * @note Accel anymotion interrupt can be configured 04379 * by the following APIs 04380 * 04381 * bno055_set_intr_mask_accel_any_motion() 04382 * 04383 * bno055_set_intr_accel_any_motion() 04384 */ 04385 BNO055_RETURN_FUNCTION_TYPE bno055_get_intr_stat_accel_any_motion( 04386 u8 *accel_any_motion_u8); 04387 /*! 04388 * @brief This API used to read the stat_s8 of 04389 * accel nomotion/slowmotion interrupt from register from 0x37 bit 6 04390 * 04391 * @param accel_no_motion_u8 : 04392 * The value of accel nomotion/slowmotion interrupt 04393 * 04394 * accel_no_motion_u8 | result 04395 * ------------------- | --------------------- 04396 * 0x00 | indicates no interrupt triggered 04397 * 0x01 | indicates interrupt triggered 04398 * 04399 * @return results of bus communication function 04400 * @retval 0 -> BNO055_SUCCESS 04401 * @retval 1 -> BNO055_ERROR 04402 * 04403 * @note Accel nomotion/slowmotion interrupt can be configured 04404 * by the following APIs 04405 * 04406 * bno055_set_intr_mask_accel_nomotion() 04407 * 04408 * bno055_set_intr_accel_nomotion() 04409 */ 04410 BNO055_RETURN_FUNCTION_TYPE bno055_get_intr_stat_accel_no_motion( 04411 u8 *accel_no_motion_u8); 04412 /**************************************************************************/ 04413 /**\name FUNCTIONS FOR READING SYSTEM CLOCK, STATUS AND BNO055_ERROR CODE */ 04414 /*************************************************************************/ 04415 /*! 04416 * @brief This API is used to read status of main clock 04417 * from the register 0x38 bit 0 04418 * 04419 * @param stat_main_clk_u8 : the status of main clock 04420 * 04421 * 04422 * @return results of bus communication function 04423 * @retval 0 -> BNO055_SUCCESS 04424 * @retval 1 -> BNO055_ERROR 04425 * 04426 */ 04427 BNO055_RETURN_FUNCTION_TYPE bno055_get_stat_main_clk( 04428 u8 *stat_main_clk_u8); 04429 /*! 04430 * @brief This API is used to read system status 04431 * code from the register 0x39 it is a byte of data 04432 * 04433 * @param sys_stat_u8 : the status of system 04434 * 04435 * 04436 * @return results of bus communication function 04437 * @retval 0 -> BNO055_SUCCESS 04438 * @retval 1 -> BNO055_ERROR 04439 * 04440 */ 04441 BNO055_RETURN_FUNCTION_TYPE bno055_get_sys_stat_code( 04442 u8 *sys_stat_u8); 04443 /*! 04444 * @brief This API is used to read system BNO055_ERROR 04445 * code from the register 0x3A it is a byte of data 04446 * 04447 * @param sys_error_u8 : The value of system BNO055_ERROR code 04448 * 04449 * 04450 * @return results of bus communication function 04451 * @retval 0 -> BNO055_SUCCESS 04452 * @retval 1 -> BNO055_ERROR 04453 * 04454 * 04455 */ 04456 BNO055_RETURN_FUNCTION_TYPE bno055_get_sys_error_code( 04457 u8 *sys_error_u8); 04458 /********************************************/ 04459 /**\name FUNCTIONS FOR ACCEL UNIT SELECTION */ 04460 /********************************************/ 04461 /*! 04462 * @brief This API used to read the accel unit 04463 * from register from 0x3B bit 0 04464 * 04465 * @param accel_unit_u8 : The value of accel unit 04466 * 04467 * accel_unit_u8 | result 04468 * ------------- | --------------- 04469 * 0x00 | BNO055_ACCEL_UNIT_MSQ 04470 * 0x01 | BNO055_ACCEL_UNIT_MG 04471 * 04472 * @return results of bus communication function 04473 * @retval 0 -> BNO055_SUCCESS 04474 * @retval 1 -> BNO055_ERROR 04475 * 04476 */ 04477 BNO055_RETURN_FUNCTION_TYPE bno055_get_accel_unit( 04478 u8 *accel_unit_u8); 04479 /*! 04480 * @brief This API used to write the accel unit 04481 * from register from 0x3B bit 0 04482 * 04483 * @param accel_unit_u8 : The value of accel unit 04484 * 04485 * accel_unit_u8 | result 04486 * ------------- | --------------- 04487 * 0x00 | BNO055_ACCEL_UNIT_MSQ 04488 * 0x01 | BNO055_ACCEL_UNIT_MG 04489 * 04490 * @return results of bus communication function 04491 * @retval 0 -> BNO055_SUCCESS 04492 * @retval 1 -> BNO055_ERROR 04493 * 04494 * 04495 */ 04496 BNO055_RETURN_FUNCTION_TYPE bno055_set_accel_unit( 04497 u8 accel_unit_u8); 04498 /********************************************/ 04499 /**\name FUNCTIONS FOR GYRO UNIT SELECTION */ 04500 /********************************************/ 04501 /*! 04502 * @brief This API used to read the gyro unit 04503 * from register from 0x3B bit 1 04504 * 04505 * @param gyro_unit_u8 : The value of accel unit 04506 * 04507 * gyro_unit_u8 | result 04508 * ------------- | ----------- 04509 * 0x00 | BNO055_GYRO_UNIT_DPS 04510 * 0x01 | BNO055_GYRO_UNIT_RPS 04511 * 04512 * @return results of bus communication function 04513 * @retval 0 -> BNO055_SUCCESS 04514 * @retval 1 -> BNO055_ERROR 04515 * 04516 * 04517 */ 04518 BNO055_RETURN_FUNCTION_TYPE bno055_get_gyro_unit( 04519 u8 *gyro_unit_u8); 04520 /*! 04521 * @brief This API used to write the gyro unit 04522 * from register from 0x3B bit 1 04523 * 04524 * @param gyro_unit_u8 : The value of accel unit 04525 * 04526 * gyro_unit_u8 | result 04527 * ------------- | ----------- 04528 * 0x00 | BNO055_GYRO_UNIT_DPS 04529 * 0x01 | BNO055_GYRO_UNIT_RPS 04530 * 04531 * @return results of bus communication function 04532 * @retval 0 -> BNO055_SUCCESS 04533 * @retval 1 -> BNO055_ERROR 04534 * 04535 * 04536 */ 04537 BNO055_RETURN_FUNCTION_TYPE bno055_set_gyro_unit(u8 gyro_unit_u8); 04538 /********************************************/ 04539 /**\name FUNCTIONS FOR EULER UNIT SELECTION */ 04540 /********************************************/ 04541 /*! 04542 * @brief This API used to read the Euler unit 04543 * from register from 0x3B bit 2 04544 * 04545 * @param euler_unit_u8 : The value of accel unit 04546 * 04547 * euler_unit_u8 | result 04548 * -------------- | ----------- 04549 * 0x00 | BNO055_EULER_UNIT_DEG 04550 * 0x01 | BNO055_EULER_UNIT_RAD 04551 * 04552 * @return results of bus communication function 04553 * @retval 0 -> BNO055_SUCCESS 04554 * @retval 1 -> BNO055_ERROR 04555 * 04556 * 04557 */ 04558 BNO055_RETURN_FUNCTION_TYPE bno055_get_euler_unit( 04559 u8 *euler_unit_u8); 04560 /*! 04561 * @brief This API used to write the Euler unit 04562 * from register from 0x3B bit 2 04563 * 04564 * @param euler_unit_u8 : The value of Euler unit 04565 * 04566 * euler_unit_u8 | result 04567 * -------------- | ----------- 04568 * 0x00 | BNO055_EULER_UNIT_DEG 04569 * 0x01 | BNO055_EULER_UNIT_RAD 04570 * 04571 * @return results of bus communication function 04572 * @retval 0 -> BNO055_SUCCESS 04573 * @retval 1 -> BNO055_ERROR 04574 * 04575 * 04576 */ 04577 BNO055_RETURN_FUNCTION_TYPE bno055_set_euler_unit(u8 euler_unit_u8); 04578 /********************************************/ 04579 /**\name FUNCTIONS FOR TILT UNIT SELECTION */ 04580 /********************************************/ 04581 /*! 04582 * @brief This API used to write the tilt unit 04583 * from register from 0x3B bit 3 04584 * 04585 * @param tilt_unit_u8 : The value of tilt unit 04586 * 04587 * tilt_unit_u8 | result 04588 * --------------- | --------- 04589 * 0x00 | degrees 04590 * 0x01 | radians 04591 * 04592 * @return results of bus communication function 04593 * @retval 0 -> BNO055_SUCCESS 04594 * @retval 1 -> BNO055_ERROR 04595 * 04596 * 04597 */ 04598 BNO055_RETURN_FUNCTION_TYPE bno055_get_tilt_unit( 04599 u8 *tilt_unit_u8); 04600 /*! 04601 * @brief This API used to write the tilt unit 04602 * from register from 0x3B bit 3 04603 * 04604 * @param tilt_unit_u8 : The value of tilt unit 04605 * 04606 * tilt_unit_u8 | result 04607 * --------------- | --------- 04608 * 0x00 | degrees 04609 * 0x01 | radians 04610 * 04611 * @return results of bus communication function 04612 * @retval 0 -> BNO055_SUCCESS 04613 * @retval 1 -> BNO055_ERROR 04614 * 04615 * 04616 * 04617 * \return Communication results 04618 * 04619 * 04620 */ 04621 BNO055_RETURN_FUNCTION_TYPE bno055_set_tilt_unit( 04622 u8 tilt_unit_u8); 04623 /**************************************************/ 04624 /**\name FUNCTIONS FOR TEMPERATURE UNIT SELECTION */ 04625 /**************************************************/ 04626 /*! 04627 * @brief This API used to read the temperature unit 04628 * from register from 0x3B bit 4 04629 * 04630 * @param temp_unit_u8 : The value of temperature unit 04631 * 04632 * temp_unit_u8 | result 04633 * ----------- | -------------- 04634 * 0x00 | BNO055_TEMP_UNIT_CELSIUS 04635 * 0x01 | BNO055_TEMP_UNIT_FAHRENHEIT 04636 * 04637 * @return results of bus communication function 04638 * @retval 0 -> BNO055_SUCCESS 04639 * @retval 1 -> BNO055_ERROR 04640 * 04641 */ 04642 BNO055_RETURN_FUNCTION_TYPE bno055_get_temp_unit( 04643 u8 *temp_unit_u8); 04644 /*! 04645 * @brief This API used to write the temperature unit 04646 * from register from 0x3B bit 4 04647 * 04648 * @param temp_unit_u8 : The value of temperature unit 04649 * 04650 * temp_unit_u8 | result 04651 * ----------- | -------------- 04652 * 0x00 | BNO055_TEMP_UNIT_CELSIUS 04653 * 0x01 | BNO055_TEMP_UNIT_FAHRENHEIT 04654 * 04655 * @return results of bus communication function 04656 * @retval 0 -> BNO055_SUCCESS 04657 * @retval 1 -> BNO055_ERROR 04658 * 04659 * 04660 */ 04661 BNO055_RETURN_FUNCTION_TYPE bno055_set_temp_unit( 04662 u8 temp_unit_u8); 04663 /**************************************************/ 04664 /**\name FUNCTIONS FOR DATA OUTPUT FORMAT SELECT */ 04665 /**************************************************/ 04666 /*! 04667 * @brief This API used to read the current selected orientation mode 04668 * from register from 0x3B bit 7 04669 * 04670 * @param data_output_format_u8 : The value of data output format 04671 * 04672 * data_output_format_u8 | result 04673 * -------------------- | -------- 04674 * 0x00 | Windows 04675 * 0x01 | Android 04676 * 04677 * @return results of bus communication function 04678 * @retval 0 -> BNO055_SUCCESS 04679 * @retval 1 -> BNO055_ERROR 04680 * 04681 */ 04682 BNO055_RETURN_FUNCTION_TYPE bno055_get_data_output_format( 04683 u8 *data_output_format_u8); 04684 /*! 04685 * @brief This API used to read the current selected orientation mode 04686 * from register from 0x3B bit 7 04687 * 04688 * @param data_output_format_u8 : The value of data output format 04689 * 04690 * data_output_format_u8 | result 04691 * -------------------- | -------- 04692 * 0x00 | Windows 04693 * 0x01 | Android 04694 * 04695 * @return results of bus communication function 04696 * @retval 0 -> BNO055_SUCCESS 04697 * @retval 1 -> BNO055_ERROR 04698 * 04699 */ 04700 BNO055_RETURN_FUNCTION_TYPE bno055_set_data_output_format( 04701 u8 data_output_format_u8); 04702 /**************************************************/ 04703 /**\name FUNCTIONS FOR DATA OPERATION MODE */ 04704 /**************************************************/ 04705 /*! @brief This API used to read the operation mode 04706 * from register from 0x3D bit 0 to 3 04707 * 04708 * @param operation_mode_u8 : The value of operation mode 04709 * 04710 * operation_mode_u8 | result | comments 04711 * ----------|----------------------------|---------------------------- 04712 * 0x00 | BNO055_OPERATION_MODE_CONFIG | Configuration mode 04713 * 0x01 | BNO055_OPERATION_MODE_ACCONLY | Reads accel data alone 04714 * 0x02 | BNO055_OPERATION_MODE_MAGONLY | Reads mag data alone 04715 * 0x03 | BNO055_OPERATION_MODE_GYRONLY | Reads gyro data alone 04716 * 0x04 | BNO055_OPERATION_MODE_ACCMAG | Reads accel and mag data 04717 * 0x05 | BNO055_OPERATION_MODE_ACCGYRO | Reads accel and gyro data 04718 * 0x06 | BNO055_OPERATION_MODE_MAGGYRO | Reads accel and mag data 04719 * 0x07 | OPERATION_MODE_ANY_MOTION | Reads accel mag and gyro data 04720 * 0x08 | BNO055_OPERATION_MODE_IMUPLUS | Inertial measurement unit 04721 * - | - | Reads accel,gyro and fusion data 04722 * 0x09 | BNO055_OPERATION_MODE_COMPASS | Reads accel, mag data 04723 * - | - | and fusion data 04724 * 0x0A | BNO055_OPERATION_MODE_M4G | Reads accel, mag data 04725 * - | - | and fusion data 04726 * 0x0B | BNO055_OPERATION_MODE_NDOF_FMC_OFF| Nine degrees of freedom with 04727 * - | - | fast magnetic calibration 04728 * - | - | Reads accel,mag, gyro 04729 * - | - | and fusion data 04730 * 0x0C | BNO055_OPERATION_MODE_NDOF | Nine degrees of freedom 04731 * - | - | Reads accel,mag, gyro 04732 * - | - | and fusion data 04733 * 04734 * @return results of bus communication function 04735 * @retval 0 -> BNO055_SUCCESS 04736 * @retval 1 -> BNO055_ERROR 04737 * 04738 * @note In the config mode, all sensor and fusion data 04739 * becomes zero and it is mainly derived 04740 * to configure the various settings of the BNO 04741 * 04742 */ 04743 BNO055_RETURN_FUNCTION_TYPE bno055_get_operation_mode( 04744 u8 *operation_mode_u8); 04745 /*! @brief This API used to write the operation mode 04746 * from register from 0x3D bit 0 to 3 04747 * 04748 * @param operation_mode_u8 : The value of operation mode 04749 * 04750 * operation_mode_u8 | result | comments 04751 * ---------|-----------------------------------|-------------------------- 04752 * 0x00 | BNO055_OPERATION_MODE_CONFIG | Configuration mode 04753 * 0x01 | BNO055_OPERATION_MODE_ACCONLY | Reads accel data alone 04754 * 0x02 | BNO055_OPERATION_MODE_MAGONLY | Reads mag data alone 04755 * 0x03 | BNO055_OPERATION_MODE_GYRONLY | Reads gyro data alone 04756 * 0x04 | BNO055_OPERATION_MODE_ACCMAG | Reads accel and mag data 04757 * 0x05 | BNO055_OPERATION_MODE_ACCGYRO | Reads accel and gyro data 04758 * 0x06 | BNO055_OPERATION_MODE_MAGGYRO | Reads accel and mag data 04759 * 0x07 | OPERATION_MODE_ANY_MOTION | Reads accel mag and 04760 * | - | gyro data 04761 * 0x08 | BNO055_OPERATION_MODE_IMUPLUS | Inertial measurement unit 04762 * - | | Reads accel,gyro and 04763 * | - | fusion data 04764 * 0x09 | BNO055_OPERATION_MODE_COMPASS | Reads accel, mag data 04765 * - | - | and fusion data 04766 * 0x0A | BNO055_OPERATION_MODE_M4G | Reads accel, mag data 04767 * - | - | and fusion data 04768 * 0x0B | BNO055_OPERATION_MODE_NDOF_FMC_OFF| Nine degrees of freedom with 04769 * - | - | fast magnetic calibration 04770 * - | - | Reads accel,mag, gyro 04771 * - | - | and fusion data 04772 * 0x0C | BNO055_OPERATION_MODE_NDOF | Nine degrees of freedom 04773 * - | - | Reads accel,mag, gyro 04774 * - | - | and fusion data 04775 * 04776 * @return results of bus communication function 04777 * @retval 0 -> BNO055_SUCCESS 04778 * @retval 1 -> BNO055_ERROR 04779 * 04780 * @note In the config mode, all sensor and fusion data 04781 * becomes zero and it is mainly derived 04782 * to configure the various settings of the BNO 04783 * 04784 */ 04785 BNO055_RETURN_FUNCTION_TYPE bno055_set_operation_mode(u8 operation_mode_u8); 04786 /**************************************************/ 04787 /**\name FUNCTIONS FOR POWER MODE */ 04788 /**************************************************/ 04789 /*! @brief This API used to read the power mode 04790 * from register from 0x3E bit 0 to 1 04791 * 04792 * @param power_mode_u8 : The value of power mode 04793 * 04794 * power_mode_u8| result | comments 04795 * ---------|---------------------------|------------------------------------- 04796 * 0x00 |BNO055_POWER_MODE_NORMAL | In the NORMAL mode the register 04797 * - | - | map and the internal peripherals 04798 * - | - | of the MCU are always 04799 * - | - | operative in this mode 04800 * 0x01 |BNO055_POWER_MODE_LOWPOWER | This is first level of power 04801 * | - | saving mode 04802 * 0x02 |BNO055_POWER_MODE_SUSPEND | In suspend mode the system is 04803 * - | - | paused and all the sensors and 04804 * - | - | the micro controller are 04805 * - | - | put into sleep mode. 04806 * 04807 * @return results of bus communication function 04808 * @retval 0 -> BNO055_SUCCESS 04809 * @retval 1 -> BNO055_ERROR 04810 * 04811 * @note For detailed about LOWPOWER mode 04812 * refer data sheet 3.4.2 04813 * 04814 */ 04815 BNO055_RETURN_FUNCTION_TYPE bno055_get_power_mode( 04816 u8 *power_mode_u8); 04817 /*! @brief This API used to write the power mode 04818 * from register from 0x3E bit 0 to 1 04819 * 04820 * @param power_mode_u8 : The value of power mode 04821 * 04822 * 04823 * power_mode_u8| result | comments 04824 * -------|----------------------------|--------------------------------- 04825 * 0x00 | BNO055_POWER_MODE_NORMAL | In the NORMAL mode the register 04826 * - | - | map and the internal peripherals 04827 * - | - | of the MCU are always 04828 * - | - | operative in this mode 04829 * 0x01 | BNO055_POWER_MODE_LOWPOWER | This is first level of power 04830 * | - | saving mode 04831 * 0x02 | BNO055_POWER_MODE_SUSPEND | In suspend mode the system is 04832 * - | - | paused and all the sensors and 04833 * - | - | the micro controller are 04834 * - | - | put into sleep mode. 04835 * 04836 * @return results of bus communication function 04837 * @retval 0 -> BNO055_SUCCESS 04838 * @retval 1 -> BNO055_ERROR 04839 * 04840 * @note For detailed about LOWPOWER mode 04841 * refer data sheet 3.4.2 04842 * 04843 */ 04844 BNO055_RETURN_FUNCTION_TYPE bno055_set_power_mode(u8 power_mode_u8); 04845 /**************************************************/ 04846 /**\name FUNCTIONS FOR RESET INTERRUPT */ 04847 /**************************************************/ 04848 /*! 04849 * @brief This API used to read the reset interrupt 04850 * from register from 0x3F bit 6 04851 * It resets all the interrupt bit and interrupt output 04852 * 04853 * @param intr_rst_u8 : The value of reset interrupt 04854 * 04855 * intr_rst_u8 | result 04856 * -------------|---------- 04857 * 0x01 | BNO055_BIT_ENABLE 04858 * 0x00 | BNO055_BIT_DISABLE 04859 * 04860 * @return results of bus communication function 04861 * @retval 0 -> BNO055_SUCCESS 04862 * @retval 1 -> BNO055_ERROR 04863 * 04864 */ 04865 BNO055_RETURN_FUNCTION_TYPE bno055_get_intr_rst( 04866 u8 *intr_rst_u8); 04867 /*! 04868 * @brief This API used to write the reset interrupt 04869 * from register from 0x3F bit 6 04870 * It resets all the interrupt bit and interrupt output 04871 * 04872 * @param intr_rst_u8 : The value of reset interrupt 04873 * 04874 * intr_rst_u8 | result 04875 * -------------- |---------- 04876 * 0x01 | BNO055_BIT_ENABLE 04877 * 0x00 | BNO055_BIT_DISABLE 04878 * 04879 * @return results of bus communication function 04880 * @retval 0 -> BNO055_SUCCESS 04881 * @retval 1 -> BNO055_ERROR 04882 * 04883 */ 04884 BNO055_RETURN_FUNCTION_TYPE bno055_set_intr_rst(u8 intr_rst_u8); 04885 /**************************************************/ 04886 /**\name FUNCTIONS FOR CLOCK SOURCE */ 04887 /**************************************************/ 04888 /*! 04889 * @brief This API used to read the clk source 04890 * from register from 0x3F bit 7 04891 * 04892 * @param clk_src_u8 : The value of clk source 04893 * 04894 * clk_src_u8 | result 04895 * -------------|---------- 04896 * 0x01 | BNO055_BIT_ENABLE 04897 * 0x00 | BNO055_BIT_DISABLE 04898 * 04899 * @return results of bus communication function 04900 * @retval 0 -> BNO055_SUCCESS 04901 * @retval 1 -> BNO055_ERROR 04902 * 04903 */ 04904 BNO055_RETURN_FUNCTION_TYPE bno055_get_clk_src( 04905 u8 *clk_src_u8); 04906 /*! 04907 * @brief This API used to write the clk source 04908 * from register from 0x3F bit 7 04909 * 04910 * @param clk_src_u8 : The value of clk source 04911 * 04912 * clk_src_u8 | result 04913 * -------------- |---------- 04914 * 0x01 | BNO055_BIT_ENABLE 04915 * 0x00 | BNO055_BIT_DISABLE 04916 * 04917 * @return results of bus communication function 04918 * @retval 0 -> BNO055_SUCCESS 04919 * @retval 1 -> BNO055_ERROR 04920 * 04921 */ 04922 BNO055_RETURN_FUNCTION_TYPE bno055_set_clk_src(u8 clk_src_u8); 04923 /**************************************************/ 04924 /**\name FUNCTIONS FOR RESET SYSTEM */ 04925 /**************************************************/ 04926 /*! 04927 * @brief This API used to read the reset system 04928 * from register from 0x3F bit 5 04929 * 04930 * @param sys_rst_u8 : The value of reset system 04931 * 04932 * sys_rst_u8 | result 04933 * -------------- |---------- 04934 * 0x01 | BNO055_BIT_ENABLE 04935 * 0x00 | BNO055_BIT_DISABLE 04936 * 04937 * @return results of bus communication function 04938 * @retval 0 -> BNO055_SUCCESS 04939 * @retval 1 -> BNO055_ERROR 04940 * 04941 * @note It resets the whole system 04942 */ 04943 BNO055_RETURN_FUNCTION_TYPE bno055_get_sys_rst( 04944 u8 *sys_rst_u8); 04945 /*! 04946 * @brief This API used to write the reset system 04947 * from register from 0x3F bit 5 04948 * 04949 * @param sys_rst_u8 : The value of reset system 04950 * 04951 * sys_rst_u8 | result 04952 * -------------- |---------- 04953 * 0x01 | BNO055_BIT_ENABLE 04954 * 0x00 | BNO055_BIT_DISABLE 04955 * 04956 * @return results of bus communication function 04957 * @retval 0 -> BNO055_SUCCESS 04958 * @retval 1 -> BNO055_ERROR 04959 * 04960 * @note It resets the whole system 04961 */ 04962 BNO055_RETURN_FUNCTION_TYPE bno055_set_sys_rst(u8 sys_rst_u8); 04963 /**************************************************/ 04964 /**\name FUNCTIONS FOR SELF TEST */ 04965 /**************************************************/ 04966 /*! 04967 * @brief This API used to read the self test 04968 * from register from 0x3F bit 0 04969 * 04970 * @param selftest_u8 : The value of self test 04971 * 04972 * selftest_u8 | result 04973 * -------------- |---------- 04974 * 0x01 | BNO055_BIT_ENABLE 04975 * 0x00 | BNO055_BIT_DISABLE 04976 * 04977 * @return results of bus communication function 04978 * @retval 0 -> BNO055_SUCCESS 04979 * @retval 1 -> BNO055_ERROR 04980 * 04981 * @note It triggers the self test 04982 */ 04983 BNO055_RETURN_FUNCTION_TYPE bno055_get_selftest( 04984 u8 *selftest_u8); 04985 /*! 04986 * @brief This API used to write the self test 04987 * from register from 0x3F bit 0 04988 * 04989 * @param selftest_u8 : The value of self test 04990 * 04991 * selftest_u8 | result 04992 * -------------- |---------- 04993 * 0x01 | BNO055_BIT_ENABLE 04994 * 0x00 | BNO055_BIT_DISABLE 04995 * 04996 * @return results of bus communication function 04997 * @retval 0 -> BNO055_SUCCESS 04998 * @retval 1 -> BNO055_ERROR 04999 * 05000 * @note It triggers the self test 05001 * 05002 * 05003 */ 05004 BNO055_RETURN_FUNCTION_TYPE bno055_set_selftest(u8 selftest_u8); 05005 /**************************************************/ 05006 /**\name FUNCTIONS FOR TEMPERATURE SOURCE */ 05007 /**************************************************/ 05008 /*! 05009 * @brief This API used to read the temperature source 05010 * from register from 0x40 bit 0 and 1 05011 * 05012 * @param temp_source_u8 : The value of selected temperature source 05013 * 05014 * temp_source_u8 | result 05015 * ---------------- |--------------- 05016 * 0x00 | BNO055_ACCEL_TEMP_EN 05017 * 0X01 | BNO055_GYRO_TEMP_EN 05018 * 0X03 | BNO055_MCU_TEMP_EN 05019 * 05020 * @return results of bus communication function 05021 * @retval 0 -> BNO055_SUCCESS 05022 * @retval 1 -> BNO055_ERROR 05023 * 05024 */ 05025 BNO055_RETURN_FUNCTION_TYPE bno055_get_temp_source( 05026 u8 *temp_source_u8); 05027 /*! 05028 * @brief This API used to write the temperature source 05029 * from register from 0x40 bit 0 and 1 05030 * 05031 * @param temp_source_u8 : The value of selected temperature source 05032 * 05033 * temp_source_u8 | result 05034 * ---------------- |--------------- 05035 * 0x00 | BNO055_ACCEL_TEMP_EN 05036 * 0X01 | BNO055_GYRO_TEMP_EN 05037 * 0X03 | BNO055_MCU_TEMP_EN 05038 * 05039 * @return results of bus communication function 05040 * @retval 0 -> BNO055_SUCCESS 05041 * @retval 1 -> BNO055_ERROR 05042 * 05043 */ 05044 BNO055_RETURN_FUNCTION_TYPE bno055_set_temp_source(u8 temp_source_u8); 05045 /**************************************************/ 05046 /**\name APIs FOR AXIS REMAP */ 05047 /**************************************************/ 05048 /*! 05049 * @brief This API used to read the axis remap value 05050 * from register from 0x41 bit 0 and 5 05051 * 05052 * @param remap_axis_u8 : The value of axis remapping 05053 * 05054 * remap_axis_u8 | result | comments 05055 * ------------|-------------------|------------ 05056 * 0X21 | BNO055_REMAP_X_Y | Z=Z;X=Y;Y=X 05057 * 0X18 | BNO055_REMAP_Y_Z | X=X;Y=Z;Z=Y 05058 * 0X06 | BNO055_REMAP_Z_X | Y=Y;X=Z;Z=X 05059 * 0X12 | BNO055_REMAP_X_Y_Z_TYPE0 | X=Z;Y=X;Z=Y 05060 * 0X09 | BNO055_REMAP_X_Y_Z_TYPE1 | X=Y;Y=Z;Z=X 05061 * 0X24 | BNO055_DEFAULT_AXIS | X=X;Y=Y;Z=Z 05062 * 05063 * @return results of bus communication function 05064 * @retval 0 -> BNO055_SUCCESS 05065 * @retval 1 -> BNO055_ERROR 05066 * 05067 * @note : For axis sign remap refer the following APIs 05068 * x-axis : 05069 * 05070 * bno055_set_x_remap_sign() 05071 * 05072 * y-axis : 05073 * 05074 * bno055_set_y_remap_sign() 05075 * 05076 * z-axis : 05077 * 05078 * bno055_set_z_remap_sign() 05079 * 05080 */ 05081 BNO055_RETURN_FUNCTION_TYPE bno055_get_axis_remap_value( 05082 u8 *remap_axis_u8); 05083 /*! 05084 * @brief This API used to write the axis remap value 05085 * from register from 0x41 bit 0 and 5 05086 * 05087 * @param remap_axis_u8 : The value of axis remapping 05088 * 05089 * remap_axis_u8 | result | comments 05090 * ------------|--------------------------|------------ 05091 * 0X21 | BNO055_REMAP_X_Y | Z=Z;X=Y;Y=X 05092 * 0X18 | BNO055_REMAP_Y_Z | X=X;Y=Z;Z=Y 05093 * 0X06 | BNO055_REMAP_Z_X | Y=Y;X=Z;Z=X 05094 * 0X12 | BNO055_REMAP_X_Y_Z_TYPE0 | X=Z;Y=X;Z=Y 05095 * 0X09 | BNO055_REMAP_X_Y_Z_TYPE1 | X=Y;Y=Z;Z=X 05096 * 0X24 | BNO055_DEFAULT_AXIS | X=X;Y=Y;Z=Z 05097 * 05098 * @return results of bus communication function 05099 * @retval 0 -> BNO055_SUCCESS 05100 * @retval 1 -> BNO055_ERROR 05101 * 05102 * @note : For axis sign remap refer the following APIs 05103 * x-axis : 05104 * 05105 * bno055_set_x_remap_sign() 05106 * 05107 * y-axis : 05108 * 05109 * bno055_set_y_remap_sign() 05110 * 05111 * z-axis : 05112 * 05113 * bno055_set_z_remap_sign() 05114 * 05115 */ 05116 BNO055_RETURN_FUNCTION_TYPE bno055_set_axis_remap_value( 05117 u8 remap_axis_u8); 05118 /**************************************************/ 05119 /**\name APIs FOR AXIS REMAP SIGN */ 05120 /**************************************************/ 05121 /*! 05122 * @brief This API used to read the x-axis remap 05123 * sign from register from 0x42 bit 2 05124 * 05125 * @param remap_x_sign_u8 : The value of x-axis remap sign 05126 * 05127 * remap_x_sign_u8 | result 05128 * ------------------- |-------------------- 05129 * 0X00 | BNO055_REMAP_AXIS_POSITIVE 05130 * 0X01 | BNO055_REMAP_AXIS_NEGATIVE 05131 * 05132 * @return results of bus communication function 05133 * @retval 0 -> BNO055_SUCCESS 05134 * @retval 1 -> BNO055_ERROR 05135 * 05136 */ 05137 BNO055_RETURN_FUNCTION_TYPE bno055_get_remap_x_sign( 05138 u8 *remap_x_sign_u8); 05139 /*! 05140 * @brief This API used to write the x-axis remap 05141 * sign from register from 0x42 bit 2 05142 * 05143 * @param remap_x_sign_u8 : The value of x-axis remap sign 05144 * 05145 * remap_x_sign_u8 | result 05146 * ------------------- |-------------------- 05147 * 0X00 | BNO055_REMAP_AXIS_POSITIVE 05148 * 0X01 | BNO055_REMAP_AXIS_NEGATIVE 05149 * 05150 * @return results of bus communication function 05151 * @retval 0 -> BNO055_SUCCESS 05152 * @retval 1 -> BNO055_ERROR 05153 * 05154 */ 05155 BNO055_RETURN_FUNCTION_TYPE bno055_set_remap_x_sign( 05156 u8 remap_x_sign_u8); 05157 /*! 05158 * @brief This API used to read the y-axis remap 05159 * sign from register from 0x42 bit 1 05160 * 05161 * @param remap_y_sign_u8 : The value of y-axis remap sign 05162 * 05163 * remap_y_sign_u8 | result 05164 * ------------------- |-------------------- 05165 * 0X00 | BNO055_REMAP_AXIS_POSITIVE 05166 * 0X01 | BNO055_REMAP_AXIS_NEGATIVE 05167 * 05168 * @return results of bus communication function 05169 * @retval 0 -> BNO055_SUCCESS 05170 * @retval 1 -> BNO055_ERROR 05171 * 05172 */ 05173 BNO055_RETURN_FUNCTION_TYPE bno055_get_remap_y_sign( 05174 u8 *remap_y_sign_u8); 05175 /*! 05176 * @brief This API used to write the y-axis remap 05177 * sign from register from 0x42 bit 1 05178 * 05179 * @param remap_y_sign_u8 : The value of y-axis remap sign 05180 * 05181 * remap_y_sign_u8 | result 05182 * ------------------- |-------------------- 05183 * 0X00 | BNO055_REMAP_AXIS_POSITIVE 05184 * 0X01 | BNO055_REMAP_AXIS_NEGATIVE 05185 * 05186 * @return results of bus communication function 05187 * @retval 0 -> BNO055_SUCCESS 05188 * @retval 1 -> BNO055_ERROR 05189 * 05190 */ 05191 BNO055_RETURN_FUNCTION_TYPE bno055_set_remap_y_sign( 05192 u8 remap_y_sign_u8); 05193 /*! 05194 * @brief This API used to read the z-axis remap 05195 * sign from register from 0x42 bit 0 05196 * 05197 * @param remap_z_sign_u8 : The value of z-axis remap sign 05198 * 05199 * remap_z_sign_u8 | result 05200 * ------------------- |-------------------- 05201 * 0X00 | BNO055_REMAP_AXIS_POSITIVE 05202 * 0X01 | BNO055_REMAP_AXIS_NEGATIVE 05203 * 05204 * @return results of bus communication function 05205 * @retval 0 -> BNO055_SUCCESS 05206 * @retval 1 -> BNO055_ERROR 05207 * 05208 */ 05209 BNO055_RETURN_FUNCTION_TYPE bno055_get_remap_z_sign( 05210 u8 *remap_z_sign_u8); 05211 /*! 05212 * @brief This API used to write the z-axis remap 05213 * sign from register from 0x42 bit 0 05214 * 05215 * @param remap_z_sign_u8 : The value of z-axis remap sign 05216 * 05217 * remap_z_sign_u8 | result 05218 * ------------------|-------------------- 05219 * 0X00 | BNO055_REMAP_AXIS_POSITIVE 05220 * 0X01 | BNO055_REMAP_AXIS_NEGATIVE 05221 * 05222 * @return results of bus communication function 05223 * @retval 0 -> BNO055_SUCCESS 05224 * @retval 1 -> BNO055_ERROR 05225 * 05226 */ 05227 BNO055_RETURN_FUNCTION_TYPE bno055_set_remap_z_sign( 05228 u8 remap_z_sign_u8); 05229 /*****************************************************/ 05230 /**\name FUNCTIONS FOR SOFT IRON CALIBRATION MATRIX */ 05231 /*****************************************************/ 05232 /*! 05233 * @brief This API is used to read soft iron calibration matrix 05234 * from the register 0x43 to 0x53 it is a 18 bytes of data 05235 * 05236 * @param sic_matrix : The value of soft iron calibration matrix 05237 * 05238 * sic_matrix | result 05239 * --------------------|---------------------------------- 05240 * sic_0 | soft iron calibration matrix zero 05241 * sic_1 | soft iron calibration matrix one 05242 * sic_2 | soft iron calibration matrix two 05243 * sic_3 | soft iron calibration matrix three 05244 * sic_4 | soft iron calibration matrix four 05245 * sic_5 | soft iron calibration matrix five 05246 * sic_6 | soft iron calibration matrix six 05247 * sic_7 | soft iron calibration matrix seven 05248 * sic_8 | soft iron calibration matrix eight 05249 * 05250 * 05251 * @return results of bus communication function 05252 * @retval 0 -> BNO055_SUCCESS 05253 * @retval 1 -> BNO055_ERROR 05254 * 05255 * @note : Each soft iron calibration matrix range from -32768 to +32767 05256 */ 05257 BNO055_RETURN_FUNCTION_TYPE bno055_read_sic_matrix( 05258 struct bno055_sic_matrix_t *sic_matrix); 05259 /*! 05260 * @brief This API is used to write soft iron calibration matrix 05261 * from the register 0x43 to 0x53 it is a 18 bytes of data 05262 * 05263 * @param sic_matrix : The value of soft iron calibration matrix 05264 * 05265 * sic_matrix | result 05266 * --------------------|---------------------------------- 05267 * sic_0 | soft iron calibration matrix zero 05268 * sic_1 | soft iron calibration matrix one 05269 * sic_2 | soft iron calibration matrix two 05270 * sic_3 | soft iron calibration matrix three 05271 * sic_4 | soft iron calibration matrix four 05272 * sic_5 | soft iron calibration matrix five 05273 * sic_6 | soft iron calibration matrix six 05274 * sic_7 | soft iron calibration matrix seven 05275 * sic_8 | soft iron calibration matrix eight 05276 * 05277 * 05278 * @return results of bus communication function 05279 * @retval 0 -> BNO055_SUCCESS 05280 * @retval 1 -> BNO055_ERROR 05281 * 05282 * @note : Each soft iron calibration matrix range from -32768 to +32767 05283 */ 05284 BNO055_RETURN_FUNCTION_TYPE bno055_write_sic_matrix( 05285 struct bno055_sic_matrix_t *sic_matrix); 05286 /*****************************************************/ 05287 /**\name FUNCTIONS FOR ACCEL OFFSET AND RADIUS */ 05288 /*****************************************************/ 05289 /*! 05290 * @brief This API is used to read accel offset and accel radius 05291 * offset form register 0x55 to 0x5A and radius form 0x67 and 0x68 05292 * 05293 * @param accel_offset : The value of accel offset and radius 05294 * 05295 * bno055_accel_offset_t | result 05296 * ------------------- | ---------------- 05297 * x | accel offset x 05298 * y | accel offset y 05299 * z | accel offset z 05300 * r | accel offset r 05301 * 05302 * 05303 * @return results of bus communication function 05304 * @retval 0 -> BNO055_SUCCESS 05305 * @retval 1 -> BNO055_ERROR 05306 * 05307 * @note The range of the accel offset varies based on 05308 * the G-range of accel sensor. 05309 * 05310 * accel G range | offset range 05311 * --------------- | -------------- 05312 * BNO055_ACCEL_RANGE_2G | +/-2000 05313 * BNO055_ACCEL_RANGE_4G | +/-4000 05314 * BNO055_ACCEL_RANGE_8G | +/-8000 05315 * BNO055_ACCEL_RANGE_16G | +/-16000 05316 * 05317 * accel G range can be configured by using the 05318 * bno055_set_accel_range() API 05319 */ 05320 BNO055_RETURN_FUNCTION_TYPE bno055_read_accel_offset( 05321 struct bno055_accel_offset_t *accel_offset); 05322 /*! 05323 * @brief This API is used to write accel offset and accel radius 05324 * offset form register 0x55 to 0x5A and radius form 0x67 and 0x68 05325 * 05326 * @param accel_offset : The value of accel offset and radius 05327 * 05328 * bno055_accel_offset_t | result 05329 * ------------------- | ---------------- 05330 * x | accel offset x 05331 * y | accel offset y 05332 * z | accel offset z 05333 * r | accel offset r 05334 * 05335 * 05336 * @return results of bus communication function 05337 * @retval 0 -> BNO055_SUCCESS 05338 * @retval 1 -> BNO055_ERROR 05339 * 05340 * @note The range of the accel offset varies based on 05341 * the G-range of accel sensor. 05342 * 05343 * accel G range | offset range 05344 * --------------- | -------------- 05345 * BNO055_ACCEL_RANGE_2G | +/-2000 05346 * BNO055_ACCEL_RANGE_4G | +/-4000 05347 * BNO055_ACCEL_RANGE_8G | +/-8000 05348 * BNO055_ACCEL_RANGE_16G | +/-16000 05349 * 05350 * accel G range can be configured by using the 05351 * bno055_set_accel_range() API 05352 */ 05353 BNO055_RETURN_FUNCTION_TYPE bno055_write_accel_offset( 05354 struct bno055_accel_offset_t *accel_offset); 05355 /*****************************************************/ 05356 /**\name FUNCTIONS FOR MAG OFFSET AND RADIUS*/ 05357 /*****************************************************/ 05358 /*! 05359 * @brief This API is used to read mag offset 05360 * offset form register 0x69 to 0x6A 05361 * 05362 * @param mag_offset : The value of mag offset and radius 05363 * 05364 * bno055_mag_offset_t | result 05365 * ------------------- | ---------------- 05366 * x | mag offset x 05367 * y | mag offset y 05368 * z | mag offset z 05369 * r | mag radius r 05370 * 05371 * 05372 * @return results of bus communication function 05373 * @retval 0 -> BNO055_SUCCESS 05374 * @retval 1 -> BNO055_ERROR 05375 * 05376 * @note The range of the magnetometer offset is +/-6400 in LSB 05377 */ 05378 05379 BNO055_RETURN_FUNCTION_TYPE bno055_read_mag_offset( 05380 struct bno055_mag_offset_t *mag_offset); 05381 /*! 05382 * @brief This API is used to read mag offset 05383 * offset form register 0x69 to 0x6A 05384 * 05385 * @param mag_offset : The value of mag offset and radius 05386 * 05387 * bno055_mag_offset_t | result 05388 * ------------------- | ---------------- 05389 * x | mag offset x 05390 * y | mag offset y 05391 * z | mag offset z 05392 * r | mag radius r 05393 * 05394 * 05395 * @return results of bus communication function 05396 * @retval 0 -> BNO055_SUCCESS 05397 * @retval 1 -> BNO055_ERROR 05398 * 05399 * @note The range of the magnetometer offset is +/-6400 in LSB 05400 */ 05401 BNO055_RETURN_FUNCTION_TYPE bno055_write_mag_offset( 05402 struct bno055_mag_offset_t *mag_offset); 05403 /*****************************************************/ 05404 /**\name FUNCTIONS FOR GYRO OFFSET */ 05405 /*****************************************************/ 05406 /*! 05407 * @brief This API is used to read gyro offset 05408 * offset form register 0x61 to 0x66 05409 * 05410 * @param gyro_offset : The value of gyro offset 05411 * 05412 * bno055_gyro_offset_t | result 05413 * ------------------- | ---------------- 05414 * x | gyro offset x 05415 * y | gyro offset y 05416 * z | gyro offset z 05417 * 05418 * 05419 * @return results of bus communication function 05420 * @retval 0 -> BNO055_SUCCESS 05421 * @retval 1 -> BNO055_ERROR 05422 * 05423 * @note The range of the gyro offset varies based on 05424 * the range of gyro sensor 05425 * 05426 * gyro G range | offset range 05427 * -------------------- | ------------ 05428 * BNO055_GYRO_RANGE_2000DPS | +/-32000 05429 * BNO055_GYRO_RANGE_1000DPS | +/-16000 05430 * BNO055_GYRO_RANGE_500DPS | +/-8000 05431 * BNO055_GYRO_RANGE_250DPS | +/-4000 05432 * BNO055_GYRO_RANGE_125DPS | +/-2000 05433 * 05434 * Gyro range can be configured by using the 05435 * bno055_set_gyro_range() API 05436 */ 05437 BNO055_RETURN_FUNCTION_TYPE bno055_read_gyro_offset( 05438 struct bno055_gyro_offset_t *gyro_offset); 05439 /*! 05440 * @brief This API is used to read gyro offset 05441 * offset form register 0x61 to 0x66 05442 * 05443 * @param gyro_offset : The value of gyro offset 05444 * 05445 * bno055_gyro_offset_t | result 05446 * ------------------- | ---------------- 05447 * x | gyro offset x 05448 * y | gyro offset y 05449 * z | gyro offset z 05450 * 05451 * 05452 * @return results of bus communication function 05453 * @retval 0 -> BNO055_SUCCESS 05454 * @retval 1 -> BNO055_ERROR 05455 * 05456 * @note The range of the gyro offset varies based on 05457 * the range of gyro sensor 05458 * 05459 * gyro G range | offset range 05460 * -------------------- | ------------ 05461 * BNO055_GYRO_RANGE_2000DPS | +/-32000 05462 * BNO055_GYRO_RANGE_1000DPS | +/-16000 05463 * BNO055_GYRO_RANGE_500DPS | +/-8000 05464 * BNO055_GYRO_RANGE_250DPS | +/-4000 05465 * BNO055_GYRO_RANGE_125DPS | +/-2000 05466 * 05467 * Gyro range can be configured by using the 05468 * bno055_set_gyro_range() API 05469 */ 05470 BNO055_RETURN_FUNCTION_TYPE bno055_write_gyro_offset( 05471 struct bno055_gyro_offset_t *gyro_offset); 05472 /********************************************************/ 05473 /************** PAGE1 Functions *********************/ 05474 /********************************************************/ 05475 /*****************************************************/ 05476 /**\name FUNCTIONS FOR ACCEL CONFIGURATION */ 05477 /*****************************************************/ 05478 /*! 05479 * @brief This API used to read the accel range 05480 * from page one register from 0x08 bit 0 and 1 05481 * 05482 * @param accel_range_u8 : The value of accel range 05483 * accel_range_u8 | result 05484 * ----------------- | -------------- 05485 * 0x00 | BNO055_ACCEL_RANGE_2G 05486 * 0x01 | BNO055_ACCEL_RANGE_4G 05487 * 0x02 | BNO055_ACCEL_RANGE_8G 05488 * 0x03 | BNO055_ACCEL_RANGE_16G 05489 * 05490 * @return results of bus communication function 05491 * @retval 0 -> BNO055_SUCCESS 05492 * @retval 1 -> BNO055_ERROR 05493 * 05494 * 05495 */ 05496 BNO055_RETURN_FUNCTION_TYPE bno055_get_accel_range( 05497 u8 *accel_range_u8); 05498 /*! 05499 * @brief This API used to write the accel range 05500 * from page one register from 0x08 bit 0 and 1 05501 * 05502 * @param accel_range_u8 : The value of accel range 05503 * 05504 * accel_range_u8 | result 05505 * ----------------- | -------------- 05506 * 0x00 | BNO055_ACCEL_RANGE_2G 05507 * 0x01 | BNO055_ACCEL_RANGE_4G 05508 * 0x02 | BNO055_ACCEL_RANGE_8G 05509 * 0x03 | BNO055_ACCEL_RANGE_16G 05510 * 05511 * @return results of bus communication function 05512 * @retval 0 -> BNO055_SUCCESS 05513 * @retval 1 -> BNO055_ERROR 05514 * 05515 * 05516 */ 05517 BNO055_RETURN_FUNCTION_TYPE bno055_set_accel_range( 05518 u8 accel_range_u8); 05519 /*! 05520 * @brief This API used to read the accel bandwidth 05521 * from page one register from 0x08 bit 2 to 4 05522 * 05523 * @param accel_bw_u8 : The value of accel bandwidth 05524 * 05525 * accel_bw_u8 | result 05526 * ----------------- | --------------- 05527 * 0x00 | BNO055_ACCEL_BW_7_81HZ 05528 * 0x01 | BNO055_ACCEL_BW_15_63HZ 05529 * 0x02 | BNO055_ACCEL_BW_31_25HZ 05530 * 0x03 | BNO055_ACCEL_BW_62_5HZ 05531 * 0x04 | BNO055_ACCEL_BW_125HZ 05532 * 0x05 | BNO055_ACCEL_BW_250HZ 05533 * 0x06 | BNO055_ACCEL_BW_500HZ 05534 * 0x07 | BNO055_ACCEL_BW_1000HZ 05535 * 05536 * @return results of bus communication function 05537 * @retval 0 -> BNO055_SUCCESS 05538 * @retval 1 -> BNO055_ERROR 05539 * 05540 * 05541 */ 05542 BNO055_RETURN_FUNCTION_TYPE bno055_get_accel_bw( 05543 u8 *accel_bw_u8); 05544 /*! 05545 * @brief This API used to write the accel bandwidth 05546 * from page one register from 0x08 bit 2 to 4 05547 * 05548 * @param accel_bw_u8 : The value of accel bandwidth 05549 * 05550 * accel_bw_u8 | result 05551 * ----------------- | --------------- 05552 * 0x00 | BNO055_ACCEL_BW_7_81HZ 05553 * 0x01 | BNO055_ACCEL_BW_15_63HZ 05554 * 0x02 | BNO055_ACCEL_BW_31_25HZ 05555 * 0x03 | BNO055_ACCEL_BW_62_5HZ 05556 * 0x04 | BNO055_ACCEL_BW_125HZ 05557 * 0x05 | BNO055_ACCEL_BW_250HZ 05558 * 0x06 | BNO055_ACCEL_BW_500HZ 05559 * 0x07 | BNO055_ACCEL_BW_1000HZ 05560 * 05561 * @return results of bus communication function 05562 * @retval 0 -> BNO055_SUCCESS 05563 * @retval 1 -> BNO055_ERROR 05564 * 05565 * 05566 */ 05567 BNO055_RETURN_FUNCTION_TYPE bno055_set_accel_bw( 05568 u8 accel_bw_u8); 05569 /*! 05570 * @brief This API used to read the accel power mode 05571 * from page one register from 0x08 bit 5 to 7 05572 * 05573 * @param accel_power_mode_u8 : The value of accel power mode 05574 * accel_power_mode_u8 | result 05575 * ----------------- | ------------- 05576 * 0x00 | BNO055_ACCEL_NORMAL 05577 * 0x01 | BNO055_ACCEL_SUSPEND 05578 * 0x02 | BNO055_ACCEL_LOWPOWER_1 05579 * 0x03 | BNO055_ACCEL_STANDBY 05580 * 0x04 | BNO055_ACCEL_LOWPOWER_2 05581 * 0x05 | BNO055_ACCEL_DEEPSUSPEND 05582 * 05583 * @return results of bus communication function 05584 * @retval 0 -> BNO055_SUCCESS 05585 * @retval 1 -> BNO055_ERROR 05586 * 05587 * 05588 */ 05589 BNO055_RETURN_FUNCTION_TYPE bno055_get_accel_power_mode( 05590 u8 *accel_power_mode_u8); 05591 /*! 05592 * @brief This API used to write the accel power mode 05593 * from page one register from 0x08 bit 5 to 7 05594 * 05595 * @param accel_power_mode_u8 : The value of accel power mode 05596 * accel_power_mode_u8 | result 05597 * ----------------- | ------------- 05598 * 0x00 | BNO055_ACCEL_NORMAL 05599 * 0x01 | BNO055_ACCEL_SUSPEND 05600 * 0x02 | BNO055_ACCEL_LOWPOWER_1 05601 * 0x03 | BNO055_ACCEL_STANDBY 05602 * 0x04 | BNO055_ACCEL_LOWPOWER_2 05603 * 0x05 | BNO055_ACCEL_DEEPSUSPEND 05604 * 05605 * @return results of bus communication function 05606 * @retval 0 -> BNO055_SUCCESS 05607 * @retval 1 -> BNO055_ERROR 05608 * 05609 * 05610 */ 05611 BNO055_RETURN_FUNCTION_TYPE bno055_set_accel_power_mode( 05612 u8 accel_power_mode_u8); 05613 /*****************************************************/ 05614 /**\name FUNCTIONS FOR MAG CONFIGURATION */ 05615 /*****************************************************/ 05616 /*! 05617 * @brief This API used to read the mag output data rate 05618 * from page one register from 0x09 bit 0 to 2 05619 * 05620 * @param mag_data_output_rate_u8 : The value of mag output data rate 05621 * 05622 * mag_data_output_rate_u8 | result 05623 * ---------------------- |---------------------- 05624 * 0x00 | MAG_DATA_OUTPUT_RATE_2HZ 05625 * 0x01 | MAG_DATA_OUTPUT_RATE_6HZ 05626 * 0x02 | MAG_DATA_OUTPUT_RATE_8HZ 05627 * 0x03 | MAG_DATA_OUTPUT_RATE_10HZ 05628 * 0x04 | MAG_DATA_OUTPUT_RATE_15HZ 05629 * 0x05 | MAG_DATA_OUTPUT_RATE_20HZ 05630 * 0x06 | MAG_DATA_OUTPUT_RATE_25HZ 05631 * 0x07 | MAG_DATA_OUTPUT_RATE_30HZ 05632 * 05633 * @return results of bus communication function 05634 * @retval 0 -> BNO055_SUCCESS 05635 * @retval 1 -> BNO055_ERROR 05636 * 05637 * 05638 */ 05639 BNO055_RETURN_FUNCTION_TYPE bno055_get_mag_data_output_rate( 05640 u8 *mag_data_output_rate_u8); 05641 /*! 05642 * @brief This API used to write the mag output data rate 05643 * from page one register from 0x09 bit 0 to 2 05644 * 05645 * @param mag_data_output_rate_u8 : The value of mag output data rate 05646 * 05647 * mag_data_output_rate_u8 | result 05648 * ---------------------- |---------------------- 05649 * 0x00 | MAG_DATA_OUTPUT_RATE_2HZ 05650 * 0x01 | MAG_DATA_OUTPUT_RATE_6HZ 05651 * 0x02 | MAG_DATA_OUTPUT_RATE_8HZ 05652 * 0x03 | MAG_DATA_OUTPUT_RATE_10HZ 05653 * 0x04 | MAG_DATA_OUTPUT_RATE_15HZ 05654 * 0x05 | MAG_DATA_OUTPUT_RATE_20HZ 05655 * 0x06 | MAG_DATA_OUTPUT_RATE_25HZ 05656 * 0x07 | MAG_DATA_OUTPUT_RATE_30HZ 05657 * 05658 * @return results of bus communication function 05659 * @retval 0 -> BNO055_SUCCESS 05660 * @retval 1 -> BNO055_ERROR 05661 * 05662 * 05663 */ 05664 BNO055_RETURN_FUNCTION_TYPE bno055_set_mag_data_output_rate( 05665 u8 mag_data_output_rate_u8); 05666 /*! 05667 * @brief This API used to read the mag operation mode 05668 * from page one register from 0x09 bit 3 to 4 05669 * 05670 * @param mag_operation_mode_u8 : The value of mag operation mode 05671 * 05672 * mag_operation_mode_u8 | result 05673 * ------------------------|-------------------------- 05674 * 0x00 | MAG_OPR_MODE_LOWPOWER 05675 * 0x01 | MAG_OPR_MODE_REGULAR 05676 * 0x02 | MAG_OPR_MODE_ENHANCED_REGULAR 05677 * 0x03 | MAG_OPR_MODE_HIGH_ACCURACY 05678 * 05679 * @return results of bus communication function 05680 * @retval 0 -> BNO055_SUCCESS 05681 * @retval 1 -> BNO055_ERROR 05682 * 05683 * 05684 */ 05685 BNO055_RETURN_FUNCTION_TYPE bno055_get_mag_operation_mode( 05686 u8 *mag_operation_mode_u8); 05687 /*! 05688 * @brief This API used to write the mag operation mode 05689 * from page one register from 0x09 bit 3 to 4 05690 * 05691 * @param mag_operation_mode_u8 : The value of mag operation mode 05692 * 05693 * mag_operation_mode_u8 | result 05694 * ------------------------|-------------------------- 05695 * 0x00 | MAG_OPR_MODE_LOWPOWER 05696 * 0x01 | MAG_OPR_MODE_REGULAR 05697 * 0x02 | MAG_OPR_MODE_ENHANCED_REGULAR 05698 * 0x03 | MAG_OPR_MODE_HIGH_ACCURACY 05699 * 05700 * @return results of bus communication function 05701 * @retval 0 -> BNO055_SUCCESS 05702 * @retval 1 -> BNO055_ERROR 05703 * 05704 * 05705 */ 05706 BNO055_RETURN_FUNCTION_TYPE bno055_set_mag_operation_mode( 05707 u8 mag_operation_mode_u8); 05708 /*! 05709 * @brief This API used to read the mag power mode 05710 * from page one register from 0x09 bit 4 to 6 05711 * 05712 * @param mag_power_mode_u8 : The value of mag power mode 05713 * 05714 * mag_power_mode_u8 | result 05715 * --------------------|----------------- 05716 * 0x00 | BNO055_MAG_POWER_MODE_NORMAL 05717 * 0x01 | BNO055_MAG_POWER_MODE_SLEEP 05718 * 0x02 | BNO055_MAG_POWER_MODE_SUSPEND 05719 * 0x03 | BNO055_MAG_POWER_MODE_FORCE_MODE 05720 * 05721 * @return results of bus communication function 05722 * @retval 0 -> BNO055_SUCCESS 05723 * @retval 1 -> BNO055_ERROR 05724 * 05725 * 05726 */ 05727 BNO055_RETURN_FUNCTION_TYPE bno055_get_mag_power_mode( 05728 u8 *mag_power_mode_u8); 05729 /*! 05730 * @brief This API used to write the mag power mode 05731 * from page one register from 0x09 bit 4 to 6 05732 * 05733 * @param mag_power_mode_u8 : The value of mag power mode 05734 * 05735 * mag_power_mode_u8 | result 05736 * ------------------|----------------- 05737 * 0x00 | BNO055_MAG_POWER_MODE_NORMAL 05738 * 0x01 | BNO055_MAG_POWER_MODE_SLEEP 05739 * 0x02 | BNO055_MAG_POWER_MODE_SUSPEND 05740 * 0x03 | BNO055_MAG_POWER_MODE_FORCE_MODE 05741 * 05742 * @return results of bus communication function 05743 * @retval 0 -> BNO055_SUCCESS 05744 * @retval 1 -> BNO055_ERROR 05745 * 05746 * 05747 */ 05748 BNO055_RETURN_FUNCTION_TYPE bno055_set_mag_power_mode( 05749 u8 mag_power_mode_u8); 05750 /*****************************************************/ 05751 /**\name FUNCTIONS FOR GYRO CONFIGURATION */ 05752 /*****************************************************/ 05753 /*! 05754 * @brief This API used to read the gyro range 05755 * from page one register from 0x0A bit 0 to 3 05756 * 05757 * @param gyro_range_u8 : The value of gyro range 05758 * 05759 * gyro_range_u8 | result 05760 * --------------------|----------------- 05761 * 0x00 | BNO055_GYRO_RANGE_2000DPS 05762 * 0x01 | BNO055_GYRO_RANGE_1000DPS 05763 * 0x02 | BNO055_GYRO_RANGE_500DPS 05764 * 0x03 | BNO055_GYRO_RANGE_250DPS 05765 * 0x04 | BNO055_GYRO_RANGE_125DPS 05766 * 05767 * @return results of bus communication function 05768 * @retval 0 -> BNO055_SUCCESS 05769 * @retval 1 -> BNO055_ERROR 05770 * 05771 * 05772 */ 05773 BNO055_RETURN_FUNCTION_TYPE bno055_get_gyro_range( 05774 u8 *gyro_range_u8); 05775 /*! 05776 * @brief This API used to write the gyro range 05777 * from page one register from 0x0A bit 0 to 3 05778 * 05779 * @param gyro_range_u8 : The value of gyro range 05780 * 05781 * gyro_range_u8 | result 05782 * --------------------|----------------- 05783 * 0x00 | BNO055_GYRO_RANGE_2000DPS 05784 * 0x01 | BNO055_GYRO_RANGE_1000DPS 05785 * 0x02 | BNO055_GYRO_RANGE_500DPS 05786 * 0x03 | BNO055_GYRO_RANGE_250DPS 05787 * 0x04 | BNO055_GYRO_RANGE_125DPS 05788 * 05789 * @return results of bus communication function 05790 * @retval 0 -> BNO055_SUCCESS 05791 * @retval 1 -> BNO055_ERROR 05792 * 05793 * 05794 */ 05795 BNO055_RETURN_FUNCTION_TYPE bno055_set_gyro_range( 05796 u8 gyro_range_u8); 05797 /*! 05798 * @brief This API used to read the gyro bandwidth 05799 * from page one register from 0x0A bit 3 to 5 05800 * 05801 * @param gyro_bw_u8 : The value of gyro bandwidth 05802 * 05803 * gyro_bw_u8 | result 05804 * --------------------|----------------- 05805 * 0x00 | BNO055_GYRO_BW_523HZ 05806 * 0x01 | BNO055_GYRO_BW_230HZ 05807 * 0x02 | BNO055_GYRO_BW_116HZ 05808 * 0x03 | BNO055_GYRO_BW_47HZ 05809 * 0x04 | BNO055_GYRO_BW_23HZ 05810 * 0x05 | BNO055_GYRO_BW_12HZ 05811 * 0x06 | BNO055_GYRO_BW_64HZ 05812 * 0x07 | BNO055_GYRO_BW_32HZ 05813 * 05814 * @return results of bus communication function 05815 * @retval 0 -> BNO055_SUCCESS 05816 * @retval 1 -> BNO055_ERROR 05817 * 05818 * 05819 */ 05820 BNO055_RETURN_FUNCTION_TYPE bno055_get_gyro_bw( 05821 u8 *gyro_bw_u8); 05822 /*! 05823 * @brief This API used to write the gyro bandwidth 05824 * from page one register from 0x0A bit 3 to 5 05825 * 05826 * @param gyro_bw_u8 : The value of gyro bandwidth 05827 * 05828 * gyro_bw_u8 | result 05829 * --------------------|----------------- 05830 * 0x00 | BNO055_GYRO_BW_523HZ 05831 * 0x01 | BNO055_GYRO_BW_230HZ 05832 * 0x02 | BNO055_GYRO_BW_116HZ 05833 * 0x03 | BNO055_GYRO_BW_47HZ 05834 * 0x04 | BNO055_GYRO_BW_23HZ 05835 * 0x05 | BNO055_GYRO_BW_12HZ 05836 * 0x06 | BNO055_GYRO_BW_64HZ 05837 * 0x07 | BNO055_GYRO_BW_32HZ 05838 * 05839 * @return results of bus communication function 05840 * @retval 0 -> BNO055_SUCCESS 05841 * @retval 1 -> BNO055_ERROR 05842 * 05843 * 05844 */ 05845 BNO055_RETURN_FUNCTION_TYPE bno055_set_gyro_bw( 05846 u8 gyro_bw_u8); 05847 /*! 05848 * @brief This API used to read the gyro power mode 05849 * from page one register from 0x0B bit 0 to 2 05850 * 05851 * @param gyro_power_mode_u8 : The value of gyro power mode 05852 * 05853 * gyro_power_mode_u8 | result 05854 * ----------------------|---------------------------- 05855 * 0x00 | GYRO_OPR_MODE_NORMAL 05856 * 0x01 | GYRO_OPR_MODE_FASTPOWERUP 05857 * 0x02 | GYRO_OPR_MODE_DEEPSUSPEND 05858 * 0x03 | GYRO_OPR_MODE_SUSPEND 05859 * 0x04 | GYRO_OPR_MODE_ADVANCE_POWERSAVE 05860 * 05861 * @return results of bus communication function 05862 * @retval 0 -> BNO055_SUCCESS 05863 * @retval 1 -> BNO055_ERROR 05864 * 05865 * 05866 */ 05867 BNO055_RETURN_FUNCTION_TYPE bno055_get_gyro_power_mode( 05868 u8 *gyro_power_mode_u8); 05869 /*! 05870 * @brief This API used to write the gyro power mode 05871 * from page one register from 0x0B bit 0 to 2 05872 * 05873 * @param gyro_power_mode_u8 : The value of gyro power mode 05874 * 05875 * gyro_power_mode_u8 | result 05876 * ----------------------|---------------------------- 05877 * 0x00 | GYRO_OPR_MODE_NORMAL 05878 * 0x01 | GYRO_OPR_MODE_FASTPOWERUP 05879 * 0x02 | GYRO_OPR_MODE_DEEPSUSPEND 05880 * 0x03 | GYRO_OPR_MODE_SUSPEND 05881 * 0x04 | GYRO_OPR_MODE_ADVANCE_POWERSAVE 05882 * 05883 * @return results of bus communication function 05884 * @retval 0 -> BNO055_SUCCESS 05885 * @retval 1 -> BNO055_ERROR 05886 * 05887 * 05888 */ 05889 BNO055_RETURN_FUNCTION_TYPE bno055_set_gyro_power_mode( 05890 u8 gyro_power_mode_u8); 05891 /*****************************************************/ 05892 /**\name FUNCTIONS FOR ACCEL SLEEP SETTINGS */ 05893 /*****************************************************/ 05894 /*! 05895 * @brief This API used to read the accel sleep mode 05896 * from page one register from 0x0C bit 0 05897 * 05898 * @param sleep_tmr_u8 : The value of accel sleep mode 05899 * 05900 * sleep_tmr_u8 | result 05901 * ----------------- |------------------------------------ 05902 * 0x00 | enable EventDrivenSampling(EDT) 05903 * 0x01 | enable Equidistant sampling mode(EST) 05904 * 05905 * @return results of bus communication function 05906 * @retval 0 -> BNO055_SUCCESS 05907 * @retval 1 -> BNO055_ERROR 05908 * 05909 * 05910 */ 05911 BNO055_RETURN_FUNCTION_TYPE bno055_get_accel_sleep_tmr_mode( 05912 u8 *sleep_tmr_u8); 05913 /*! 05914 * @brief This API used to write the accel sleep mode 05915 * from page one register from 0x0C bit 0 05916 * 05917 * @param sleep_tmr_u8 : The value of accel sleep mode 05918 * 05919 * sleep_tmr_u8 | result 05920 * ----------------- |------------------------------------ 05921 * 0x00 | enable EventDrivenSampling(EDT) 05922 * 0x01 | enable Equidistant sampling mode(EST) 05923 * 05924 * @return results of bus communication function 05925 * @retval 0 -> BNO055_SUCCESS 05926 * @retval 1 -> BNO055_ERROR 05927 * 05928 * 05929 */ 05930 BNO055_RETURN_FUNCTION_TYPE bno055_set_accel_sleep_tmr_mode( 05931 u8 sleep_tmr_u8); 05932 /*! 05933 * @brief This API used to read the accel sleep duration 05934 * from page one register from 0x0C bit 1 to 4 05935 * 05936 * @param sleep_durn_u8 : The value of accel sleep duration 05937 * 05938 * sleep_durn_u8 | result 05939 * ---------------- |----------------------------- 05940 * 0x05 | BNO055_ACCEL_SLEEP_DURN_0_5MS 05941 * 0x06 | BNO055_ACCEL_SLEEP_DURN_1MS 05942 * 0x07 | BNO055_ACCEL_SLEEP_DURN_2MS 05943 * 0x08 | BNO055_ACCEL_SLEEP_DURN_4MS 05944 * 0x09 | BNO055_ACCEL_SLEEP_DURN_6MS 05945 * 0x0A | BNO055_ACCEL_SLEEP_DURN_10MS 05946 * 0x0B | BNO055_ACCEL_SLEEP_DURN_25MS 05947 * 0x0C | BNO055_ACCEL_SLEEP_DURN_50MS 05948 * 0x0D | BNO055_ACCEL_SLEEP_DURN_100MS 05949 * 0x0E | BNO055_ACCEL_SLEEP_DURN_500MS 05950 * 0x0F | BNO055_ACCEL_SLEEP_DURN_1S 05951 * 05952 * @return results of bus communication function 05953 * @retval 0 -> BNO055_SUCCESS 05954 * @retval 1 -> BNO055_ERROR 05955 * 05956 * 05957 */ 05958 BNO055_RETURN_FUNCTION_TYPE bno055_get_accel_sleep_durn( 05959 u8 *sleep_durn_u8); 05960 /*! 05961 * @brief This API used to write the accel sleep duration 05962 * from page one register from 0x0C bit 1 to 4 05963 * 05964 * @param sleep_durn_u8 : The value of accel sleep duration 05965 * 05966 * sleep_durn_u8 | result 05967 * ---------------- |----------------------------- 05968 * 0x05 | BNO055_ACCEL_SLEEP_DURN_0_5MS 05969 * 0x06 | BNO055_ACCEL_SLEEP_DURN_1MS 05970 * 0x07 | BNO055_ACCEL_SLEEP_DURN_2MS 05971 * 0x08 | BNO055_ACCEL_SLEEP_DURN_4MS 05972 * 0x09 | BNO055_ACCEL_SLEEP_DURN_6MS 05973 * 0x0A | BNO055_ACCEL_SLEEP_DURN_10MS 05974 * 0x0B | BNO055_ACCEL_SLEEP_DURN_25MS 05975 * 0x0C | BNO055_ACCEL_SLEEP_DURN_50MS 05976 * 0x0D | BNO055_ACCEL_SLEEP_DURN_100MS 05977 * 0x0E | BNO055_ACCEL_SLEEP_DURN_500MS 05978 * 0x0F | BNO055_ACCEL_SLEEP_DURN_1S 05979 * 05980 * @return results of bus communication function 05981 * @retval 0 -> BNO055_SUCCESS 05982 * @retval 1 -> BNO055_ERROR 05983 * 05984 * 05985 */ 05986 BNO055_RETURN_FUNCTION_TYPE bno055_set_accel_sleep_durn( 05987 u8 sleep_durn_u8); 05988 /*****************************************************/ 05989 /**\name FUNCTIONS FOR GYRO SLEEP SETTINGS */ 05990 /*****************************************************/ 05991 /*! 05992 * @brief This API used to write the gyro sleep duration 05993 * from page one register from 0x0D bit 0 to 2 05994 * 05995 * @param sleep_durn_u8 : The value of gyro sleep duration 05996 * 05997 * @return results of bus communication function 05998 * @retval 0 -> BNO055_SUCCESS 05999 * @retval 1 -> BNO055_ERROR 06000 * 06001 * 06002 */ 06003 BNO055_RETURN_FUNCTION_TYPE bno055_get_gyro_sleep_durn( 06004 u8 *sleep_durn_u8); 06005 /*! 06006 * @brief This API used to write the gyro sleep duration 06007 * from page one register from 0x0D bit 0 to 2 06008 * 06009 * @param sleep_durn_u8 : The value of gyro sleep duration 06010 * 06011 * @return results of bus communication function 06012 * @retval 0 -> BNO055_SUCCESS 06013 * @retval 1 -> BNO055_ERROR 06014 * 06015 * 06016 */ 06017 BNO055_RETURN_FUNCTION_TYPE bno055_set_gyro_sleep_durn( 06018 u8 sleep_durn); 06019 /*! 06020 * @brief This API used to read the gyro auto sleep duration 06021 * from page one register from 0x0D bit 3 to 5 06022 * 06023 * @param auto_sleep_durn_u8 : The value of gyro auto sleep duration 06024 * 06025 * @return results of bus communication function 06026 * @retval 0 -> BNO055_SUCCESS 06027 * @retval 1 -> BNO055_ERROR 06028 * 06029 * 06030 */ 06031 BNO055_RETURN_FUNCTION_TYPE bno055_get_gyro_auto_sleep_durn( 06032 u8 *auto_sleep_durn_u8); 06033 /*! 06034 * @brief This API used to write the gyro auto sleep duration 06035 * from page one register from 0x0D bit 3 to 5 06036 * 06037 * @param auto_sleep_durn_u8 : The value of gyro auto sleep duration 06038 * @param bw : The value of gyro bandwidth 06039 * 06040 * @return results of bus communication function 06041 * @retval 0 -> BNO055_SUCCESS 06042 * @retval 1 -> BNO055_ERROR 06043 * 06044 * 06045 */ 06046 BNO055_RETURN_FUNCTION_TYPE bno055_gyro_set_auto_sleep_durn( 06047 u8 auto_sleep_durn_u8, u8 bw); 06048 /*****************************************************/ 06049 /**\name FUNCTIONS FOR MAG SLEEP SETTINGS */ 06050 /*****************************************************/ 06051 /*! 06052 * @brief This API used to read the mag sleep mode 06053 * from page one register from 0x0E bit 0 06054 * 06055 * @param sleep_mode_u8 : The value of mag sleep mode 06056 * 06057 * @return results of bus communication function 06058 * @retval 0 -> BNO055_SUCCESS 06059 * @retval 1 -> BNO055_ERROR 06060 * 06061 * 06062 */ 06063 BNO055_RETURN_FUNCTION_TYPE bno055_get_mag_sleep_mode( 06064 u8 *sleep_mode_u8); 06065 /*! 06066 * @brief This API used to write the mag sleep mode 06067 * from page one register from 0x0E bit 0 06068 * 06069 * @param sleep_mode_u8 : The value of mag sleep mode 06070 * 06071 * @return results of bus communication function 06072 * @retval 0 -> BNO055_SUCCESS 06073 * @retval 1 -> BNO055_ERROR 06074 * 06075 * 06076 */ 06077 BNO055_RETURN_FUNCTION_TYPE bno055_set_mag_sleep_mode( 06078 u8 sleep_mode_u8); 06079 /*! 06080 * @brief This API used to read the mag sleep duration 06081 * from page one register from 0x0E bit 1 to 4 06082 * 06083 * @param sleep_durn_u8 : The value of mag sleep duration 06084 * 06085 * @return results of bus communication function 06086 * @retval 0 -> BNO055_SUCCESS 06087 * @retval 1 -> BNO055_ERROR 06088 * 06089 * 06090 */ 06091 BNO055_RETURN_FUNCTION_TYPE bno055_get_mag_sleep_durn( 06092 u8 *sleep_durn_u8); 06093 /*! 06094 * @brief This API used to write the mag sleep duration 06095 * from page one register from 0x0E bit 1 to 4 06096 * 06097 * @param sleep_durn_u8 : The value of mag sleep duration 06098 * 06099 * @return results of bus communication function 06100 * @retval 0 -> BNO055_SUCCESS 06101 * @retval 1 -> BNO055_ERROR 06102 * 06103 * 06104 */ 06105 BNO055_RETURN_FUNCTION_TYPE bno055_set_mag_sleep_durn( 06106 u8 sleep_durn_u8); 06107 /*****************************************************/ 06108 /**\name FUNCTIONS FOR GYRO INTERRUPT MASK */ 06109 /*****************************************************/ 06110 /*! 06111 * @brief This API used to read the gyro anymotion interrupt mask 06112 * from page one register from 0x0F bit 2 06113 * 06114 * @param gyro_any_motion_u8 : The value of gyro anymotion interrupt mask 06115 * gyro_any_motion_u8 | result 06116 * -------------------- |------------ 06117 * 0x01 | BNO055_BIT_ENABLE 06118 * 0x00 | BNO055_BIT_DISABLE 06119 * 06120 * @return results of bus communication function 06121 * @retval 0 -> BNO055_SUCCESS 06122 * @retval 1 -> BNO055_ERROR 06123 * 06124 * @note While enabling the gyro anymotion interrupt 06125 * configure the following settings 06126 * 06127 * Axis: 06128 * bno055_set_gyro_any_motion_axis_enable() 06129 * 06130 * Filter setting: 06131 * bno055_set_gyro_any_motion_filter() 06132 * 06133 * Threshold : 06134 * 06135 * bno055_set_gyro_any_motion_thres() 06136 * 06137 * Slope samples : 06138 * 06139 * bno055_set_gyro_any_motion_slope_samples() 06140 * 06141 * Awake duration : 06142 * 06143 * bno055_set_gyro_any_motion_awake_durn() 06144 * 06145 */ 06146 BNO055_RETURN_FUNCTION_TYPE bno055_get_intr_mask_gyro_any_motion( 06147 u8 *gyro_any_motion_u8); 06148 /*! 06149 * @brief This API used to write the gyro anymotion interrupt mask 06150 * from page one register from 0x0F bit 2 06151 * 06152 * @param gyro_any_motion_u8 : The value of gyro anymotion interrupt mask 06153 * gyro_any_motion_u8 | result 06154 * -------------------- |------------ 06155 * 0x01 | BNO055_BIT_ENABLE 06156 * 0x00 | BNO055_BIT_DISABLE 06157 * 06158 * @return results of bus communication function 06159 * @retval 0 -> BNO055_SUCCESS 06160 * @retval 1 -> BNO055_ERROR 06161 * 06162 * @note While enabling the gyro anymotion interrupt 06163 * configure the following settings 06164 * 06165 * Axis: 06166 * bno055_set_gyro_any_motion_axis_enable() 06167 * 06168 * Filter setting: 06169 * bno055_set_gyro_any_motion_filter() 06170 * 06171 * Threshold : 06172 * 06173 * bno055_set_gyro_any_motion_thres() 06174 * 06175 * Slope samples : 06176 * 06177 * bno055_set_gyro_any_motion_slope_samples() 06178 * 06179 * Awake duration : 06180 * 06181 * bno055_set_gyro_any_motion_awake_durn() 06182 * 06183 */ 06184 BNO055_RETURN_FUNCTION_TYPE bno055_set_intr_mask_gyro_any_motion( 06185 u8 gyro_any_motion_u8); 06186 /*! 06187 * @brief This API used to read the gyro highrate interrupt mask 06188 * from page one register from 0x0F bit 3 06189 * 06190 * @param gyro_highrate_u8 : The value of gyro highrate interrupt mask 06191 * gyro_highrate_u8 | result 06192 * -------------------- |------------ 06193 * 0x01 | BNO055_BIT_ENABLE 06194 * 0x00 | BNO055_BIT_DISABLE 06195 * 06196 * @return results of bus communication function 06197 * @retval 0 -> BNO055_SUCCESS 06198 * @retval 1 -> BNO055_ERROR 06199 * 06200 * @note While enabling the gyro highrate interrupt 06201 * configure the below settings by using 06202 * the following APIs 06203 * 06204 * Axis : 06205 * 06206 * bno055_set_gyro_highrate_axis_enable() 06207 * 06208 * Filter : 06209 * 06210 * bno055_set_gyro_highrate_filter() 06211 * 06212 * Threshold : 06213 * 06214 * bno055_get_gyro_highrate_x_thres() 06215 * 06216 * bno055_get_gyro_highrate_y_thres() 06217 * 06218 * bno055_get_gyro_highrate_z_thres() 06219 * 06220 * Hysteresis : 06221 * 06222 * bno055_set_gyro_highrate_x_hyst() 06223 * 06224 * bno055_set_gyro_highrate_y_hyst() 06225 * 06226 * bno055_set_gyro_highrate_z_hyst() 06227 * 06228 * Duration : 06229 * 06230 * bno055_set_gyro_highrate_x_durn() 06231 * 06232 * bno055_set_gyro_highrate_y_durn() 06233 * 06234 * bno055_set_gyro_highrate_z_durn() 06235 * 06236 */ 06237 BNO055_RETURN_FUNCTION_TYPE bno055_get_intr_mask_gyro_highrate( 06238 u8 *gyro_highrate_u8); 06239 /*! 06240 * @brief This API used to write the gyro highrate interrupt mask 06241 * from page one register from 0x0F bit 3 06242 * 06243 * @param gyro_highrate_u8 : The value of gyro highrate interrupt mask 06244 * gyro_highrate_u8 | result 06245 * -------------------- |------------ 06246 * 0x01 | BNO055_BIT_ENABLE 06247 * 0x00 | BNO055_BIT_DISABLE 06248 * 06249 * @return results of bus communication function 06250 * @retval 0 -> BNO055_SUCCESS 06251 * @retval 1 -> BNO055_ERROR 06252 * 06253 * @note While enabling the gyro highrate interrupt 06254 * configure the below settings by using 06255 * the following APIs 06256 * 06257 * Axis : 06258 * 06259 * bno055_set_gyro_highrate_axis_enable() 06260 * 06261 * Filter : 06262 * 06263 * bno055_set_gyro_highrate_filter() 06264 * 06265 * Threshold : 06266 * 06267 * bno055_get_gyro_highrate_x_thres() 06268 * 06269 * bno055_get_gyro_highrate_y_thres() 06270 * 06271 * bno055_get_gyro_highrate_z_thres() 06272 * 06273 * Hysteresis : 06274 * 06275 * bno055_set_gyro_highrate_x_hyst() 06276 * 06277 * bno055_set_gyro_highrate_y_hyst() 06278 * 06279 * bno055_set_gyro_highrate_z_hyst() 06280 * 06281 * Duration : 06282 * 06283 * bno055_set_gyro_highrate_x_durn() 06284 * 06285 * bno055_set_gyro_highrate_y_durn() 06286 * 06287 * bno055_set_gyro_highrate_z_durn() 06288 * 06289 */ 06290 BNO055_RETURN_FUNCTION_TYPE bno055_set_intr_mask_gyro_highrate( 06291 u8 gyro_highrate_u8); 06292 /*****************************************************/ 06293 /**\name APIs FOR ACCEL INTERRUPT MASK */ 06294 /*****************************************************/ 06295 /*! 06296 * @brief This API used to read the accel highg interrupt mask 06297 * from page one register from 0x0F bit 5 06298 * 06299 * @param accel_high_g_u8 : The value of accel highg interrupt mask 06300 * accel_high_g_u8 | result 06301 * -------------------- |------------ 06302 * 0x01 | BNO055_BIT_ENABLE 06303 * 0x00 | BNO055_BIT_DISABLE 06304 * 06305 * @return results of bus communication function 06306 * @retval 0 -> BNO055_SUCCESS 06307 * @retval 1 -> BNO055_ERROR 06308 * 06309 * @note While enabling the accel highg interrupt 06310 * configure the below settings by using 06311 * the following APIs 06312 * 06313 * Axis : 06314 * 06315 * bno055_set_accel_high_g_axis_enable() 06316 * 06317 * Threshold : 06318 * 06319 * bno055_set_accel_high_g_thres() 06320 * 06321 * Duration : 06322 * 06323 * bno055_set_accel_high_g_durn() 06324 * 06325 */ 06326 BNO055_RETURN_FUNCTION_TYPE bno055_get_intr_mask_accel_high_g( 06327 u8 *accel_high_g_u8); 06328 /*! 06329 * @brief This API used to write the accel highg interrupt mask 06330 * from page one register from 0x0F bit 5 06331 * 06332 * @param accel_high_g_u8 : The value of accel highg interrupt mask 06333 * accel_high_g_u8 | result 06334 * -------------------- |------------ 06335 * 0x01 | BNO055_BIT_ENABLE 06336 * 0x00 | BNO055_BIT_DISABLE 06337 * 06338 * @return results of bus communication function 06339 * @retval 0 -> BNO055_SUCCESS 06340 * @retval 1 -> BNO055_ERROR 06341 * 06342 * @note While enabling the accel highg interrupt 06343 * configure the below settings by using 06344 * the following APIs 06345 * 06346 * Axis : 06347 * 06348 * bno055_set_accel_high_g_axis_enable() 06349 * 06350 * Threshold : 06351 * 06352 * bno055_set_accel_high_g_thres() 06353 * 06354 * Duration : 06355 * 06356 * bno055_set_accel_high_g_durn() 06357 * 06358 */ 06359 BNO055_RETURN_FUNCTION_TYPE bno055_set_intr_mask_accel_high_g( 06360 u8 accel_high_g_u8); 06361 /*! 06362 * @brief This API used to read the accel anymotion interrupt mask 06363 * from page one register from 0x0F bit 6 06364 * 06365 * @param accel_any_motion_u8 : The value of accel anymotion interrupt mask 06366 * accel_any_motion_u8 | result 06367 * -------------------- |------------ 06368 * 0x01 | BNO055_BIT_ENABLE 06369 * 0x00 | BNO055_BIT_DISABLE 06370 * 06371 * @return results of bus communication function 06372 * @retval 0 -> BNO055_SUCCESS 06373 * @retval 1 -> BNO055_ERROR 06374 * 06375 * @note While enabling the accel highg interrupt 06376 * configure the below settings by using 06377 * the following APIs 06378 * 06379 * Axis : 06380 * 06381 * bno055_set_accel_high_g_axis_enable() 06382 * 06383 * Threshold : 06384 * 06385 * bno055_set_accel_high_g_thres() 06386 * 06387 * Duration : 06388 * 06389 * bno055_set_accel_high_g_durn() 06390 * 06391 */ 06392 BNO055_RETURN_FUNCTION_TYPE bno055_get_intr_mask_accel_any_motion( 06393 u8 *accel_any_motion_u8); 06394 /*! 06395 * @brief This API used to write the accel anymotion interrupt mask 06396 * from page one register from 0x0F bit 6 06397 * 06398 * @param accel_any_motion_u8 : The value of accel anymotion interrupt mask 06399 * accel_any_motion_u8 | result 06400 * -------------------- |------------ 06401 * 0x01 | BNO055_BIT_ENABLE 06402 * 0x00 | BNO055_BIT_DISABLE 06403 * 06404 * @return results of bus communication function 06405 * @retval 0 -> BNO055_SUCCESS 06406 * @retval 1 -> BNO055_ERROR 06407 * 06408 * @note While enabling the accel anymotion interrupt 06409 * configure the following settings 06410 * 06411 * Axis: 06412 * 06413 * bno055_set_accel_any_motion_no_motion_axis_enable() 06414 * 06415 * Duration: 06416 * 06417 * bno055_set_accel_any_motion_durn() 06418 * 06419 * Threshold: 06420 * 06421 * bno055_set_accel_any_motion_thres() 06422 * 06423 */ 06424 BNO055_RETURN_FUNCTION_TYPE bno055_set_intr_mask_accel_any_motion( 06425 u8 accel_any_motion_u8); 06426 /*! 06427 * @brief This API used to read the accel nomotion interrupt mask 06428 * from page one register from 0x0F bit 7 06429 * 06430 * @param accel_nomotion_u8 : The value of accel nomotion interrupt mask 06431 * accel_nomotion_u8 | result 06432 * -------------------- |------------ 06433 * 0x01 | BNO055_BIT_ENABLE 06434 * 0x00 | BNO055_BIT_DISABLE 06435 * 06436 * @return results of bus communication function 06437 * @retval 0 -> BNO055_SUCCESS 06438 * 06439 * @note While enabling the accel anymotion interrupt 06440 * configure the following settings 06441 * 06442 * Axis: 06443 * 06444 * bno055_set_accel_any_motion_no_motion_axis_enable() 06445 * 06446 * Duration: 06447 * 06448 * bno055_set_accel_any_motion_durn() 06449 * 06450 * Threshold: 06451 * 06452 * bno055_set_accel_any_motion_thres()) 06453 * 06454 */ 06455 BNO055_RETURN_FUNCTION_TYPE bno055_get_intr_mask_accel_no_motion( 06456 u8 *accel_nomotion_u8); 06457 /*! 06458 * @brief This API used to write the accel nomotion interrupt mask 06459 * from page one register from 0x0F bit 7 06460 * 06461 * @param accel_nomotion_u8 : The value of accel nomotion interrupt mask 06462 * accel_nomotion_u8 | result 06463 * -------------------- |------------ 06464 * 0x01 | BNO055_BIT_ENABLE 06465 * 0x00 | BNO055_BIT_DISABLE 06466 * 06467 * @return results of bus communication function 06468 * @retval 0 -> BNO055_SUCCESS 06469 * @retval 1 -> BNO055_ERROR 06470 * 06471 * @note While enabling the accel nomotion interrupt 06472 * configure the following settings 06473 * 06474 * Axis: 06475 * 06476 * bno055_set_accel_any_motion_no_motion_axis_enable() 06477 * 06478 * Threshold : 06479 * 06480 * bno055_set_accel_slow_no_motion_thres() 06481 * 06482 * Duration : 06483 * 06484 * bno055_set_accel_slow_no_motion_durn() 06485 * 06486 * Slow/no motion enable: 06487 * 06488 * bno055_set_accel_slow_no_motion_enable() 06489 * 06490 */ 06491 BNO055_RETURN_FUNCTION_TYPE bno055_set_intr_mask_accel_no_motion( 06492 u8 accel_nomotion_u8); 06493 /*****************************************************/ 06494 /**\name FUNCTIONS FOR GYRO INTERRUPT */ 06495 /*****************************************************/ 06496 /*! 06497 * @brief This API used to read the gyro anymotion interrupt 06498 * from page one register from 0x10 bit 2 06499 * 06500 * @param gyro_any_motion_u8 : The value of gyro anymotion interrupt 06501 * gyro_any_motion_u8 | result 06502 * -------------------- |------------ 06503 * 0x01 | BNO055_BIT_ENABLE 06504 * 0x00 | BNO055_BIT_DISABLE 06505 * 06506 * @return results of bus communication function 06507 * @retval 0 -> BNO055_SUCCESS 06508 * @retval 1 -> BNO055_ERROR 06509 * 06510 * @note While enabling the gyro anymotion interrupt 06511 * configure the following settings 06512 * 06513 * Axis: 06514 * bno055_set_gyro_any_motion_axis_enable() 06515 * 06516 * Filter setting: 06517 * bno055_set_gyro_any_motion_filter() 06518 * 06519 * Threshold : 06520 * 06521 * bno055_set_gyro_any_motion_thres() 06522 * 06523 * Slope samples : 06524 * 06525 * bno055_set_gyro_any_motion_slope_samples() 06526 * 06527 * Awake duration : 06528 * 06529 * bno055_set_gyro_any_motion_awake_durn() 06530 */ 06531 BNO055_RETURN_FUNCTION_TYPE bno055_get_intr_gyro_any_motion( 06532 u8 *gyro_any_motion_u8); 06533 /*! 06534 * @brief This API used to write the gyro anymotion interrupt 06535 * from page one register from 0x10 bit 2 06536 * 06537 * @param gyro_any_motion_u8 : The value of gyro anymotion interrupt 06538 * gyro_any_motion_u8 | result 06539 * -------------------- |------------ 06540 * 0x01 | BNO055_BIT_ENABLE 06541 * 0x00 | BNO055_BIT_DISABLE 06542 * 06543 * @return results of bus communication function 06544 * @retval 0 -> BNO055_SUCCESS 06545 * @retval 1 -> BNO055_ERROR 06546 * 06547 * @note While enabling the gyro anymotion interrupt 06548 * configure the following settings 06549 * 06550 * Axis: 06551 * bno055_set_gyro_any_motion_axis_enable() 06552 * 06553 * Filter setting: 06554 * bno055_set_gyro_any_motion_filter() 06555 * 06556 * Threshold : 06557 * 06558 * bno055_set_gyro_any_motion_thres() 06559 * 06560 * Slope samples : 06561 * 06562 * bno055_set_gyro_any_motion_slope_samples() 06563 * 06564 * Awake duration : 06565 * 06566 * bno055_set_gyro_any_motion_awake_durn() 06567 */ 06568 BNO055_RETURN_FUNCTION_TYPE bno055_set_intr_gyro_any_motion( 06569 u8 gyro_any_motion_u8); 06570 /*! 06571 * @brief This API used to read the gyro highrate interrupt 06572 * from page one register from 0x10 bit 3 06573 * 06574 * @param gyro_highrate_u8 : The value of gyro highrate interrupt 06575 * gyro_highrate_u8 | result 06576 * -------------------- |------------ 06577 * 0x01 | BNO055_BIT_ENABLE 06578 * 0x00 | BNO055_BIT_DISABLE 06579 * 06580 * @return results of bus communication function 06581 * @retval 0 -> BNO055_SUCCESS 06582 * @retval 1 -> BNO055_ERROR 06583 * 06584 * @note While enabling the gyro highrate interrupt 06585 * configure the below settings by using 06586 * the following APIs 06587 * 06588 * Axis : 06589 * 06590 * bno055_set_gyro_highrate_axis_enable() 06591 * 06592 * Filter : 06593 * 06594 * bno055_set_gyro_highrate_filter() 06595 * 06596 * Threshold : 06597 * 06598 * bno055_get_gyro_highrate_x_thres() 06599 * 06600 * bno055_get_gyro_highrate_y_thres() 06601 * 06602 * bno055_get_gyro_highrate_z_thres() 06603 * 06604 * Hysteresis : 06605 * 06606 * bno055_set_gyro_highrate_x_hyst() 06607 * 06608 * bno055_set_gyro_highrate_y_hyst() 06609 * 06610 * bno055_set_gyro_highrate_z_hyst() 06611 * 06612 * Duration : 06613 * 06614 * bno055_set_gyro_highrate_x_durn() 06615 * 06616 * bno055_set_gyro_highrate_y_durn() 06617 * 06618 * bno055_set_gyro_highrate_z_durn() 06619 * 06620 */ 06621 BNO055_RETURN_FUNCTION_TYPE bno055_get_intr_gyro_highrate( 06622 u8 *gyro_highrate_u8); 06623 /*! 06624 * @brief This API used to write the gyro highrate interrupt 06625 * from page one register from 0x10 bit 3 06626 * 06627 * @param gyro_highrate_u8 : The value of gyro highrate interrupt 06628 * gyro_highrate_u8 | result 06629 * -------------------- |------------ 06630 * 0x01 | BNO055_BIT_ENABLE 06631 * 0x00 | BNO055_BIT_DISABLE 06632 * 06633 * @return results of bus communication function 06634 * @retval 0 -> BNO055_SUCCESS 06635 * @retval 1 -> BNO055_ERROR 06636 * 06637 * @note While enabling the gyro highrate interrupt 06638 * configure the below settings by using 06639 * the following APIs 06640 * 06641 * Axis : 06642 * 06643 * bno055_set_gyro_highrate_axis_enable() 06644 * 06645 * Filter : 06646 * 06647 * bno055_set_gyro_highrate_filter() 06648 * 06649 * Threshold : 06650 * 06651 * bno055_get_gyro_highrate_x_thres() 06652 * 06653 * bno055_get_gyro_highrate_y_thres() 06654 * 06655 * bno055_get_gyro_highrate_z_thres() 06656 * 06657 * Hysteresis : 06658 * 06659 * bno055_set_gyro_highrate_x_hyst() 06660 * 06661 * bno055_set_gyro_highrate_y_hyst() 06662 * 06663 * bno055_set_gyro_highrate_z_hyst() 06664 * 06665 * Duration : 06666 * 06667 * bno055_set_gyro_highrate_x_durn() 06668 * 06669 * bno055_set_gyro_highrate_y_durn() 06670 * 06671 * bno055_set_gyro_highrate_z_durn() 06672 * 06673 */ 06674 BNO055_RETURN_FUNCTION_TYPE bno055_set_intr_gyro_highrate( 06675 u8 gyro_highrate_u8); 06676 /*****************************************************/ 06677 /**\name FUNCTIONS FOR ACCEL INTERRUPT */ 06678 /*****************************************************/ 06679 /*! 06680 * @brief This API used to read the accel highg interrupt 06681 * from page one register from 0x10 bit 5 06682 * 06683 * @param accel_high_g_u8 : The value of accel highg interrupt 06684 * accel_high_g_u8 | result 06685 * -------------------- |------------ 06686 * 0x01 | BNO055_BIT_ENABLE 06687 * 0x00 | BNO055_BIT_DISABLE 06688 * 06689 * @return results of bus communication function 06690 * @retval 0 -> BNO055_SUCCESS 06691 * @retval 1 -> BNO055_ERROR 06692 * 06693 * @note While enabling the accel highg interrupt 06694 * configure the below settings by using 06695 * the following APIs 06696 * 06697 * Axis : 06698 * 06699 * bno055_set_accel_high_g_axis_enable() 06700 * 06701 * Threshold : 06702 * 06703 * bno055_set_accel_high_g_thres() 06704 * 06705 * Duration : 06706 * 06707 * bno055_set_accel_high_g_durn() 06708 * 06709 */ 06710 BNO055_RETURN_FUNCTION_TYPE bno055_get_intr_accel_high_g( 06711 u8 *accel_high_g_u8); 06712 /*! 06713 * @brief This API used to write the accel highg interrupt 06714 * from page one register from 0x10 bit 5 06715 * 06716 * @param accel_high_g_u8 : The value of accel highg interrupt 06717 * accel_high_g_u8 | result 06718 * -------------------- |------------ 06719 * 0x01 | BNO055_BIT_ENABLE 06720 * 0x00 | BNO055_BIT_DISABLE 06721 * 06722 * @return results of bus communication function 06723 * @retval 0 -> BNO055_SUCCESS 06724 * @retval 1 -> BNO055_ERROR 06725 * 06726 * @note While enabling the accel highg interrupt 06727 * configure the below settings by using 06728 * the following APIs 06729 * 06730 * Axis : 06731 * 06732 * bno055_set_accel_high_g_axis_enable() 06733 * 06734 * Threshold : 06735 * 06736 * bno055_set_accel_high_g_thres() 06737 * 06738 * Duration : 06739 * 06740 * bno055_set_accel_high_g_durn() 06741 * 06742 */ 06743 BNO055_RETURN_FUNCTION_TYPE bno055_set_intr_accel_high_g( 06744 u8 accel_high_g_u8); 06745 /*! 06746 * @brief This API used to read the accel anymotion interrupt 06747 * from page one register from 0x10 bit 6 06748 * 06749 * @param accel_any_motion_u8 : The value of accel anymotion interrupt 06750 * accel_any_motion_u8 | result 06751 * -------------------- |------------ 06752 * 0x01 | BNO055_BIT_ENABLE 06753 * 0x00 | BNO055_BIT_DISABLE 06754 * 06755 * @return results of bus communication function 06756 * @retval 0 -> BNO055_SUCCESS 06757 * @retval 1 -> BNO055_ERROR 06758 * 06759 * @note While enabling the accel anymotion interrupt 06760 * configure the following settings 06761 * 06762 * Axis: 06763 * 06764 * bno055_set_accel_any_motion_no_motion_axis_enable() 06765 * 06766 * Duration: 06767 * 06768 * bno055_set_accel_any_motion_durn() 06769 * 06770 * Threshold: 06771 * 06772 * bno055_set_accel_any_motion_thres() 06773 * 06774 */ 06775 BNO055_RETURN_FUNCTION_TYPE bno055_get_intr_accel_any_motion( 06776 u8 *accel_any_motion_u8); 06777 /*! 06778 * @brief This API used to write the accel anymotion interrupt 06779 * from page one register from 0x10 bit 6 06780 * 06781 * @param accel_any_motion_u8 : The value of accel anymotion interrupt 06782 * accel_any_motion_u8 | result 06783 * -------------------- |------------ 06784 * 0x01 | BNO055_BIT_ENABLE 06785 * 0x00 | BNO055_BIT_DISABLE 06786 * 06787 * @return results of bus communication function 06788 * @retval 0 -> BNO055_SUCCESS 06789 * @retval 1 -> BNO055_ERROR 06790 * 06791 * @note While enabling the accel anymotion interrupt 06792 * configure the following settings 06793 * 06794 * Axis: 06795 * 06796 * bno055_set_accel_any_motion_no_motion_axis_enable() 06797 * 06798 * Duration: 06799 * 06800 * bno055_set_accel_any_motion_durn() 06801 * 06802 * Threshold: 06803 * 06804 * bno055_set_accel_any_motion_thres() 06805 * 06806 */ 06807 BNO055_RETURN_FUNCTION_TYPE bno055_set_intr_accel_any_motion( 06808 u8 accel_any_motion_u8); 06809 /*! 06810 * @brief This API used to read the accel nomotion interrupt 06811 * from page one register from 0x10 bit 6 06812 * 06813 * @param accel_nomotion_u8 : The value of accel nomotion interrupt 06814 * accel_nomotion_u8 | result 06815 * -------------------- |------------ 06816 * 0x01 | BNO055_BIT_ENABLE 06817 * 0x00 | BNO055_BIT_DISABLE 06818 * 06819 * @return results of bus communication function 06820 * @retval 0 -> BNO055_SUCCESS 06821 * @retval 1 -> BNO055_ERROR 06822 * 06823 * @note While enabling the accel nomotion interrupt 06824 * configure the following settings 06825 * 06826 * Axis: 06827 * 06828 * bno055_set_accel_any_motion_no_motion_axis_enable() 06829 * 06830 * Threshold : 06831 * 06832 * bno055_set_accel_slow_no_motion_thres() 06833 * 06834 * Duration : 06835 * 06836 * bno055_set_accel_slow_no_motion_durn() 06837 * 06838 * Slow/no motion enable: 06839 * 06840 * bno055_set_accel_slow_no_motion_enable() 06841 * 06842 */ 06843 BNO055_RETURN_FUNCTION_TYPE bno055_get_intr_accel_no_motion( 06844 u8 *accel_nomotion_u8); 06845 /*! 06846 * @brief This API used to write the accel nomotion interrupt 06847 * from page one register from 0x10 bit 6 06848 * 06849 * @param accel_nomotion_u8 : The value of accel nomotion interrupt 06850 * accel_nomotion_u8 | result 06851 * -------------------- |------------ 06852 * 0x01 | BNO055_BIT_ENABLE 06853 * 0x00 | BNO055_BIT_DISABLE 06854 * 06855 * @return results of bus communication function 06856 * @retval 0 -> BNO055_SUCCESS 06857 * @retval 1 -> BNO055_ERROR 06858 * 06859 * @note While enabling the accel nomotion interrupt 06860 * configure the following settings 06861 * 06862 * Axis: 06863 * 06864 * bno055_set_accel_any_motion_no_motion_axis_enable() 06865 * 06866 * Threshold : 06867 * 06868 * bno055_set_accel_slow_no_motion_thres() 06869 * 06870 * Duration : 06871 * 06872 * bno055_set_accel_slow_no_motion_durn() 06873 * 06874 * Slow/no motion enable: 06875 * 06876 * bno055_set_accel_slow_no_motion_enable() 06877 * 06878 */ 06879 BNO055_RETURN_FUNCTION_TYPE bno055_set_intr_accel_no_motion( 06880 u8 accel_nomotion_u8); 06881 /*****************************************************/ 06882 /**\name FUNCTIONS FOR ACCEL ANY_MOTION THRESHOLD */ 06883 /*****************************************************/ 06884 /*! 06885 * @brief This API used to read the accel any motion threshold 06886 * from page one register from 0x11 bit 0 to 7 06887 * 06888 * @param accel_any_motion_thres_u8 : The value of any motion threshold 06889 * accel_any_motion_thres_u8 | result 06890 * ------------------------ | ------------- 06891 * 0x01 | BNO055_BIT_ENABLE 06892 * 0x00 | BNO055_BIT_DISABLE 06893 * 06894 * @return results of bus communication function 06895 * @retval 0 -> BNO055_SUCCESS 06896 * @retval 1 -> BNO055_ERROR 06897 * 06898 * @note Accel anymotion threshold dependent on the 06899 * range values 06900 * 06901 * accel_range_u8 | threshold | LSB 06902 * ------------- | ------------- | --------- 06903 * 2g | 3.19mg | 1LSB 06904 * 4g | 7.81mg | 1LSB 06905 * 8g | 15.63mg | 1LSB 06906 * 16g | 31.25mg | 1LSB 06907 * 06908 */ 06909 BNO055_RETURN_FUNCTION_TYPE bno055_get_accel_any_motion_thres( 06910 u8 *accel_any_motion_thres_u8); 06911 /*! 06912 * @brief This API used to write the accel any motion threshold 06913 * from page one register from 0x11 bit 0 to 7 06914 * 06915 * @param accel_any_motion_thres_u8 : The value of any motion threshold 06916 * accel_any_motion_thres_u8 | result 06917 * ------------------------ | ------------- 06918 * 0x01 | BNO055_BIT_ENABLE 06919 * 0x00 | BNO055_BIT_DISABLE 06920 * 06921 * @return results of bus communication function 06922 * @retval 0 -> BNO055_SUCCESS 06923 * @retval 1 -> BNO055_ERROR 06924 * 06925 * @note Accel anymotion threshold dependent on the 06926 * range values 06927 * 06928 * accel_range_u8 | threshold | LSB 06929 * ------------- | ------------- | --------- 06930 * 2g | 3.19mg | 1LSB 06931 * 4g | 7.81mg | 1LSB 06932 * 8g | 15.63mg | 1LSB 06933 * 16g | 31.25mg | 1LSB 06934 * 06935 */ 06936 BNO055_RETURN_FUNCTION_TYPE bno055_set_accel_any_motion_thres( 06937 u8 accel_any_motion_thres_u8); 06938 /*****************************************************/ 06939 /**\name FUNCTIONS FOR ACCEL ANY_MOTION DURATION */ 06940 /*****************************************************/ 06941 /*! 06942 * @brief This API used to read the accel anymotion duration 06943 * from page one register from 0x12 bit 0 to 1 06944 * 06945 * @param accel_any_motion_durn_u8 : The value of accel anymotion duration 06946 * accel_any_motion_durn_u8 | result 06947 * ------------------------- | ------------- 06948 * 0x01 | BNO055_BIT_ENABLE 06949 * 0x00 | BNO055_BIT_DISABLE 06950 * 06951 * @return results of bus communication function 06952 * @retval 0 -> BNO055_SUCCESS 06953 * @retval 1 -> BNO055_ERROR 06954 * 06955 * 06956 */ 06957 BNO055_RETURN_FUNCTION_TYPE bno055_get_accel_any_motion_durn( 06958 u8 *accel_any_motion_durn_u8); 06959 /*! 06960 * @brief This API used to write the accel anymotion duration 06961 * from page one register from 0x12 bit 0 to 1 06962 * 06963 * @param accel_any_motion_durn_u8 : The value of accel anymotion duration 06964 * 06965 * accel_any_motion_durn_u8 | result 06966 * ------------------------- | ------------- 06967 * 0x01 | BNO055_BIT_ENABLE 06968 * 0x00 | BNO055_BIT_DISABLE 06969 * 06970 * @return results of bus communication function 06971 * @retval 0 -> BNO055_SUCCESS 06972 * @retval 1 -> BNO055_ERROR 06973 * 06974 * 06975 */ 06976 BNO055_RETURN_FUNCTION_TYPE bno055_set_accel_any_motion_durn( 06977 u8 accel_any_motion_durn_u8); 06978 /*****************************************************/ 06979 /**\name FUNCTIONS FOR ACCEL ANY_MOTION AXIS ENABLE */ 06980 /*****************************************************/ 06981 /*! 06982 * @brief This API used to read the accel anymotion enable 06983 * from page one register from 0x12 bit 2 to 4 06984 * 06985 * @param data_u8 : The value of accel anymotion enable 06986 * data_u8 | result 06987 * ------------ | ------------- 06988 * 0x01 | BNO055_BIT_ENABLE 06989 * 0x00 | BNO055_BIT_DISABLE 06990 * @param channel_u8 : The value of accel anymotion axis selection 06991 * channel_u8 | value 06992 * -------------------------- | ---------- 06993 * BNO055_ACCEL_ANY_MOTION_NO_MOTION_X_AXIS | 0 06994 * BNO055_ACCEL_ANY_MOTION_NO_MOTION_Y_AXIS | 1 06995 * BNO055_ACCEL_ANY_MOTION_NO_MOTION_Y_AXIS | 2 06996 * 06997 * @return results of bus communication function 06998 * @retval 0 -> BNO055_SUCCESS 06999 * @retval 1 -> BNO055_ERROR 07000 * 07001 * 07002 */ 07003 BNO055_RETURN_FUNCTION_TYPE bno055_get_accel_any_motion_no_motion_axis_enable( 07004 u8 channel_u8, u8 *data_u8); 07005 /*! 07006 * @brief This API used to write the accel anymotion enable 07007 * from page one register from 0x12 bit 2 to 4 07008 * 07009 * @param data_u8 : The value of accel anymotion enable 07010 * data_u8 | result 07011 * ------------ | ------------- 07012 * 0x01 | BNO055_BIT_ENABLE 07013 * 0x00 | BNO055_BIT_DISABLE 07014 * @param channel_u8 : The value of accel anymotion axis selection 07015 * channel_u8 | value 07016 * -------------------------- | ---------- 07017 * BNO055_ACCEL_ANY_MOTION_NO_MOTION_X_AXIS | 0 07018 * BNO055_ACCEL_ANY_MOTION_NO_MOTION_Y_AXIS | 1 07019 * BNO055_ACCEL_ANY_MOTION_NO_MOTION_Y_AXIS | 2 07020 * 07021 * @return results of bus communication function 07022 * @retval 0 -> BNO055_SUCCESS 07023 * @retval 1 -> BNO055_ERROR 07024 * 07025 * 07026 */ 07027 BNO055_RETURN_FUNCTION_TYPE bno055_set_accel_any_motion_no_motion_axis_enable( 07028 u8 channel_u8, u8 data_u8); 07029 /*****************************************************/ 07030 /**\name FUNCTIONS FOR ACCEL HIGHG AXIS ENABLE */ 07031 /*****************************************************/ 07032 /*! 07033 * @brief This API used to read the accel highg enable 07034 * from page one register from 0x12 bit 5 to 7 07035 * 07036 * @param data_u8 : The value of accel highg enable 07037 * data_u8| result 07038 * ------------ | ------------- 07039 * 0x01 | BNO055_BIT_ENABLE 07040 * 0x00 | BNO055_BIT_DISABLE 07041 * @param channel_u8 : The value of accel highg axis selection 07042 * channel_u8 | value 07043 * -------------------------- | ---------- 07044 * BNO055_ACCEL_HIGH_G_X_AXIS | 0 07045 * BNO055_ACCEL_HIGH_G_Y_AXIS | 1 07046 * BNO055_ACCEL_HIGH_G_Z_AXIS | 2 07047 * 07048 * @return results of bus communication function 07049 * @retval 0 -> BNO055_SUCCESS 07050 * @retval 1 -> BNO055_ERROR 07051 * 07052 * 07053 */ 07054 BNO055_RETURN_FUNCTION_TYPE bno055_get_accel_high_g_axis_enable( 07055 u8 channel_u8, u8 *data_u8); 07056 /*! 07057 * @brief This API used to write the accel highg enable 07058 * from page one register from 0x12 bit 5 to 7 07059 * 07060 * @param data_u8 : The value of accel highg enable 07061 * data_u8| result 07062 * ------------ | ------------- 07063 * 0x01 | BNO055_BIT_ENABLE 07064 * 0x00 | BNO055_BIT_DISABLE 07065 * @param channel_u8 : The value of accel highg axis selection 07066 * channel_u8 | value 07067 * -------------------------- | ---------- 07068 * BNO055_ACCEL_HIGH_G_X_AXIS | 0 07069 * BNO055_ACCEL_HIGH_G_Y_AXIS | 1 07070 * BNO055_ACCEL_HIGH_G_Z_AXIS | 2 07071 * 07072 * @return results of bus communication function 07073 * @retval 0 -> BNO055_SUCCESS 07074 * @retval 1 -> BNO055_ERROR 07075 * 07076 * 07077 */ 07078 BNO055_RETURN_FUNCTION_TYPE bno055_set_accel_high_g_axis_enable( 07079 u8 channel_u8, u8 data_u8); 07080 /*****************************************************/ 07081 /**\name FUNCTIONS FOR ACCEL HIGHG DURATION */ 07082 /*****************************************************/ 07083 /*! 07084 * @brief This API used to read the accel highg duration 07085 * from page one register from 0x13 bit 0 to 7 07086 * 07087 * @param accel_high_g_durn_u8 : The value of accel highg duration 07088 * 07089 * @return results of bus communication function 07090 * @retval 0 -> BNO055_SUCCESS 07091 * @retval 1 -> BNO055_ERROR 07092 * 07093 * @note The high-g interrupt trigger delay according 07094 * to [highg duration + 1] * 2 ms 07095 * 07096 * in a range from 2 ms to 512 ms 07097 * 07098 */ 07099 BNO055_RETURN_FUNCTION_TYPE bno055_get_accel_high_g_durn( 07100 u8 *accel_high_g_durn_u8); 07101 /*! 07102 * @brief This API used to write the accel highg duration 07103 * from page one register from 0x13 bit 0 to 7 07104 * 07105 * @param accel_high_g_durn_u8 : The value of accel highg duration 07106 * 07107 * @return results of bus communication function 07108 * @retval 0 -> BNO055_SUCCESS 07109 * @retval 1 -> BNO055_ERROR 07110 * 07111 * @note The high-g interrupt trigger delay according 07112 * to [highg duration + 1] * 2 ms 07113 * 07114 * in a range from 2 ms to 512 ms 07115 * 07116 */ 07117 BNO055_RETURN_FUNCTION_TYPE bno055_set_accel_high_g_durn( 07118 u8 accel_high_g_durn_u8); 07119 /*****************************************************/ 07120 /**\name FUNCTIONS FOR ACCEL HIGHG THRESHOLD */ 07121 /*****************************************************/ 07122 /*! 07123 * @brief This API used to read the accel highg threshold 07124 * from page one register from 0x14 bit 0 to 7 07125 * 07126 * @param accel_high_g_thres_u8 : The value of accel highg threshold 07127 * 07128 * @return results of bus communication function 07129 * @retval 0 -> BNO055_SUCCESS 07130 * @retval 1 -> BNO055_ERROR 07131 * 07132 * @note Accel highg interrupt threshold dependent 07133 * for accel g range 07134 * 07135 * accel_range_u8 | threshold | LSB 07136 * ------------- | ------------- | --------- 07137 * 2g | 7.81mg | 1LSB 07138 * 4g | 15.63mg | 1LSB 07139 * 8g | 31.25mg | 1LSB 07140 * 16g | 62.5mg | 1LSB 07141 * 07142 */ 07143 BNO055_RETURN_FUNCTION_TYPE bno055_get_accel_high_g_thres( 07144 u8 *accel_high_g_thres_u8); 07145 /*! 07146 * @brief This API used to write the accel highg threshold 07147 * from page one register from 0x14 bit 0 to 7 07148 * 07149 * @param accel_high_g_thres_u8 : The value of accel highg threshold 07150 * 07151 * @return results of bus communication function 07152 * @retval 0 -> BNO055_SUCCESS 07153 * @retval 1 -> BNO055_ERROR 07154 * 07155 * @note Accel highg interrupt threshold dependent 07156 * for accel g range 07157 * 07158 * accel_range_u8 | threshold | LSB 07159 * ------------- | ------------- | --------- 07160 * 2g | 7.81mg | 1LSB 07161 * 4g | 15.63mg | 1LSB 07162 * 8g | 31.25mg | 1LSB 07163 * 16g | 62.5mg | 1LSB 07164 * 07165 */ 07166 BNO055_RETURN_FUNCTION_TYPE bno055_set_accel_high_g_thres( 07167 u8 accel_high_g_thres_u8); 07168 /**************************************************************/ 07169 /**\name FUNCTIONS FOR ACCEL SLOWNOMOTION THRESHOLD */ 07170 /**************************************************************/ 07171 /*! 07172 * @brief This API used to read the accel slownomotion threshold 07173 * from page one register from 0x15 bit 0 to 7 07174 * 07175 * @param accel_slow_no_motion_thres_u8 : 07176 * The value of accel slownomotion threshold 07177 * 07178 * @return results of bus communication function 07179 * @retval 0 -> BNO055_SUCCESS 07180 * @retval 1 -> BNO055_ERROR 07181 * 07182 * @note Accel slow no motion interrupt threshold dependent 07183 * for accel g range 07184 * 07185 * accel_range_u8 | threshold | LSB 07186 * ------------- | ------------- | --------- 07187 * 2g | 3.19mg | 1LSB 07188 * 4g | 7.81mg | 1LSB 07189 * 8g | 15.63mg | 1LSB 07190 * 16g | 31.25mg | 1LSB 07191 */ 07192 BNO055_RETURN_FUNCTION_TYPE bno055_get_accel_slow_no_motion_thres( 07193 u8 *accel_slow_no_motion_thres_u8); 07194 /*! 07195 * @brief This API used to write the accel slownomotion threshold 07196 * from page one register from 0x15 bit 0 to 7 07197 * 07198 * @param accel_slow_no_motion_thres_u8 : 07199 * The value of accel slownomotion threshold 07200 * 07201 * @return results of bus communication function 07202 * @retval 0 -> BNO055_SUCCESS 07203 * @retval 1 -> BNO055_ERROR 07204 * 07205 * @note Accel slow no motion interrupt threshold dependent 07206 * for accel g range 07207 * 07208 * accel_range_u8 | threshold | LSB 07209 * ------------- | ------------- | --------- 07210 * 2g | 3.19mg | 1LSB 07211 * 4g | 7.81mg | 1LSB 07212 * 8g | 15.63mg | 1LSB 07213 * 16g | 31.25mg | 1LSB 07214 */ 07215 BNO055_RETURN_FUNCTION_TYPE bno055_set_accel_slow_no_motion_thres( 07216 u8 accel_slow_no_motion_thres_u8); 07217 /**************************************************************/ 07218 /**\name FUNCTIONS FOR ACCEL SLOWNOMOTION ENABLE */ 07219 /**************************************************************/ 07220 /*! 07221 * @brief This API used to read accel slownomotion enable 07222 * from page one register from 0x16 bit 0 07223 * 07224 * @param accel_slow_no_motion_en_u8 : The value of accel slownomotion enable 07225 * accel_slow_no_motion_en_u8 | result 07226 * ------------------------ | -------- 07227 * 0x01 | Slow motion 07228 * 0x00 | No motion 07229 * 07230 * @return results of bus communication function 07231 * @retval 0 -> BNO055_SUCCESS 07232 * @retval 1 -> BNO055_ERROR 07233 * 07234 */ 07235 BNO055_RETURN_FUNCTION_TYPE bno055_get_accel_slow_no_motion_enable( 07236 u8 *accel_slow_no_motion_en_u8); 07237 /*! 07238 * @brief This API used to write accel slownomotion enable 07239 * from page one register from 0x16 bit 0 07240 * 07241 * @param accel_slow_no_motion_en_u8 : The value of accel slownomotion enable 07242 * accel_slow_no_motion_en_u8 | result 07243 * ------------------------ | -------- 07244 * 0x01 | Slow motion 07245 * 0x00 | No motion 07246 * 07247 * @return results of bus communication function 07248 * @retval 0 -> BNO055_SUCCESS 07249 * @retval 1 -> BNO055_ERROR 07250 * 07251 */ 07252 BNO055_RETURN_FUNCTION_TYPE bno055_set_accel_slow_no_motion_enable( 07253 u8 accel_slow_no_motion_en_u8); 07254 /**************************************************************/ 07255 /**\name FUNCTIONS FOR ACCEL SLOWNOMOTION DURATION */ 07256 /**************************************************************/ 07257 /*! 07258 * @brief This API used to read accel slownomotion duration 07259 * from page one register from 0x16 bit 1 to 6 07260 * 07261 * @param accel_slow_no_motion_durn_u8 : 07262 * The value of accel slownomotion duration 07263 * 07264 * @return results of bus communication function 07265 * @retval 0 -> BNO055_SUCCESS 07266 * @retval 1 -> BNO055_ERROR 07267 * 07268 */ 07269 BNO055_RETURN_FUNCTION_TYPE bno055_get_accel_slow_no_motion_durn( 07270 u8 *accel_slow_no_motion_durn_u8); 07271 /*! 07272 * @brief This API used to write accel slownomotion duration 07273 * from page one register from 0x16 bit 1 to 6 07274 * 07275 * @param accel_slow_no_motion_durn_u8 : 07276 * The value of accel slownomotion duration 07277 * 07278 * @return results of bus communication function 07279 * @retval 0 -> BNO055_SUCCESS 07280 * @retval 1 -> BNO055_ERROR 07281 * 07282 */ 07283 BNO055_RETURN_FUNCTION_TYPE bno055_set_accel_slow_no_motion_durn( 07284 u8 accel_slow_no_motion_durn_u8); 07285 /**************************************************************/ 07286 /**\name FUNCTIONS FOR GYRO ANY_MOTION AXIS ENABLE */ 07287 /**************************************************************/ 07288 /*! 07289 * @brief This API used to read the gyro anymotion enable 07290 * from page one register from 0x17 bit 0 to 2 07291 * 07292 * @param data_u8 : The value of gyro anymotion enable 07293 * data_u8 | result 07294 * ----------------- |------------- 07295 * 0x01 | BNO055_BIT_ENABLE 07296 * 0x00 | BNO055_BIT_DISABLE 07297 * @param channel_u8 : The value of gyro anymotion axis selection 07298 * channel_u8 | value 07299 * --------------------------- | ---------- 07300 * BNO055_GYRO_ANY_MOTIONX_AXIS | 0 07301 * BNO055_GYRO_ANY_MOTIONY_AXIS | 1 07302 * BNO055_GYRO_ANY_MOTIONZ_AXIS | 2 07303 * 07304 * 07305 * @return results of bus communication function 07306 * @retval 0 -> BNO055_SUCCESS 07307 * @retval 1 -> BNO055_ERROR 07308 * 07309 * 07310 */ 07311 BNO055_RETURN_FUNCTION_TYPE bno055_get_gyro_any_motion_axis_enable( 07312 u8 channel_u8, u8 *data_u8); 07313 /*! 07314 * @brief This API used to write the gyro anymotion enable 07315 * from page one register from 0x17 bit 0 to 2 07316 * 07317 * @param data_u8 : The value of gyro anymotion enable 07318 * data_u8 | result 07319 * ----------------- |------------- 07320 * 0x01 | BNO055_BIT_ENABLE 07321 * 0x00 | BNO055_BIT_DISABLE 07322 * @param channel_u8 : The value of gyro anymotion axis selection 07323 * channel_u8 | value 07324 * --------------------------- | ---------- 07325 * BNO055_GYRO_ANY_MOTIONX_AXIS | 0 07326 * BNO055_GYRO_ANY_MOTIONY_AXIS | 1 07327 * BNO055_GYRO_ANY_MOTIONZ_AXIS | 2 07328 * 07329 * @return results of bus communication function 07330 * @retval 0 -> BNO055_SUCCESS 07331 * @retval 1 -> BNO055_ERROR 07332 * 07333 * 07334 */ 07335 BNO055_RETURN_FUNCTION_TYPE bno055_set_gyro_any_motion_axis_enable( 07336 u8 channel_u8, u8 data_u8); 07337 /**************************************************************/ 07338 /**\name FUNCTIONS FOR GYRO HIGHRATE ENABLE */ 07339 /**************************************************************/ 07340 /*! 07341 * @brief This API used to read the gyro highrate enable 07342 * from page one register from 0x17 bit 3 to 5 07343 * 07344 * @param data_u8 : The value of gyro highrate enable 07345 * data_u8 | result 07346 * ---------------- |------------- 07347 * 0x01 | BNO055_BIT_ENABLE 07348 * 0x00 | BNO055_BIT_DISABLE 07349 * @param channel_u8 : The value of gyro highrate axis selection 07350 * channel_u8 | value 07351 * ------------------------ | ---------- 07352 * BNO055_GYRO_HIGHRATE_X_AXIS | 0 07353 * BNO055_GYRO_HIGHRATE_Y_AXIS | 1 07354 * BNO055_GYRO_HIGHRATE_Z_AXIS | 2 07355 * 07356 * 07357 * @return results of bus communication function 07358 * @retval 0 -> BNO055_SUCCESS 07359 * @retval 1 -> BNO055_ERROR 07360 * 07361 * 07362 */ 07363 BNO055_RETURN_FUNCTION_TYPE bno055_get_gyro_highrate_axis_enable( 07364 u8 channel_u8, u8 *data_u8); 07365 /**************************************************************/ 07366 /**\name FUNCTIONS FOR GYRO HIGHRATE AXIS ENABLE */ 07367 /**************************************************************/ 07368 /*! 07369 * @brief This API used to write the gyro highrate enable 07370 * from page one register from 0x17 bit 3 to 5 07371 * 07372 * @param data_u8 : The value of gyro highrate enable 07373 * data_u8 | result 07374 * ---------------- |------------- 07375 * 0x01 | BNO055_BIT_ENABLE 07376 * 0x00 | BNO055_BIT_DISABLE 07377 * @param channel_u8 : The value of gyro highrate axis selection 07378 * channel_u8 | value 07379 * ------------------------ | ---------- 07380 * BNO055_GYRO_HIGHRATE_X_AXIS | 0 07381 * BNO055_GYRO_HIGHRATE_Y_AXIS | 1 07382 * BNO055_GYRO_HIGHRATE_Z_AXIS | 2 07383 * 07384 * @return results of bus communication function 07385 * @retval 0 -> BNO055_SUCCESS 07386 * @retval 1 -> BNO055_ERROR 07387 * 07388 * 07389 */ 07390 BNO055_RETURN_FUNCTION_TYPE bno055_set_gyro_highrate_axis_enable( 07391 u8 channel_u8, u8 data_u8); 07392 /**************************************************************/ 07393 /**\name FUNCTIONS FOR GYRO ANY_MOTION FILTER */ 07394 /**************************************************************/ 07395 /*! 07396 * @brief This API used to read gyro anymotion filter 07397 * from page one register from 0x17 bit 6 07398 * 07399 * @param gyro_any_motion_filter_u8 : The value of gyro anymotion filter 07400 * gyro_any_motion_filter_u8 | result 07401 * --------------------------- |------------ 07402 * 0x00 | BNO055_GYRO_FILTERED_CONFIG 07403 * 0x01 | BNO055_GYRO_UNFILTERED_CONFIG 07404 * 07405 * @return results of bus communication function 07406 * @retval 0 -> BNO055_SUCCESS 07407 * @retval 1 -> BNO055_ERROR 07408 * 07409 */ 07410 BNO055_RETURN_FUNCTION_TYPE bno055_get_gyro_any_motion_filter( 07411 u8 *gyro_any_motion_filter_u8); 07412 /*! 07413 * @brief This API used to write gyro anymotion filter 07414 * from page one register from 0x17 bit 6 07415 * 07416 * @param gyro_any_motion_filter_u8 : The value of gyro anymotion filter 07417 * gyro_any_motion_filter_u8 | result 07418 * --------------------------- |------------ 07419 * 0x00 | BNO055_GYRO_FILTERED_CONFIG 07420 * 0x01 | BNO055_GYRO_UNFILTERED_CONFIG 07421 * 07422 * @return results of bus communication function 07423 * @retval 0 -> BNO055_SUCCESS 07424 * @retval 1 -> BNO055_ERROR 07425 * 07426 */ 07427 BNO055_RETURN_FUNCTION_TYPE bno055_set_gyro_any_motion_filter( 07428 u8 gyro_any_motion_filter_u8); 07429 /**************************************************************/ 07430 /**\name FUNCTIONS FOR GYRO HIGHRATE FILTER */ 07431 /**************************************************************/ 07432 /*! 07433 * @brief This API used to read gyro highrate filter 07434 * from page one register from 0x17 bit 7 07435 * 07436 * @param gyro_highrate_filter_u8 : The value of gyro highrate filter 07437 * gyro_highrate_filter_u8 | result 07438 * --------------------------- |------------ 07439 * 0x00 | BNO055_GYRO_FILTERED_CONFIG 07440 * 0x01 | BNO055_GYRO_UNFILTERED_CONFIG 07441 * 07442 * @return results of bus communication function 07443 * @retval 0 -> BNO055_SUCCESS 07444 * @retval 1 -> BNO055_ERROR 07445 * 07446 */ 07447 BNO055_RETURN_FUNCTION_TYPE bno055_get_gyro_highrate_filter( 07448 u8 *gyro_highrate_filter_u8); 07449 /*! 07450 * @brief This API used to write gyro highrate filter 07451 * from page one register from 0x17 bit 7 07452 * 07453 * @param gyro_highrate_filter_u8 : The value of gyro highrate filter 07454 * gyro_highrate_filter_u8 | result 07455 * --------------------------- |------------ 07456 * 0x00 | BNO055_GYRO_FILTERED_CONFIG 07457 * 0x01 | BNO055_GYRO_UNFILTERED_CONFIG 07458 * 07459 * @return results of bus communication function 07460 * @retval 0 -> BNO055_SUCCESS 07461 * @retval 1 -> BNO055_ERROR 07462 * 07463 */ 07464 BNO055_RETURN_FUNCTION_TYPE bno055_set_gyro_highrate_filter( 07465 u8 gyro_highrate_filter_u8); 07466 /**************************************************************/ 07467 /**\name FUNCTIONS FOR GYRO HIGHRATE X THRESHOLD */ 07468 /**************************************************************/ 07469 /*! 07470 * @brief This API used to read gyro highrate x threshold 07471 * from page one register from 0x18 bit 0 to 4 07472 * 07473 * @param gyro_highrate_x_thres_u8 : The value of gyro x highrate threshold 07474 * 07475 * @return results of bus communication function 07476 * @retval 0 -> BNO055_SUCCESS 07477 * @retval 1 -> BNO055_ERROR 07478 * 07479 * @note Gyro highrate threshold dependent on the 07480 * selection of gyro range 07481 * 07482 * gyro_range_u8 | threshold | LSB 07483 * ----------------- | ------------- | --------- 07484 * 2000 | 62.5dps | 1LSB 07485 * 1000 | 31.25dps | 1LSB 07486 * 500 | 15.625dps | 1LSB 07487 * 125 | 7.8125dps | 1LSB 07488 * 07489 */ 07490 BNO055_RETURN_FUNCTION_TYPE bno055_get_gyro_highrate_x_thres( 07491 u8 *gyro_highrate_x_thres_u8); 07492 /*! 07493 * @brief This API used to write gyro highrate x threshold 07494 * from page one register from 0x18 bit 0 to 4 07495 * 07496 * @param gyro_highrate_x_thres_u8 : The value of gyro x highrate threshold 07497 * 07498 * @return results of bus communication function 07499 * @retval 0 -> BNO055_SUCCESS 07500 * @retval 1 -> BNO055_ERROR 07501 * 07502 * @note Gyro highrate threshold dependent on the 07503 * selection of gyro range 07504 * 07505 * gyro_range_u8 | threshold | LSB 07506 * ----------------- | ------------- | --------- 07507 * 2000 | 62.5dps | 1LSB 07508 * 1000 | 31.25dps | 1LSB 07509 * 500 | 15.625dps | 1LSB 07510 * 125 | 7.8125dps | 1LSB 07511 * 07512 */ 07513 BNO055_RETURN_FUNCTION_TYPE bno055_set_gyro_highrate_x_thres( 07514 u8 gyro_highrate_x_thres_u8); 07515 /**************************************************************/ 07516 /**\name FUNCTIONS FOR GYRO HIGHRATE X HYSTERESIS */ 07517 /**************************************************************/ 07518 /*! 07519 * @brief This API used to read gyro highrate x hysteresis 07520 * from page one register from 0x18 bit 5 to 6 07521 * 07522 * @param gyro_highrate_x_hyst_u8 : The value of gyro highrate x hysteresis 07523 * 07524 * @return results of bus communication function 07525 * @retval 0 -> BNO055_SUCCESS 07526 * @retval 1 -> BNO055_ERROR 07527 * 07528 * @note Gyro high rate hysteresis calculated by 07529 * 07530 * using this (255 + 256 * gyro_highrate_x_hyst_u8) *4 LSB 07531 * 07532 * The high rate value scales with the range setting 07533 * 07534 * gyro_range_u8 | hysteresis | LSB 07535 * ----------------- | ------------- | --------- 07536 * 2000 | 62.26dps | 1LSB 07537 * 1000 | 31.13dps | 1LSB 07538 * 500 | 15.56dps | 1LSB 07539 * 07540 */ 07541 BNO055_RETURN_FUNCTION_TYPE bno055_get_gyro_highrate_x_hyst( 07542 u8 *gyro_highrate_x_hyst_u8); 07543 /*! 07544 * @brief This API used to write gyro highrate x hysteresis 07545 * from page one register from 0x18 bit 5 to 6 07546 * 07547 * @param gyro_highrate_x_hyst_u8 : The value of gyro highrate x hysteresis 07548 * 07549 * @return results of bus communication function 07550 * @retval 0 -> BNO055_SUCCESS 07551 * @retval 1 -> BNO055_ERROR 07552 * 07553 * @note Gyro high rate hysteresis calculated by 07554 * 07555 * using this (255 + 256 * gyro_highrate_x_hyst_u8) *4 LSB 07556 * 07557 * The high rate value scales with the range setting 07558 * 07559 * gyro_range_u8 | hysteresis | LSB 07560 * ----------------- | ------------- | --------- 07561 * 2000 | 62.26dps | 1LSB 07562 * 1000 | 31.13dps | 1LSB 07563 * 500 | 15.56dps | 1LSB 07564 * 07565 */ 07566 BNO055_RETURN_FUNCTION_TYPE bno055_set_gyro_highrate_x_hyst( 07567 u8 gyro_highrate_x_hyst_u8); 07568 /**************************************************************/ 07569 /**\name FUNCTIONS FOR GYRO HIGHRATE X DURATION */ 07570 /**************************************************************/ 07571 /*! 07572 * @brief This API used to read gyro highrate x duration 07573 * from page one register from 0x19 bit 0 to 7 07574 * 07575 * @param gyro_highrate_x_durn_u8 : The value of gyro highrate x duration 07576 * 07577 * @return results of bus communication function 07578 * @retval 0 -> BNO055_SUCCESS 07579 * @retval 1 -> BNO055_ERROR 07580 * 07581 * @note Gyro highrate duration calculate by using the formula 07582 * 07583 * (1 + gyro_highrate_x_durn_u8)*2.5ms 07584 * 07585 */ 07586 BNO055_RETURN_FUNCTION_TYPE bno055_get_gyro_highrate_x_durn( 07587 u8 *gyro_highrate_x_durn_u8); 07588 /*! 07589 * @brief This API used to write gyro highrate x duration 07590 * from page one register from 0x19 bit 0 to 7 07591 * 07592 * @param gyro_highrate_x_durn_u8 : The value of gyro highrate x duration 07593 * 07594 * @return results of bus communication function 07595 * @retval 0 -> BNO055_SUCCESS 07596 * @retval 1 -> BNO055_ERROR 07597 * 07598 * @note Gyro highrate duration calculate by using the formula 07599 * 07600 * (1 + gyro_highrate_x_durn_u8)*2.5ms 07601 */ 07602 BNO055_RETURN_FUNCTION_TYPE bno055_set_gyro_highrate_x_durn( 07603 u8 gyro_highrate_x_durn_u8); 07604 /**************************************************************/ 07605 /**\name FUNCTIONS FOR GYRO HIGHRATE Y THRESHOLD */ 07606 /**************************************************************/ 07607 /*! 07608 * @brief This API used to read gyro highrate y threshold 07609 * from page one register from 0x1A bit 0 to 4 07610 * 07611 * @param gyro_highrate_y_thres_u8 : The value of gyro highrate y threshold 07612 * 07613 * @return results of bus communication function 07614 * @retval 0 -> BNO055_SUCCESS 07615 * @retval 1 -> BNO055_ERROR 07616 * 07617 * @note Gyro highrate threshold dependent on the 07618 * selection of gyro range 07619 * 07620 * gyro_range_u8 | threshold | LSB 07621 * ----------------- | ------------- | --------- 07622 * 2000 | 62.5dps | 1LSB 07623 * 1000 | 31.25dps | 1LSB 07624 * 500 | 15.625dps | 1LSB 07625 * 125 | 7.8125dps | 1LSB 07626 * 07627 */ 07628 BNO055_RETURN_FUNCTION_TYPE bno055_get_gyro_highrate_y_thres( 07629 u8 *gyro_highrate_y_thres_u8); 07630 /*! 07631 * @brief This API used to write gyro highrate y threshold 07632 * from page one register from 0x1A bit 0 to 4 07633 * 07634 * @param gyro_highrate_y_thres_u8 : The value of gyro highrate y threshold 07635 * 07636 * @return results of bus communication function 07637 * @retval 0 -> BNO055_SUCCESS 07638 * @retval 1 -> BNO055_ERROR 07639 * 07640 * @note Gyro highrate threshold dependent on the 07641 * selection of gyro range 07642 * 07643 * gyro_range_u8 | threshold | LSB 07644 * ----------------- | ------------- | --------- 07645 * 2000 | 62.5dps | 1LSB 07646 * 1000 | 31.25dps | 1LSB 07647 * 500 | 15.625dps | 1LSB 07648 * 125 | 7.8125dps | 1LSB 07649 * 07650 */ 07651 BNO055_RETURN_FUNCTION_TYPE bno055_set_gyro_highrate_y_thres( 07652 u8 gyro_highrate_y_thres_u8); 07653 /**************************************************************/ 07654 /**\name FUNCTIONS FOR GYRO HIGHRATE Y HYSTERESIS */ 07655 /**************************************************************/ 07656 /*! 07657 * @brief This API used to read gyro highrate y hysteresis 07658 * from page one register from 0x1A bit 5 to 6 07659 * 07660 * @param gyro_highrate_y_hyst_u8 : The value of gyro highrate y hysteresis 07661 * 07662 * @return results of bus communication function 07663 * @retval 0 -> BNO055_SUCCESS 07664 * @retval 1 -> BNO055_ERROR 07665 * 07666 * @note Gyro high rate hysteresis calculated by 07667 * 07668 * using this (255 + 256 * gyro_highrate_y_hyst_u8) *4 LSB 07669 * 07670 * The high rate value scales with the range setting 07671 * 07672 * gyro_range_u8 | hysteresis | LSB 07673 * ----------------- | ------------- | --------- 07674 * 2000 | 62.26dps | 1LSB 07675 * 1000 | 31.13dps | 1LSB 07676 * 500 | 15.56dps | 1LSB 07677 */ 07678 BNO055_RETURN_FUNCTION_TYPE bno055_get_gyro_highrate_y_hyst( 07679 u8 *gyro_highrate_y_hyst_u8); 07680 /*! 07681 * @brief This API used to write gyro highrate y hysteresis 07682 * from page one register from 0x1A bit 5 to 6 07683 * 07684 * @param gyro_highrate_y_hyst_u8 : The value of gyro highrate y hysteresis 07685 * 07686 * @return results of bus communication function 07687 * @retval 0 -> BNO055_SUCCESS 07688 * @retval 1 -> BNO055_ERROR 07689 * 07690 * @note Gyro high rate hysteresis calculated by 07691 * 07692 * using this (255 + 256 * gyro_highrate_y_hyst_u8) *4 LSB 07693 * 07694 * The high rate value scales with the range setting 07695 * 07696 * gyro_range_u8 | hysteresis | LSB 07697 * ----------------- | ------------- | --------- 07698 * 2000 | 62.26dps | 1LSB 07699 * 1000 | 31.13dps | 1LSB 07700 * 500 | 15.56dps | 1LSB 07701 */ 07702 BNO055_RETURN_FUNCTION_TYPE bno055_set_gyro_highrate_y_hyst( 07703 u8 gyro_highrate_y_hyst_u8); 07704 /**************************************************************/ 07705 /**\name FUNCTIONS FOR GYRO HIGHRATE Y DURATION */ 07706 /**************************************************************/ 07707 /*! 07708 * @brief This API used to read gyro highrate y duration 07709 * from page one register from 0x1B bit 0 to 7 07710 * 07711 * @param gyro_highrate_y_durn_u8 : The value of gyro highrate y duration 07712 * 07713 * @return results of bus communication function 07714 * @retval 0 -> BNO055_SUCCESS 07715 * @retval 1 -> BNO055_ERROR 07716 * 07717 * @note Gyro highrate duration calculate by using the formula 07718 * 07719 * (1 + gyro_highrate_y_durn_u8)*2.5ms 07720 */ 07721 BNO055_RETURN_FUNCTION_TYPE bno055_get_gyro_highrate_y_durn( 07722 u8 *gyro_highrate_y_durn_u8); 07723 /*! 07724 * @brief This API used to write gyro highrate y duration 07725 * from page one register from 0x1B bit 0 to 7 07726 * 07727 * @param gyro_highrate_y_durn_u8 : The value of gyro highrate y duration 07728 * 07729 * @return results of bus communication function 07730 * @retval 0 -> BNO055_SUCCESS 07731 * @retval 1 -> BNO055_ERROR 07732 * 07733 * @note Gyro highrate duration calculate by using the formula 07734 * 07735 * (1 + gyro_highrate_y_durn_u8)*2.5ms 07736 */ 07737 BNO055_RETURN_FUNCTION_TYPE bno055_set_gyro_highrate_y_durn( 07738 u8 gyro_highrate_y_durn_u8); 07739 /**************************************************************/ 07740 /**\name FUNCTIONS FOR GYRO HIGHRATE Z THRESHOLD */ 07741 /**************************************************************/ 07742 /*! 07743 * @brief This API used to read gyro highrate z threshold 07744 * from page one register from 0x1C bit 0 to 4 07745 * 07746 * @param gyro_highrate_z_thres_u8 : The value of gyro highrate z threshold 07747 * 07748 * @return results of bus communication function 07749 * @retval 0 -> BNO055_SUCCESS 07750 * @retval 1 -> BNO055_ERROR 07751 * 07752 * @note Gyro highrate threshold dependent on the 07753 * selection of gyro range 07754 * 07755 * gyro_range_u8 | threshold | LSB 07756 * ----------------- | ------------- | --------- 07757 * 2000 | 62.5dps | 1LSB 07758 * 1000 | 31.25dps | 1LSB 07759 * 500 | 15.625dps | 1LSB 07760 * 125 | 7.8125dps | 1LSB 07761 * 07762 */ 07763 BNO055_RETURN_FUNCTION_TYPE bno055_get_gyro_highrate_z_thres( 07764 u8 *gyro_highrate_z_thres_u8); 07765 /*! 07766 * @brief This API used to write gyro highrate z threshold 07767 * from page one register from 0x1C bit 0 to 4 07768 * 07769 * @param gyro_highrate_z_thres_u8 : The value of gyro highrate z threshold 07770 * 07771 * @return results of bus communication function 07772 * @retval 0 -> BNO055_SUCCESS 07773 * @retval 1 -> BNO055_ERROR 07774 * 07775 * @note Gyro highrate threshold dependent on the 07776 * selection of gyro range 07777 * 07778 * gyro_range_u8 | threshold | LSB 07779 * ----------------- | ------------- | --------- 07780 * 2000 | 62.5dps | 1LSB 07781 * 1000 | 31.25dps | 1LSB 07782 * 500 | 15.625dps | 1LSB 07783 * 125 | 7.8125dps | 1LSB 07784 * 07785 */ 07786 BNO055_RETURN_FUNCTION_TYPE bno055_set_gyro_highrate_z_thres( 07787 u8 gyro_highrate_z_thres_u8); 07788 /**************************************************************/ 07789 /**\name FUNCTIONS FOR GYRO HIGHRATE Z HYSTERESIS */ 07790 /**************************************************************/ 07791 /*! 07792 * @brief This API used to read gyro highrate z hysteresis 07793 * from page one register from 0x1C bit 5 to 6 07794 * 07795 * @param gyro_highrate_z_hyst_u8 : The value of gyro highrate z hysteresis 07796 * 07797 * @return results of bus communication function 07798 * @retval 0 -> BNO055_SUCCESS 07799 * @retval 1 -> BNO055_ERROR 07800 * 07801 * @note Gyro high rate hysteresis calculated by 07802 * 07803 * using this (255 + 256 * gyro_highrate_z_hyst_u8) *4 LSB 07804 * 07805 * The high rate value scales with the range setting 07806 * 07807 * gyro_range_u8 | hysteresis | LSB 07808 * ----------------- | ------------- | --------- 07809 * 2000 | 62.26dps | 1LSB 07810 * 1000 | 31.13dps | 1LSB 07811 * 500 | 15.56dps | 1LSB 07812 */ 07813 BNO055_RETURN_FUNCTION_TYPE bno055_get_gyro_highrate_z_hyst( 07814 u8 *gyro_highrate_z_hyst_u8); 07815 /*! 07816 * @brief This API used to write gyro highrate z hysteresis 07817 * from page one register from 0x1C bit 5 to 6 07818 * 07819 * @param gyro_highrate_z_hyst_u8 : The value of gyro highrate z hysteresis 07820 * 07821 * @return results of bus communication function 07822 * @retval 0 -> BNO055_SUCCESS 07823 * @retval 1 -> BNO055_ERROR 07824 * 07825 * @note Gyro high rate hysteresis calculated by 07826 * 07827 * using this (255 + 256 * gyro_highrate_z_hyst_u8) *4 LSB 07828 * 07829 * The high rate value scales with the range setting 07830 * 07831 * gyro_range_u8 | hysteresis | LSB 07832 * ----------------- | ------------- | --------- 07833 * 2000 | 62.26dps | 1LSB 07834 * 1000 | 31.13dps | 1LSB 07835 * 500 | 15.56dps | 1LSB 07836 */ 07837 BNO055_RETURN_FUNCTION_TYPE bno055_set_gyro_highrate_z_hyst( 07838 u8 gyro_highrate_z_hyst_u8); 07839 /**************************************************************/ 07840 /**\name FUNCTIONS FOR GYRO HIGHRATE Z DURATION */ 07841 /**************************************************************/ 07842 /*! 07843 * @brief This API used to read gyro highrate z duration 07844 * from page one register from 0x1D bit 0 to 7 07845 * 07846 * @param gyro_highrate_z_durn_u8 : The value of gyro highrate z duration 07847 * 07848 * @return results of bus communication function 07849 * @retval 0 -> BNO055_SUCCESS 07850 * @retval 1 -> BNO055_ERROR 07851 * 07852 * @note Gyro highrate duration calculate by using the formula 07853 * 07854 * (1 + gyro_highrate_z_durn_u8)*2.5ms 07855 */ 07856 BNO055_RETURN_FUNCTION_TYPE bno055_get_gyro_highrate_z_durn( 07857 u8 *gyro_highrate_z_durn_u8); 07858 /*! 07859 * @brief This API used to write gyro highrate z duration 07860 * from page one register from 0x1D bit 0 to 7 07861 * 07862 * @param gyro_highrate_z_durn_u8 : The value of gyro highrate z duration 07863 * 07864 * @return results of bus communication function 07865 * @retval 0 -> BNO055_SUCCESS 07866 * @retval 1 -> BNO055_ERROR 07867 * 07868 * @note Gyro highrate duration calculate by using the formula 07869 * 07870 * (1 + gyro_highrate_z_durn_u8)*2.5ms 07871 */ 07872 BNO055_RETURN_FUNCTION_TYPE bno055_set_gyro_highrate_z_durn( 07873 u8 gyro_highrate_z_durn_u8); 07874 /**************************************************************/ 07875 /**\name FUNCTIONS FOR GYRO ANY_MOTION THRESHOLD */ 07876 /**************************************************************/ 07877 /*! 07878 * @brief This API used to read gyro anymotion threshold 07879 * from page one register from 0x1E bit 0 to 6 07880 * 07881 * @param gyro_any_motion_thres_u8 : The value of gyro anymotion threshold 07882 * 07883 * @return results of bus communication function 07884 * @retval 0 -> BNO055_SUCCESS 07885 * @retval 1 -> BNO055_ERROR 07886 * 07887 * @note Gyro anymotion interrupt threshold dependent 07888 * on the selection of gyro range 07889 * 07890 * gyro_range_u8 | threshold | LSB 07891 * ----------------- | ------------- | --------- 07892 * 2000 | 1dps | 1LSB 07893 * 1000 | 0.5dps | 1LSB 07894 * 500 | 0.25dps | 1LSB 07895 * 07896 */ 07897 BNO055_RETURN_FUNCTION_TYPE bno055_get_gyro_any_motion_thres( 07898 u8 *gyro_any_motion_thres_u8); 07899 /*! 07900 * @brief This API used to write gyro anymotion threshold 07901 * from page one register from 0x1E bit 0 to 6 07902 * 07903 * @param gyro_any_motion_thres_u8 : The value of gyro anymotion threshold 07904 * 07905 * @return results of bus communication function 07906 * @retval 0 -> BNO055_SUCCESS 07907 * @retval 1 -> BNO055_ERROR 07908 * 07909 * @note Gyro anymotion interrupt threshold dependent 07910 * on the selection of gyro range 07911 * 07912 * gyro_range_u8 | threshold | LSB 07913 * ----------------- | ------------- | --------- 07914 * 2000 | 1dps | 1LSB 07915 * 1000 | 0.5dps | 1LSB 07916 * 500 | 0.25dps | 1LSB 07917 * 07918 */ 07919 BNO055_RETURN_FUNCTION_TYPE bno055_set_gyro_any_motion_thres( 07920 u8 gyro_any_motion_thres_u8); 07921 /**************************************************************/ 07922 /**\name FUNCTIONS FOR GYRO ANY_MOTION SLOPE SAMPLES */ 07923 /**************************************************************/ 07924 /*! 07925 * @brief This API used to read gyro anymotion slope samples 07926 * from page one register from 0x1F bit 0 to 1 07927 * 07928 * @param gyro_any_motion_slope_samples_u8 : 07929 * The value of gyro anymotion slope samples 07930 * gyro_any_motion_slope_samples_u8 | result 07931 * ---------------------------------- | ----------- 07932 * 0 | 8 samples 07933 * 1 | 16 samples 07934 * 2 | 32 samples 07935 * 3 | 64 samples 07936 * 07937 * @return results of bus communication function 07938 * @retval 0 -> BNO055_SUCCESS 07939 * @retval 1 -> BNO055_ERROR 07940 * 07941 */ 07942 BNO055_RETURN_FUNCTION_TYPE bno055_get_gyro_any_motion_slope_samples( 07943 u8 *gyro_any_motion_slope_samples_u8); 07944 /*! 07945 * @brief This API used to write gyro anymotion slope samples 07946 * from page one register from 0x1F bit 0 to 1 07947 * 07948 * @param gyro_any_motion_slope_samples_u8 : 07949 * The value of gyro anymotion slope samples 07950 * gyro_any_motion_slope_samples_u8 | result 07951 * ---------------------------------- | ----------- 07952 * 0 | 8 samples 07953 * 1 | 16 samples 07954 * 2 | 32 samples 07955 * 3 | 64 samples 07956 * 07957 * @return results of bus communication function 07958 * @retval 0 -> BNO055_SUCCESS 07959 * @retval 1 -> BNO055_ERROR 07960 * 07961 */ 07962 BNO055_RETURN_FUNCTION_TYPE bno055_set_gyro_any_motion_slope_samples( 07963 u8 gyro_any_motion_slope_samples_u8); 07964 /**************************************************************/ 07965 /**\name FUNCTIONS FOR GYRO ANY_MOTION AWAKE DURATION */ 07966 /**************************************************************/ 07967 /*! 07968 * @brief This API used to read gyro anymotion awake duration 07969 * from page one register from 0x1F bit 2 to 3 07970 * 07971 * @param gyro_awake_durn_u8 : The value of gyro anymotion awake duration 07972 * 07973 * @return results of bus communication function 07974 * @retval 0 -> BNO055_SUCCESS 07975 * @retval 1 -> BNO055_ERROR 07976 * 07977 */ 07978 BNO055_RETURN_FUNCTION_TYPE bno055_get_gyro_any_motion_awake_durn( 07979 u8 *gyro_awake_durn_u8); 07980 /*! 07981 * @brief This API used to write gyro anymotion awake duration 07982 * from page one register from 0x1F bit 2 to 3 07983 * 07984 * @param gyro_awake_durn_u8 : The value of gyro anymotion awake duration 07985 * 07986 * @return results of bus communication function 07987 * @retval 0 -> BNO055_SUCCESS 07988 * @retval 1 -> BNO055_ERROR 07989 * 07990 */ 07991 BNO055_RETURN_FUNCTION_TYPE bno055_set_gyro_any_motion_awake_durn( 07992 u8 gyro_awake_durn_u8); 07993 #endif
Generated on Fri Jul 15 2022 23:17:15 by
1.7.2