\hypertarget{inv__mpu_8c_source}{}\doxysection{inv\+\_\+mpu.\+c} \label{inv__mpu_8c_source}\index{D:/gitt/MicrochipFor32/bscpp\_Device/bscpp\_MPU6050/inv\_mpu.c@{D:/gitt/MicrochipFor32/bscpp\_Device/bscpp\_MPU6050/inv\_mpu.c}} \mbox{\hyperlink{inv__mpu_8c}{浏览该文件的文档.}} \begin{DoxyCode}{0} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00001}00001 \textcolor{comment}{/*}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00002}00002 \textcolor{comment}{ \$License:}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00003}00003 \textcolor{comment}{ Copyright (C) 2011-\/2012 InvenSense Corporation, All Rights Reserved.}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00004}00004 \textcolor{comment}{ See included License.txt for License information.}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00005}00005 \textcolor{comment}{ \$}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00006}00006 \textcolor{comment}{ */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00020}00020 \textcolor{preprocessor}{\#include }} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00021}00021 \textcolor{preprocessor}{\#include }} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00022}00022 \textcolor{preprocessor}{\#include }} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00023}00023 \textcolor{preprocessor}{\#include }} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00024}00024 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{inv__mpu_8h}{inv\_mpu.h}}"{}}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00025}00025 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{inv__mpu__dmp__motion__driver_8h}{inv\_mpu\_dmp\_motion\_driver.h}}"{}}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00026}00026 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{mpu6050_8h}{mpu6050.h}}"{}}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00027}00027 \textcolor{preprocessor}{\#include "{}usart.h"{}}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00028}00028 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{varint_8h}{varint.h}}"{}}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00029}00029 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00030}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6d132f914f18cb144a0eaf36312045c8}{00030}} \textcolor{preprocessor}{\#define MPU6050 }\textcolor{comment}{//定义我们使用的传感器为MPU6050}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00031}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf5aa4c072d42b67d74043f642b68ddd7}{00031}} \textcolor{preprocessor}{\#define MOTION\_DRIVER\_TARGET\_MSP430 }\textcolor{comment}{//定义驱动部分,采用MSP430的驱动(移植到STM32F1)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00032}00032 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00033}00033 \textcolor{comment}{/* The following functions must be defined for this platform:}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00034}00034 \textcolor{comment}{ * i2c\_write(unsigned char slave\_addr, unsigned char reg\_addr,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00035}00035 \textcolor{comment}{ * unsigned char length, unsigned char const *data)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00036}00036 \textcolor{comment}{ * i2c\_read(unsigned char slave\_addr, unsigned char reg\_addr,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00037}00037 \textcolor{comment}{ * unsigned char length, unsigned char *data)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00038}00038 \textcolor{comment}{ * delay\_ms(unsigned long num\_ms)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00039}00039 \textcolor{comment}{ * get\_ms(unsigned long *count)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00040}00040 \textcolor{comment}{ * reg\_int\_cb(void (*cb)(void), unsigned char port, unsigned char pin)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00041}00041 \textcolor{comment}{ * labs(long x)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00042}00042 \textcolor{comment}{ * fabsf(float x)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00043}00043 \textcolor{comment}{ * min(int a, int b)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00044}00044 \textcolor{comment}{ */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00045}00045 \textcolor{preprocessor}{\#if defined MOTION\_DRIVER\_TARGET\_MSP430}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00046}00046 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00047}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{00047}} \textcolor{preprocessor}{\#define i2c\_write MPU\_Write\_Len}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00048}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga838d8f1c7b0d8cc83923b93bbafe1b33}{00048}} \textcolor{preprocessor}{\#define i2c\_read MPU\_Read\_Len}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00049}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gae36aca5baf9b6b7d74992aef00686d67}{00049}} \textcolor{preprocessor}{\#define delay\_ms HAL\_Delay}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00050}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3e6b6bc6d1cd2956353a31bfadd3c332}{00050}} \textcolor{preprocessor}{\#define get\_ms mget\_ms}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00051}00051 \textcolor{comment}{//static inline int reg\_int\_cb(struct int\_param\_s *int\_param)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00052}00052 \textcolor{comment}{//\{}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00053}00053 \textcolor{comment}{// return msp430\_reg\_int\_cb(int\_param-\/>cb, int\_param-\/>pin, int\_param-\/>lp\_exit,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00054}00054 \textcolor{comment}{// int\_param-\/>active\_low);}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00055}00055 \textcolor{comment}{//\}}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00056}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga69f90a1116c37ff659a096f2932c3988}{00056}} \textcolor{keywordtype}{void} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga69f90a1116c37ff659a096f2932c3988}{log\_none}}(\textcolor{keywordtype}{char} *fmt,...)\{;\}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00057}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2905fba7885cd95057e1655cb4d16bda}{00057}} \textcolor{preprocessor}{\#define log\_i log\_none }\textcolor{comment}{//打印信息}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00058}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab354affc295f7d61fe8a355c9361cc5a}{00058}} \textcolor{preprocessor}{\#define log\_e log\_none }\textcolor{comment}{//打印信息}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00059}00059 \textcolor{comment}{/* labs is already defined by TI's toolchain. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00060}00060 \textcolor{comment}{/* fabs is for doubles. fabsf is for floats. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00061}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga95bcc5f260df5ce993730008a1dcb45a}{00061}} \textcolor{preprocessor}{\#define fabs fabsf}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00062}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac6afabdc09a49a433ee19d8a9486056d}{00062}} \textcolor{preprocessor}{\#define min(a,b) ((a\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga97093754f1f13b06492990e3da77965d}{cb}}, int\_param-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5c682e1b664acf566f985b48dd7acbb7}{pin}}, int\_param-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga46dfad5a278a8b40a68d71beca0d2be4}{lp\_exit}},} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00076}00076 int\_param-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga9b859a3332d9bd9287d5766494f261fb}{active\_low}});} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00077}00077 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00078}00078 \textcolor{preprocessor}{\#define log\_i MPL\_LOGI}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00079}00079 \textcolor{preprocessor}{\#define log\_e MPL\_LOGE}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00080}00080 \textcolor{comment}{/* labs is already defined by TI's toolchain. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00081}00081 \textcolor{comment}{/* fabs is for doubles. fabsf is for floats. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00082}00082 \textcolor{preprocessor}{\#define fabs fabsf}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00083}00083 \textcolor{preprocessor}{\#define min(a,b) ((a\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5c682e1b664acf566f985b48dd7acbb7}{pin}}, int\_param-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga97093754f1f13b06492990e3da77965d}{cb}}, int\_param-\/>arg);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00101}00101 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00102}00102 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00103}00103 \textcolor{preprocessor}{\#define log\_i MPL\_LOGI}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00104}00104 \textcolor{preprocessor}{\#define log\_e MPL\_LOGE}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00105}00105 \textcolor{comment}{/* UC3 is a 32-\/bit processor, so abs and labs are equivalent. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00106}00106 \textcolor{preprocessor}{\#define labs abs}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00107}00107 \textcolor{preprocessor}{\#define fabs(x) (((x)>0)?(x):-\/(x))}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00108}00108 \textcolor{preprocessor}{\#else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00109}00109 \textcolor{preprocessor}{\#error Gyro driver is missing the system layer implementations.}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00110}00110 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00111}00111 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00112}00112 \textcolor{preprocessor}{\#if !defined MPU6050 \&\& !defined MPU9150 \&\& !defined MPU6500 \&\& !defined MPU9250}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00113}00113 \textcolor{preprocessor}{\#error Which gyro are you using? Define MPUxxxx in your compiler options.}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00114}00114 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00115}00115 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00116}00116 \textcolor{comment}{/* Time for some messy macro work. =]}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00117}00117 \textcolor{comment}{ * \#define MPU9150}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00118}00118 \textcolor{comment}{ * is equivalent to..}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00119}00119 \textcolor{comment}{ * \#define MPU6050}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00120}00120 \textcolor{comment}{ * \#define AK8975\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00121}00121 \textcolor{comment}{ *}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00122}00122 \textcolor{comment}{ * \#define MPU9250}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00123}00123 \textcolor{comment}{ * is equivalent to..}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00124}00124 \textcolor{comment}{ * \#define MPU6500}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00125}00125 \textcolor{comment}{ * \#define AK8963\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00126}00126 \textcolor{comment}{ */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00127}00127 \textcolor{preprocessor}{\#if defined MPU9150}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00128}00128 \textcolor{preprocessor}{\#ifndef MPU6050}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00129}00129 \textcolor{preprocessor}{\#define MPU6050}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00130}00130 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \#ifndef MPU6050 */}\textcolor{preprocessor}{}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00131}00131 \textcolor{preprocessor}{\#if defined AK8963\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00132}00132 \textcolor{preprocessor}{\#error "{}MPU9150 and AK8963\_SECONDARY cannot both be defined."{}}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00133}00133 \textcolor{preprocessor}{\#elif !defined AK8975\_SECONDARY }\textcolor{comment}{/* \#if defined AK8963\_SECONDARY */}\textcolor{preprocessor}{}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00134}00134 \textcolor{preprocessor}{\#define AK8975\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00135}00135 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \#if defined AK8963\_SECONDARY */}\textcolor{preprocessor}{}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00136}00136 \textcolor{preprocessor}{\#elif defined MPU9250 }\textcolor{comment}{/* \#if defined MPU9150 */}\textcolor{preprocessor}{}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00137}00137 \textcolor{preprocessor}{\#ifndef MPU6500}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00138}00138 \textcolor{preprocessor}{\#define MPU6500}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00139}00139 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \#ifndef MPU6500 */}\textcolor{preprocessor}{}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00140}00140 \textcolor{preprocessor}{\#if defined AK8975\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00141}00141 \textcolor{preprocessor}{\#error "{}MPU9250 and AK8975\_SECONDARY cannot both be defined."{}}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00142}00142 \textcolor{preprocessor}{\#elif !defined AK8963\_SECONDARY }\textcolor{comment}{/* \#if defined AK8975\_SECONDARY */}\textcolor{preprocessor}{}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00143}00143 \textcolor{preprocessor}{\#define AK8963\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00144}00144 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \#if defined AK8975\_SECONDARY */}\textcolor{preprocessor}{}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00145}00145 \textcolor{preprocessor}{\#endif }\textcolor{comment}{/* \#if defined MPU9150 */}\textcolor{preprocessor}{}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00146}00146 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00147}00147 \textcolor{preprocessor}{\#if defined AK8975\_SECONDARY || defined AK8963\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00148}00148 \textcolor{preprocessor}{\#define AK89xx\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00149}00149 \textcolor{preprocessor}{\#else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00150}00150 \textcolor{comment}{/* \#warning "{}No compass = less profit for Invensense. Lame."{} */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00151}00151 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00152}00152 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00153}00153 \textcolor{keyword}{static} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gafd5ebff6b0179e1dce0b68c2272cae07}{set\_int\_enable}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} enable);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00154}00154 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00155}00155 \textcolor{comment}{/* Hardware registers needed by driver. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00156}\mbox{\hyperlink{structgyro__reg__s}{00156}} \textcolor{keyword}{struct }\mbox{\hyperlink{structgyro__reg__s}{gyro\_reg\_s}} \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00157}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga51068a36efe9d2aedc9cb8fffacbf15b}{00157}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga51068a36efe9d2aedc9cb8fffacbf15b}{who\_am\_i}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00158}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga27dd9db31f16ca170520b3009255e6d0}{00158}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga27dd9db31f16ca170520b3009255e6d0}{rate\_div}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00159}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga22eeac0bd77e7d99b3e15dda52f1bd08}{00159}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga22eeac0bd77e7d99b3e15dda52f1bd08}{lpf}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00160}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf418d8a6b0e262df54ab8a6a5228011c}{00160}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf418d8a6b0e262df54ab8a6a5228011c}{prod\_id}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00161}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga12505a7d8cd7c976e5571f27a6160d23}{00161}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga12505a7d8cd7c976e5571f27a6160d23}{user\_ctrl}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00162}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6a392b7ecae843c734db3d832f11af49}{00162}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6a392b7ecae843c734db3d832f11af49}{fifo\_en}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00163}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gada0b973f74cc874552f079fd58c435a6}{00163}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gada0b973f74cc874552f079fd58c435a6}{gyro\_cfg}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00164}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gae93a446c54cc00bc7f11209d7af0025e}{00164}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gae93a446c54cc00bc7f11209d7af0025e}{accel\_cfg}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00165}00165 \textcolor{comment}{// unsigned char accel\_cfg2;}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00166}00166 \textcolor{comment}{// unsigned char lp\_accel\_odr;}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00167}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab2065a062ea7d6179cd8407b2ab4d146}{00167}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gab2065a062ea7d6179cd8407b2ab4d146}{motion\_thr}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00168}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga57d7f3d79c8227e1795764222e2a4a6e}{00168}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga57d7f3d79c8227e1795764222e2a4a6e}{motion\_dur}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00169}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab7503974d62cf9c2d688579fcd1abd48}{00169}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gab7503974d62cf9c2d688579fcd1abd48}{fifo\_count\_h}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00170}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb6763dc5f368ea01ef7c733cea9dab4}{00170}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb6763dc5f368ea01ef7c733cea9dab4}{fifo\_r\_w}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00171}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab5c2246c44bb36b21596fe5acf7ec0d4}{00171}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gab5c2246c44bb36b21596fe5acf7ec0d4}{raw\_gyro}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00172}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga9b7c162cea6a3deeaac41444c613b7bc}{00172}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga9b7c162cea6a3deeaac41444c613b7bc}{raw\_accel}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00173}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga47674fab0681811c1b733462944e0233}{00173}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga47674fab0681811c1b733462944e0233}{temp}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00174}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga48b47844d4b0570e60aa6806faa59eae}{00174}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga48b47844d4b0570e60aa6806faa59eae}{int\_enable}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00175}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaea6ad456241786750b3f211bc92032eb}{00175}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaea6ad456241786750b3f211bc92032eb}{dmp\_int\_status}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00176}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga837724080c34ff5a190751427febaf91}{00176}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga837724080c34ff5a190751427febaf91}{int\_status}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00177}00177 \textcolor{comment}{// unsigned char accel\_intel;}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00178}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa01fb0872030e8e2932f8d1d257ea86a}{00178}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa01fb0872030e8e2932f8d1d257ea86a}{pwr\_mgmt\_1}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00179}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3e378b0c77e9529ee93ac6eba11e1031}{00179}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3e378b0c77e9529ee93ac6eba11e1031}{pwr\_mgmt\_2}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00180}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaae7bdbff2a1029245890b555b2d8d519}{00180}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaae7bdbff2a1029245890b555b2d8d519}{int\_pin\_cfg}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00181}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gae17166b43fa12a960c0eced9a3c04bf0}{00181}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gae17166b43fa12a960c0eced9a3c04bf0}{mem\_r\_w}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00182}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab745dd73e0c3ef01f30f96444358cb89}{00182}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gab745dd73e0c3ef01f30f96444358cb89}{accel\_offs}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00183}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2bf6dc826bcb17168013f303c904544b}{00183}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2bf6dc826bcb17168013f303c904544b}{i2c\_mst}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00184}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf1b74c33fa828ea4dc172bfbaaf47216}{00184}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf1b74c33fa828ea4dc172bfbaaf47216}{bank\_sel}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00185}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga7cf5696d5640d63b078f9c5ed9aceda8}{00185}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga7cf5696d5640d63b078f9c5ed9aceda8}{mem\_start\_addr}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00186}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaac4aac12b0e82272affd408b24dc9c95}{00186}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaac4aac12b0e82272affd408b24dc9c95}{prgm\_start\_h}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00187}00187 \textcolor{preprocessor}{\#if defined AK89xx\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00188}00188 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} s0\_addr;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00189}00189 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} s0\_reg;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00190}00190 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} s0\_ctrl;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00191}00191 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} s1\_addr;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00192}00192 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} s1\_reg;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00193}00193 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} s1\_ctrl;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00194}00194 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} s4\_ctrl;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00195}00195 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} s0\_do;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00196}00196 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} s1\_do;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00197}00197 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} i2c\_delay\_ctrl;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00198}00198 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} raw\_compass;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00199}00199 \textcolor{comment}{/* The I2C\_MST\_VDDIO bit is in this register. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00200}00200 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} yg\_offs\_tc;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00201}00201 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00202}00202 \};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00203}00203 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00204}00204 \textcolor{comment}{/* Information specific to a particular device. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00205}\mbox{\hyperlink{structhw__s}{00205}} \textcolor{keyword}{struct }\mbox{\hyperlink{structhw__s}{hw\_s}} \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00206}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{00206}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00207}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5f77e9f55285abb4d214b80281f69c1f}{00207}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5f77e9f55285abb4d214b80281f69c1f}{max\_fifo}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00208}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1039fa66b110194727938cd86be8c3c5}{00208}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1039fa66b110194727938cd86be8c3c5}{num\_reg}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00209}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab2397f792a86b32b0957c24e3912bc63}{00209}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gab2397f792a86b32b0957c24e3912bc63}{temp\_sens}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00210}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga56f98c91a7c4d60ccea1ade1f3e88d04}{00210}} \textcolor{keywordtype}{short} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga56f98c91a7c4d60ccea1ade1f3e88d04}{temp\_offset}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00211}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaef4a2014cd6e3d5faeb8f713ee3606ed}{00211}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaef4a2014cd6e3d5faeb8f713ee3606ed}{bank\_size}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00212}00212 \textcolor{preprocessor}{\#if defined AK89xx\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00213}00213 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} compass\_fsr;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00214}00214 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00215}00215 \};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00216}00216 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00217}00217 \textcolor{comment}{/* When entering motion interrupt mode, the driver keeps track of the}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00218}00218 \textcolor{comment}{ * previous state so that it can be restored at a later time.}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00219}00219 \textcolor{comment}{ * TODO: This is tacky. Fix it.}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00220}00220 \textcolor{comment}{ */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00221}\mbox{\hyperlink{structmotion__int__cache__s}{00221}} \textcolor{keyword}{struct }\mbox{\hyperlink{structmotion__int__cache__s}{motion\_int\_cache\_s}} \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00222}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gae9614e4c92be9fc08f2aec7f34853fbc}{00222}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gae9614e4c92be9fc08f2aec7f34853fbc}{gyro\_fsr}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00223}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacfb901facda5ef8a02d47726db98e58e}{00223}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gacfb901facda5ef8a02d47726db98e58e}{accel\_fsr}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00224}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac1a1eb41631eb71481d6d247d9c67d4a}{00224}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gac1a1eb41631eb71481d6d247d9c67d4a}{lpf}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00225}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1cf6b7edfe37a51209897ccc448ec0e6}{00225}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1cf6b7edfe37a51209897ccc448ec0e6}{sample\_rate}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00226}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gae5416a4097b0cf39460df70094bc474d}{00226}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gae5416a4097b0cf39460df70094bc474d}{sensors\_on}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00227}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga41501694a84bdf70e9c660852b653273}{00227}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga41501694a84bdf70e9c660852b653273}{fifo\_sensors}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00228}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6461e400e336d2ccbc8c7d95ace9461d}{00228}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6461e400e336d2ccbc8c7d95ace9461d}{dmp\_on}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00229}00229 \};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00230}00230 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00231}00231 \textcolor{comment}{/* Cached chip configuration data.}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00232}00232 \textcolor{comment}{ * TODO: A lot of these can be handled with a bitmask.}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00233}00233 \textcolor{comment}{ */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00234}\mbox{\hyperlink{structchip__cfg__s}{00234}} \textcolor{keyword}{struct }\mbox{\hyperlink{structchip__cfg__s}{chip\_cfg\_s}} \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00235}00235 \textcolor{comment}{/* Matches gyro\_cfg >> 3 \& 0x03 */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00236}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab45a727aeee17380828a3e20ccb375c2}{00236}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gab45a727aeee17380828a3e20ccb375c2}{gyro\_fsr}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00237}00237 \textcolor{comment}{/* Matches accel\_cfg >> 3 \& 0x03 */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00238}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf66873be1446ed552812e32d40eced61}{00238}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf66873be1446ed552812e32d40eced61}{accel\_fsr}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00239}00239 \textcolor{comment}{/* Enabled sensors. Uses same masks as fifo\_en, NOT pwr\_mgmt\_2. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00240}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa996fc14aa630e53823462baf460c13f}{00240}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa996fc14aa630e53823462baf460c13f}{sensors}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00241}00241 \textcolor{comment}{/* Matches config register. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00242}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga16ec8ca8298f62ac01419775377270fb}{00242}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga16ec8ca8298f62ac01419775377270fb}{lpf}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00243}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab7bd5165d6e62cb0d814cf3401958445}{00243}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gab7bd5165d6e62cb0d814cf3401958445}{clk\_src}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00244}00244 \textcolor{comment}{/* Sample rate, NOT rate divider. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00245}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2660470fcf7b53e2e832a397cbe6c354}{00245}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2660470fcf7b53e2e832a397cbe6c354}{sample\_rate}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00246}00246 \textcolor{comment}{/* Matches fifo\_en register. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00247}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga88143c31b894bcd819c0e49b0ff267aa}{00247}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga88143c31b894bcd819c0e49b0ff267aa}{fifo\_enable}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00248}00248 \textcolor{comment}{/* Matches int enable register. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00249}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa366c36057f31e6e0d4cf2ca4a1ef52f}{00249}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa366c36057f31e6e0d4cf2ca4a1ef52f}{int\_enable}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00250}00250 \textcolor{comment}{/* 1 if devices on auxiliary I2C bus appear on the primary. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00251}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6d3a962d6435644c7ea68e7d65934636}{00251}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6d3a962d6435644c7ea68e7d65934636}{bypass\_mode}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00252}00252 \textcolor{comment}{/* 1 if half-\/sensitivity.}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00253}00253 \textcolor{comment}{ * NOTE: This doesn't belong here, but everything else in hw\_s is const,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00254}00254 \textcolor{comment}{ * and this allows us to save some precious RAM.}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00255}00255 \textcolor{comment}{ */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00256}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab72e3cead391dee41f28e041282d743f}{00256}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gab72e3cead391dee41f28e041282d743f}{accel\_half}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00257}00257 \textcolor{comment}{/* 1 if device in low-\/power accel-\/only mode. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00258}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga33e138d8a49744eb9b4ea0e9086cef1c}{00258}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga33e138d8a49744eb9b4ea0e9086cef1c}{lp\_accel\_mode}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00259}00259 \textcolor{comment}{/* 1 if interrupts are only triggered on motion events. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00260}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga279cd5d5d78890357f2d42905d7471df}{00260}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga279cd5d5d78890357f2d42905d7471df}{int\_motion\_only}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00261}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gadf3b491a068e0225a080821516353bac}{00261}} \textcolor{keyword}{struct }\mbox{\hyperlink{structmotion__int__cache__s}{motion\_int\_cache\_s}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gadf3b491a068e0225a080821516353bac}{cache}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00262}00262 \textcolor{comment}{/* 1 for active low interrupts. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00263}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6f12e54ae8c7f2dd77954f3ab619bbb9}{00263}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6f12e54ae8c7f2dd77954f3ab619bbb9}{active\_low\_int}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00264}00264 \textcolor{comment}{/* 1 for latched interrupts. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00265}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga55ce40fc460a62829ec149edaccffe7c}{00265}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga55ce40fc460a62829ec149edaccffe7c}{latched\_int}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00266}00266 \textcolor{comment}{/* 1 if DMP is enabled. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00267}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4783ed8aa79a3b5de798963819997c38}{00267}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4783ed8aa79a3b5de798963819997c38}{dmp\_on}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00268}00268 \textcolor{comment}{/* Ensures that DMP will only be loaded once. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00269}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1d2ff55e17aae1459dfad61d76054b1b}{00269}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1d2ff55e17aae1459dfad61d76054b1b}{dmp\_loaded}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00270}00270 \textcolor{comment}{/* Sampling rate used when DMP is enabled. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00271}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5f42b7e1e740f2fb64427417e9e2dab7}{00271}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5f42b7e1e740f2fb64427417e9e2dab7}{dmp\_sample\_rate}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00272}00272 \textcolor{preprocessor}{\#ifdef AK89xx\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00273}00273 \textcolor{comment}{/* Compass sample rate. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00274}00274 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} compass\_sample\_rate;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00275}00275 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} compass\_addr;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00276}00276 \textcolor{keywordtype}{short} mag\_sens\_adj[3];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00277}00277 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00278}00278 \};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00279}00279 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00280}00280 \textcolor{comment}{/* Information for self-\/test. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00281}\mbox{\hyperlink{structtest__s}{00281}} \textcolor{keyword}{struct }\mbox{\hyperlink{structtest__s}{test\_s}} \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00282}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga330290a347407b0d92b1d77aa274993c}{00282}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{long} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga330290a347407b0d92b1d77aa274993c}{gyro\_sens}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00283}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5f602885d6a544a9039b13a0cc7ac085}{00283}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{long} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5f602885d6a544a9039b13a0cc7ac085}{accel\_sens}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00284}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3bef0c9f009cea4cbe01d0ee91126d83}{00284}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3bef0c9f009cea4cbe01d0ee91126d83}{reg\_rate\_div}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00285}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga09f5a9ab86d36f3b83e7f4abdea73e39}{00285}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga09f5a9ab86d36f3b83e7f4abdea73e39}{reg\_lpf}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00286}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa0dfe8b2c29358e9e045aaa8beff244d}{00286}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa0dfe8b2c29358e9e045aaa8beff244d}{reg\_gyro\_fsr}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00287}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3b54f67ea7f1dd47fd8aa48dda051032}{00287}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3b54f67ea7f1dd47fd8aa48dda051032}{reg\_accel\_fsr}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00288}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf5d495939c8ca761ac2bbe7791dcd727}{00288}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf5d495939c8ca761ac2bbe7791dcd727}{wait\_ms}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00289}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8af20793fdb7764bfa90f80bd74b87e7}{00289}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8af20793fdb7764bfa90f80bd74b87e7}{packet\_thresh}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00290}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gafacfcf92f07cd846fb0aaf889a30c582}{00290}} \textcolor{keywordtype}{float} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gafacfcf92f07cd846fb0aaf889a30c582}{min\_dps}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00291}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gae588d6c0105bcd8f9144f42eee6c4835}{00291}} \textcolor{keywordtype}{float} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gae588d6c0105bcd8f9144f42eee6c4835}{max\_dps}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00292}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3b47b72fbf8c152cb4389e3cd866ded9}{00292}} \textcolor{keywordtype}{float} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3b47b72fbf8c152cb4389e3cd866ded9}{max\_gyro\_var}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00293}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gae86aec181d0f1e4a29e9f9ae0735e8e1}{00293}} \textcolor{keywordtype}{float} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gae86aec181d0f1e4a29e9f9ae0735e8e1}{min\_g}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00294}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga9ebd3195ac2f460f82873b9e6c36eb2c}{00294}} \textcolor{keywordtype}{float} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga9ebd3195ac2f460f82873b9e6c36eb2c}{max\_g}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00295}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga7f6071fb91426f467d9223c712560ee6}{00295}} \textcolor{keywordtype}{float} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga7f6071fb91426f467d9223c712560ee6}{max\_accel\_var}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00296}00296 \};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00297}00297 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00298}00298 \textcolor{comment}{/* Gyro driver state variables. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00299}\mbox{\hyperlink{structgyro__state__s}{00299}} \textcolor{keyword}{struct }\mbox{\hyperlink{structgyro__state__s}{gyro\_state\_s}} \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00300}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{00300}} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structgyro__reg__s}{gyro\_reg\_s}} *\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00301}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{00301}} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structhw__s}{hw\_s}} *\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00302}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{00302}} \textcolor{keyword}{struct }\mbox{\hyperlink{structchip__cfg__s}{chip\_cfg\_s}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00303}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5a1563d12b0aab5e65317621742f6f62}{00303}} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structtest__s}{test\_s}} *\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5a1563d12b0aab5e65317621742f6f62}{test}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00304}00304 \};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00305}00305 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00306}00306 \textcolor{comment}{/* Filter configurations. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00307}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga91c762a5bd71461f7911dc49ee7696e9}{00307}} \textcolor{keyword}{enum} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga91c762a5bd71461f7911dc49ee7696e9}{lpf\_e}} \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00308}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9a9f0263fbbdccd3c5a18fcb65be278d24}{00308}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9a9f0263fbbdccd3c5a18fcb65be278d24}{INV\_FILTER\_256HZ\_NOLPF2}} = 0,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00309}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9ab58e52e0b6be4cbaf0c7f32705a9fcec}{00309}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9ab58e52e0b6be4cbaf0c7f32705a9fcec}{INV\_FILTER\_188HZ}},} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00310}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9a0f288da0c97b325a6cb57f1223f0cf98}{00310}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9a0f288da0c97b325a6cb57f1223f0cf98}{INV\_FILTER\_98HZ}},} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00311}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9a995b18a52a5bd919aa9c1411a2292110}{00311}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9a995b18a52a5bd919aa9c1411a2292110}{INV\_FILTER\_42HZ}},} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00312}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9aebecb86604e475ed8e2cb68340010ff1}{00312}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9aebecb86604e475ed8e2cb68340010ff1}{INV\_FILTER\_20HZ}},} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00313}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9a327619f406c6b2f6a221793881013508}{00313}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9a327619f406c6b2f6a221793881013508}{INV\_FILTER\_10HZ}},} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00314}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9abdaaf85666fd6a490ee01dcd8a315678}{00314}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9abdaaf85666fd6a490ee01dcd8a315678}{INV\_FILTER\_5HZ}},} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00315}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9a76de97a6c2f8eb3c5d1a73d717513f5d}{00315}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9a76de97a6c2f8eb3c5d1a73d717513f5d}{INV\_FILTER\_2100HZ\_NOLPF}},} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00316}00316 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9a053f39f04904f6103090bcba3002c4a3}{NUM\_FILTER}}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00317}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9a053f39f04904f6103090bcba3002c4a3}{00317}} \};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00318}00318 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00319}00319 \textcolor{comment}{/* Full scale ranges. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00320}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga83acdc0eb37e8bfe0c2ae2348ded0a90}{00320}} \textcolor{keyword}{enum} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga83acdc0eb37e8bfe0c2ae2348ded0a90}{gyro\_fsr\_e}} \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00321}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gga83acdc0eb37e8bfe0c2ae2348ded0a90a5b8251a49db5cb8a676076b0b308ae35}{00321}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga83acdc0eb37e8bfe0c2ae2348ded0a90a5b8251a49db5cb8a676076b0b308ae35}{INV\_FSR\_250DPS}} = 0,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00322}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gga83acdc0eb37e8bfe0c2ae2348ded0a90a50901470ff389927fd010081e2b8fd09}{00322}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga83acdc0eb37e8bfe0c2ae2348ded0a90a50901470ff389927fd010081e2b8fd09}{INV\_FSR\_500DPS}},} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00323}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gga83acdc0eb37e8bfe0c2ae2348ded0a90aee922e0daa4fbb404c3db6c49d897a13}{00323}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga83acdc0eb37e8bfe0c2ae2348ded0a90aee922e0daa4fbb404c3db6c49d897a13}{INV\_FSR\_1000DPS}},} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00324}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gga83acdc0eb37e8bfe0c2ae2348ded0a90ac0c37efc1c8acd6f70c0c5a768e5b8be}{00324}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga83acdc0eb37e8bfe0c2ae2348ded0a90ac0c37efc1c8acd6f70c0c5a768e5b8be}{INV\_FSR\_2000DPS}},} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00325}00325 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga83acdc0eb37e8bfe0c2ae2348ded0a90ab50b300433c5bc3cbc7ae8adb980c815}{NUM\_GYRO\_FSR}}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00326}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gga83acdc0eb37e8bfe0c2ae2348ded0a90ab50b300433c5bc3cbc7ae8adb980c815}{00326}} \};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00327}00327 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00328}00328 \textcolor{comment}{/* Full scale ranges. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00329}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaec8501b935143099e5f729dee221a81e}{00329}} \textcolor{keyword}{enum} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaec8501b935143099e5f729dee221a81e}{accel\_fsr\_e}} \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00330}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ggaec8501b935143099e5f729dee221a81eae27c6f69463dab7de81fac0c51ff8aa7}{00330}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ggaec8501b935143099e5f729dee221a81eae27c6f69463dab7de81fac0c51ff8aa7}{INV\_FSR\_2G}} = 0,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00331}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ggaec8501b935143099e5f729dee221a81eaa91e3a89d0bbd01149fe71148595be6d}{00331}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ggaec8501b935143099e5f729dee221a81eaa91e3a89d0bbd01149fe71148595be6d}{INV\_FSR\_4G}},} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00332}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ggaec8501b935143099e5f729dee221a81ea0a40371bdda397d234c53d0ee2f3be8b}{00332}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ggaec8501b935143099e5f729dee221a81ea0a40371bdda397d234c53d0ee2f3be8b}{INV\_FSR\_8G}},} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00333}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ggaec8501b935143099e5f729dee221a81ea6712e8563c97c11b458ef721d4f5f9d5}{00333}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ggaec8501b935143099e5f729dee221a81ea6712e8563c97c11b458ef721d4f5f9d5}{INV\_FSR\_16G}},} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00334}00334 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ggaec8501b935143099e5f729dee221a81ea6d466b2f73b176f1dfc8a3f94ae8a4df}{NUM\_ACCEL\_FSR}}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00335}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ggaec8501b935143099e5f729dee221a81ea6d466b2f73b176f1dfc8a3f94ae8a4df}{00335}} \};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00336}00336 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00337}00337 \textcolor{comment}{/* Clock sources. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00338}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga75570f009627c6f4ddfb2d936d81e207}{00338}} \textcolor{keyword}{enum} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga75570f009627c6f4ddfb2d936d81e207}{clock\_sel\_e}} \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00339}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gga75570f009627c6f4ddfb2d936d81e207a92059acf8d0ff5b7e12580c15f88466f}{00339}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga75570f009627c6f4ddfb2d936d81e207a92059acf8d0ff5b7e12580c15f88466f}{INV\_CLK\_INTERNAL}} = 0,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00340}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gga75570f009627c6f4ddfb2d936d81e207a01b240917a78674d3e387110a6a8f94c}{00340}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga75570f009627c6f4ddfb2d936d81e207a01b240917a78674d3e387110a6a8f94c}{INV\_CLK\_PLL}},} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00341}00341 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga75570f009627c6f4ddfb2d936d81e207a7f075b0360037232fdf24f90de7be1d7}{NUM\_CLK}}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00342}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gga75570f009627c6f4ddfb2d936d81e207a7f075b0360037232fdf24f90de7be1d7}{00342}} \};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00343}00343 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00344}00344 \textcolor{comment}{/* Low-\/power accel wakeup rates. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00345}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga23c3fcde795e5aa2b141232d490c9ca7}{00345}} \textcolor{keyword}{enum} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga23c3fcde795e5aa2b141232d490c9ca7}{lp\_accel\_rate\_e}} \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00346}00346 \textcolor{preprocessor}{\#if defined MPU6050}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00347}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gga23c3fcde795e5aa2b141232d490c9ca7ab44c7d0127a9466747853533a537b567}{00347}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga23c3fcde795e5aa2b141232d490c9ca7ab44c7d0127a9466747853533a537b567}{INV\_LPA\_1\_25HZ}},} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00348}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gga23c3fcde795e5aa2b141232d490c9ca7a474cac76bff369dd656cc973207a1ca5}{00348}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga23c3fcde795e5aa2b141232d490c9ca7a474cac76bff369dd656cc973207a1ca5}{INV\_LPA\_5HZ}},} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00349}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gga23c3fcde795e5aa2b141232d490c9ca7accaaf47c58dfe32cbf2ffa11fdb83108}{00349}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga23c3fcde795e5aa2b141232d490c9ca7accaaf47c58dfe32cbf2ffa11fdb83108}{INV\_LPA\_20HZ}},} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00350}00350 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga23c3fcde795e5aa2b141232d490c9ca7a798d2b86eafcf3fc7c7fe775f46cb4cb}{INV\_LPA\_40HZ}}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00351}00351 \textcolor{preprocessor}{\#elif defined MPU6500}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00352}00352 INV\_LPA\_0\_3125HZ,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00353}00353 INV\_LPA\_0\_625HZ,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00354}00354 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga23c3fcde795e5aa2b141232d490c9ca7ab44c7d0127a9466747853533a537b567}{INV\_LPA\_1\_25HZ}},} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00355}00355 INV\_LPA\_2\_5HZ,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00356}00356 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga23c3fcde795e5aa2b141232d490c9ca7a474cac76bff369dd656cc973207a1ca5}{INV\_LPA\_5HZ}},} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00357}00357 INV\_LPA\_10HZ,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00358}00358 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga23c3fcde795e5aa2b141232d490c9ca7accaaf47c58dfe32cbf2ffa11fdb83108}{INV\_LPA\_20HZ}},} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00359}00359 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga23c3fcde795e5aa2b141232d490c9ca7a798d2b86eafcf3fc7c7fe775f46cb4cb}{INV\_LPA\_40HZ}},} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00360}00360 INV\_LPA\_80HZ,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00361}00361 INV\_LPA\_160HZ,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00362}00362 INV\_LPA\_320HZ,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00363}00363 INV\_LPA\_640HZ} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00364}00364 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00365}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gga23c3fcde795e5aa2b141232d490c9ca7a798d2b86eafcf3fc7c7fe775f46cb4cb}{00365}} \};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00366}00366 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00367}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac52d7caf4efc485ef6faa1211bfe60dc}{00367}} \textcolor{preprocessor}{\#define BIT\_I2C\_MST\_VDDIO (0x80)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00368}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gae3c4a18accb84992faaf2534a84a147c}{00368}} \textcolor{preprocessor}{\#define BIT\_FIFO\_EN (0x40)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00369}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga02c3e9ddd63128f1c3cf50bf1e9b5fe6}{00369}} \textcolor{preprocessor}{\#define BIT\_DMP\_EN (0x80)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00370}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaeae2cc64314ad05f3a93d2358a2369db}{00370}} \textcolor{preprocessor}{\#define BIT\_FIFO\_RST (0x04)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00371}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga37d5ceb74c3568e4bab6dcdd0afaa95b}{00371}} \textcolor{preprocessor}{\#define BIT\_DMP\_RST (0x08)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00372}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gafb9b49ce5dd973b3c29ae72680924fa7}{00372}} \textcolor{preprocessor}{\#define BIT\_FIFO\_OVERFLOW (0x10)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00373}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga45eec9dbc46778c356703dcf90b9e0c3}{00373}} \textcolor{preprocessor}{\#define BIT\_DATA\_RDY\_EN (0x01)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00374}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4dc5309ed09fc683d8e5a247feaad69d}{00374}} \textcolor{preprocessor}{\#define BIT\_DMP\_INT\_EN (0x02)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00375}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6a8f2f7f3dd17bc05d9c6286d15c7ada}{00375}} \textcolor{preprocessor}{\#define BIT\_MOT\_INT\_EN (0x40)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00376}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2d9aff1be96b1fc021ca96f251c3e72b}{00376}} \textcolor{preprocessor}{\#define BITS\_FSR (0x18)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00377}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4d83411e736da86163a61828816a200a}{00377}} \textcolor{preprocessor}{\#define BITS\_LPF (0x07)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00378}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3c9c0234d4a71c9d35bb0da64ea867eb}{00378}} \textcolor{preprocessor}{\#define BITS\_HPF (0x07)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00379}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1823f90ac353cf4cde25d297a8627dd4}{00379}} \textcolor{preprocessor}{\#define BITS\_CLK (0x07)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00380}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3769fd3fa71deaef1e77ce14c26f679d}{00380}} \textcolor{preprocessor}{\#define BIT\_FIFO\_SIZE\_1024 (0x40)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00381}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga0fa95b278851b0c05a9995f65ba2b895}{00381}} \textcolor{preprocessor}{\#define BIT\_FIFO\_SIZE\_2048 (0x80)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00382}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac067df9d789eaae04585abfc5ffdb2b6}{00382}} \textcolor{preprocessor}{\#define BIT\_FIFO\_SIZE\_4096 (0xC0)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00383}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf4ce49fd1fc9b1461b5241f9ef4812f4}{00383}} \textcolor{preprocessor}{\#define BIT\_RESET (0x80)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00384}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1fed8bd436e9b7dfccb1cae99ca89103}{00384}} \textcolor{preprocessor}{\#define BIT\_SLEEP (0x40)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00385}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac4b33689dd697c1cf2411638a017c009}{00385}} \textcolor{preprocessor}{\#define BIT\_S0\_DELAY\_EN (0x01)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00386}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga22e4452fe8abca7fe12a2dc45194e6df}{00386}} \textcolor{preprocessor}{\#define BIT\_S2\_DELAY\_EN (0x04)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00387}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gabc5c2ee59baeb02a0f761740466f3c28}{00387}} \textcolor{preprocessor}{\#define BITS\_SLAVE\_LENGTH (0x0F)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00388}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5e8f3ccff1b3eeb95a938b207ca873ff}{00388}} \textcolor{preprocessor}{\#define BIT\_SLAVE\_BYTE\_SW (0x40)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00389}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf616c3ecf97ffd7bde444f0b74e7453e}{00389}} \textcolor{preprocessor}{\#define BIT\_SLAVE\_GROUP (0x10)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00390}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gae9440f48b6d70d900366dc040a8714d7}{00390}} \textcolor{preprocessor}{\#define BIT\_SLAVE\_EN (0x80)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00391}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8ef1963ec6fb3df5586e50959cf00a70}{00391}} \textcolor{preprocessor}{\#define BIT\_I2C\_READ (0x80)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00392}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab470b625fa05ff228b3fdb94802b1c0d}{00392}} \textcolor{preprocessor}{\#define BITS\_I2C\_MASTER\_DLY (0x1F)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00393}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gabcdedbd3098140aa14ad17bcaca8e176}{00393}} \textcolor{preprocessor}{\#define BIT\_AUX\_IF\_EN (0x20)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00394}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8467782bedc44051c95643e303543655}{00394}} \textcolor{preprocessor}{\#define BIT\_ACTL (0x80)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00395}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga588b5a95724c4a68c6868faa78fd3a7f}{00395}} \textcolor{preprocessor}{\#define BIT\_LATCH\_EN (0x20)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00396}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1f50796ca0363292d9ac9cc1d29d9225}{00396}} \textcolor{preprocessor}{\#define BIT\_ANY\_RD\_CLR (0x10)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00397}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gadd12a8d89e1a4c4e008b12a96dd4c75d}{00397}} \textcolor{preprocessor}{\#define BIT\_BYPASS\_EN (0x02)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00398}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga75b1479e451b747afb3b24cbc4df99f7}{00398}} \textcolor{preprocessor}{\#define BITS\_WOM\_EN (0xC0)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00399}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga63e6f23af37626aa1498d8c248f259e7}{00399}} \textcolor{preprocessor}{\#define BIT\_LPA\_CYCLE (0x20)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00400}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacfc46ee2ea036d16b3df45c8fb241b5b}{00400}} \textcolor{preprocessor}{\#define BIT\_STBY\_XA (0x20)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00401}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga49e6d38569bfc4b58ccc45dbb19001fa}{00401}} \textcolor{preprocessor}{\#define BIT\_STBY\_YA (0x10)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00402}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gafac8114288bae2db7ea7dbf0f6fb755c}{00402}} \textcolor{preprocessor}{\#define BIT\_STBY\_ZA (0x08)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00403}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga82256fedeffe5b2443ab3ae34cf032d9}{00403}} \textcolor{preprocessor}{\#define BIT\_STBY\_XG (0x04)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00404}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gabf1c0a844906a5e887a659971a4af417}{00404}} \textcolor{preprocessor}{\#define BIT\_STBY\_YG (0x02)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00405}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga30967a4efdf3c3f1e39814e72a4168b0}{00405}} \textcolor{preprocessor}{\#define BIT\_STBY\_ZG (0x01)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00406}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga04a57159e34387dafe9b86b171c4654c}{00406}} \textcolor{preprocessor}{\#define BIT\_STBY\_XYZA (BIT\_STBY\_XA | BIT\_STBY\_YA | BIT\_STBY\_ZA)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00407}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4e2ef22b94b90f9b83394dfe1f688ce4}{00407}} \textcolor{preprocessor}{\#define BIT\_STBY\_XYZG (BIT\_STBY\_XG | BIT\_STBY\_YG | BIT\_STBY\_ZG)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00408}00408 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00409}00409 \textcolor{preprocessor}{\#if defined AK8975\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00410}00410 \textcolor{preprocessor}{\#define SUPPORTS\_AK89xx\_HIGH\_SENS (0x00)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00411}00411 \textcolor{preprocessor}{\#define AK89xx\_FSR (9830)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00412}00412 \textcolor{preprocessor}{\#elif defined AK8963\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00413}00413 \textcolor{preprocessor}{\#define SUPPORTS\_AK89xx\_HIGH\_SENS (0x10)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00414}00414 \textcolor{preprocessor}{\#define AK89xx\_FSR (4915)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00415}00415 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00416}00416 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00417}00417 \textcolor{preprocessor}{\#ifdef AK89xx\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00418}00418 \textcolor{preprocessor}{\#define AKM\_REG\_WHOAMI (0x00)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00419}00419 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00420}00420 \textcolor{preprocessor}{\#define AKM\_REG\_ST1 (0x02)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00421}00421 \textcolor{preprocessor}{\#define AKM\_REG\_HXL (0x03)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00422}00422 \textcolor{preprocessor}{\#define AKM\_REG\_ST2 (0x09)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00423}00423 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00424}00424 \textcolor{preprocessor}{\#define AKM\_REG\_CNTL (0x0A)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00425}00425 \textcolor{preprocessor}{\#define AKM\_REG\_ASTC (0x0C)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00426}00426 \textcolor{preprocessor}{\#define AKM\_REG\_ASAX (0x10)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00427}00427 \textcolor{preprocessor}{\#define AKM\_REG\_ASAY (0x11)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00428}00428 \textcolor{preprocessor}{\#define AKM\_REG\_ASAZ (0x12)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00429}00429 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00430}00430 \textcolor{preprocessor}{\#define AKM\_DATA\_READY (0x01)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00431}00431 \textcolor{preprocessor}{\#define AKM\_DATA\_OVERRUN (0x02)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00432}00432 \textcolor{preprocessor}{\#define AKM\_OVERFLOW (0x80)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00433}00433 \textcolor{preprocessor}{\#define AKM\_DATA\_ERROR (0x40)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00434}00434 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00435}00435 \textcolor{preprocessor}{\#define AKM\_BIT\_SELF\_TEST (0x40)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00436}00436 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00437}00437 \textcolor{preprocessor}{\#define AKM\_POWER\_DOWN (0x00 | SUPPORTS\_AK89xx\_HIGH\_SENS)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00438}00438 \textcolor{preprocessor}{\#define AKM\_SINGLE\_MEASUREMENT (0x01 | SUPPORTS\_AK89xx\_HIGH\_SENS)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00439}00439 \textcolor{preprocessor}{\#define AKM\_FUSE\_ROM\_ACCESS (0x0F | SUPPORTS\_AK89xx\_HIGH\_SENS)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00440}00440 \textcolor{preprocessor}{\#define AKM\_MODE\_SELF\_TEST (0x08 | SUPPORTS\_AK89xx\_HIGH\_SENS)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00441}00441 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00442}00442 \textcolor{preprocessor}{\#define AKM\_WHOAMI (0x48)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00443}00443 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00444}00444 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00445}00445 \textcolor{preprocessor}{\#if defined MPU6050}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00446}00446 \textcolor{comment}{//const struct gyro\_reg\_s reg = \{}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00447}00447 \textcolor{comment}{// .who\_am\_i = 0x75,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00448}00448 \textcolor{comment}{// .rate\_div = 0x19,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00449}00449 \textcolor{comment}{// .lpf = 0x1A,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00450}00450 \textcolor{comment}{// .prod\_id = 0x0C,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00451}00451 \textcolor{comment}{// .user\_ctrl = 0x6A,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00452}00452 \textcolor{comment}{// .fifo\_en = 0x23,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00453}00453 \textcolor{comment}{// .gyro\_cfg = 0x1B,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00454}00454 \textcolor{comment}{// .accel\_cfg = 0x1C,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00455}00455 \textcolor{comment}{// .motion\_thr = 0x1F,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00456}00456 \textcolor{comment}{// .motion\_dur = 0x20,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00457}00457 \textcolor{comment}{// .fifo\_count\_h = 0x72,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00458}00458 \textcolor{comment}{// .fifo\_r\_w = 0x74,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00459}00459 \textcolor{comment}{// .raw\_gyro = 0x43,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00460}00460 \textcolor{comment}{// .raw\_accel = 0x3B,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00461}00461 \textcolor{comment}{// .temp = 0x41,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00462}00462 \textcolor{comment}{// .int\_enable = 0x38,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00463}00463 \textcolor{comment}{// .dmp\_int\_status = 0x39,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00464}00464 \textcolor{comment}{// .int\_status = 0x3A,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00465}00465 \textcolor{comment}{// .pwr\_mgmt\_1 = 0x6B,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00466}00466 \textcolor{comment}{// .pwr\_mgmt\_2 = 0x6C,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00467}00467 \textcolor{comment}{// .int\_pin\_cfg = 0x37,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00468}00468 \textcolor{comment}{// .mem\_r\_w = 0x6F,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00469}00469 \textcolor{comment}{// .accel\_offs = 0x06,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00470}00470 \textcolor{comment}{// .i2c\_mst = 0x24,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00471}00471 \textcolor{comment}{// .bank\_sel = 0x6D,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00472}00472 \textcolor{comment}{// .mem\_start\_addr = 0x6E,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00473}00473 \textcolor{comment}{// .prgm\_start\_h = 0x70}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00474}00474 \textcolor{comment}{//\#ifdef AK89xx\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00475}00475 \textcolor{comment}{// ,.raw\_compass = 0x49,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00476}00476 \textcolor{comment}{// .yg\_offs\_tc = 0x01,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00477}00477 \textcolor{comment}{// .s0\_addr = 0x25,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00478}00478 \textcolor{comment}{// .s0\_reg = 0x26,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00479}00479 \textcolor{comment}{// .s0\_ctrl = 0x27,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00480}00480 \textcolor{comment}{// .s1\_addr = 0x28,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00481}00481 \textcolor{comment}{// .s1\_reg = 0x29,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00482}00482 \textcolor{comment}{// .s1\_ctrl = 0x2A,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00483}00483 \textcolor{comment}{// .s4\_ctrl = 0x34,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00484}00484 \textcolor{comment}{// .s0\_do = 0x63,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00485}00485 \textcolor{comment}{// .s1\_do = 0x64,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00486}00486 \textcolor{comment}{// .i2c\_delay\_ctrl = 0x67}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00487}00487 \textcolor{comment}{//\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00488}00488 \textcolor{comment}{//\};}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00489}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5448c351fc95ff052b110eee80e5f75c}{00489}} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structgyro__reg__s}{gyro\_reg\_s}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5448c351fc95ff052b110eee80e5f75c}{reg}} = \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00490}00490 0x75, \textcolor{comment}{//who\_am\_i}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00491}00491 0x19, \textcolor{comment}{//rate\_div}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00492}00492 0x1A, \textcolor{comment}{//lpf}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00493}00493 0x0C, \textcolor{comment}{//prod\_id}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00494}00494 0x6A, \textcolor{comment}{//user\_ctrl}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00495}00495 0x23, \textcolor{comment}{//fifo\_en}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00496}00496 0x1B, \textcolor{comment}{//gyro\_cfg}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00497}00497 0x1C, \textcolor{comment}{//accel\_cfg}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00498}00498 0x1F, \textcolor{comment}{// motion\_thr}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00499}00499 0x20, \textcolor{comment}{// motion\_dur}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00500}00500 0x72, \textcolor{comment}{// fifo\_count\_h}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00501}00501 0x74, \textcolor{comment}{// fifo\_r\_w}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00502}00502 0x43, \textcolor{comment}{// raw\_gyro}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00503}00503 0x3B, \textcolor{comment}{// raw\_accel}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00504}00504 0x41, \textcolor{comment}{// temp}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00505}00505 0x38, \textcolor{comment}{// int\_enable}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00506}00506 0x39, \textcolor{comment}{// dmp\_int\_status}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00507}00507 0x3A, \textcolor{comment}{// int\_status}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00508}00508 0x6B, \textcolor{comment}{// pwr\_mgmt\_1}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00509}00509 0x6C, \textcolor{comment}{// pwr\_mgmt\_2}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00510}00510 0x37, \textcolor{comment}{// int\_pin\_cfg}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00511}00511 0x6F, \textcolor{comment}{// mem\_r\_w}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00512}00512 0x06, \textcolor{comment}{// accel\_offs}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00513}00513 0x24, \textcolor{comment}{// i2c\_mst}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00514}00514 0x6D, \textcolor{comment}{// bank\_sel}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00515}00515 0x6E, \textcolor{comment}{// mem\_start\_addr}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00516}00516 0x70 \textcolor{comment}{// prgm\_start\_h}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00517}00517 \};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00518}00518 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00519}00519 \textcolor{comment}{//const struct hw\_s hw = \{}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00520}00520 \textcolor{comment}{// .addr = 0x68,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00521}00521 \textcolor{comment}{// .max\_fifo = 1024,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00522}00522 \textcolor{comment}{// .num\_reg = 118,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00523}00523 \textcolor{comment}{// .temp\_sens = 340,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00524}00524 \textcolor{comment}{// .temp\_offset = -\/521,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00525}00525 \textcolor{comment}{// .bank\_size = 256}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00526}00526 \textcolor{comment}{//\#if defined AK89xx\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00527}00527 \textcolor{comment}{// ,.compass\_fsr = AK89xx\_FSR}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00528}00528 \textcolor{comment}{//\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00529}00529 \textcolor{comment}{//\};}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00530}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga7fefd0bb47e09b7e39e25e9795cd7edc}{00530}} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structhw__s}{hw\_s}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga7fefd0bb47e09b7e39e25e9795cd7edc}{hw}}=\{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00531}00531 0x68, \textcolor{comment}{//addr}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00532}00532 1024, \textcolor{comment}{//max\_fifo}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00533}00533 118, \textcolor{comment}{//num\_reg}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00534}00534 340, \textcolor{comment}{//temp\_sens}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00535}00535 -\/521, \textcolor{comment}{//temp\_offset}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00536}00536 256 \textcolor{comment}{//bank\_size}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00537}00537 \};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00538}00538 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00539}00539 \textcolor{comment}{//const struct test\_s test = \{}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00540}00540 \textcolor{comment}{// .gyro\_sens = 32768/250,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00541}00541 \textcolor{comment}{// .accel\_sens = 32768/16,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00542}00542 \textcolor{comment}{// .reg\_rate\_div = 0, /* 1kHz. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00543}00543 \textcolor{comment}{// .reg\_lpf = 1, /* 188Hz. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00544}00544 \textcolor{comment}{// .reg\_gyro\_fsr = 0, /* 250dps. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00545}00545 \textcolor{comment}{// .reg\_accel\_fsr = 0x18, /* 16g. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00546}00546 \textcolor{comment}{// .wait\_ms = 50,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00547}00547 \textcolor{comment}{// .packet\_thresh = 5, /* 5\% */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00548}00548 \textcolor{comment}{// .min\_dps = 10.f,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00549}00549 \textcolor{comment}{// .max\_dps = 105.f,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00550}00550 \textcolor{comment}{// .max\_gyro\_var = 0.14f,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00551}00551 \textcolor{comment}{// .min\_g = 0.3f,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00552}00552 \textcolor{comment}{// .max\_g = 0.95f,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00553}00553 \textcolor{comment}{// .max\_accel\_var = 0.14f}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00554}00554 \textcolor{comment}{//\};}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00555}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1e8f8b1ef7fb2c429e1ce7c2f9985530}{00555}} \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structtest__s}{test\_s}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1e8f8b1ef7fb2c429e1ce7c2f9985530}{test}}=\{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00556}00556 32768/250, \textcolor{comment}{//gyro\_sens}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00557}00557 32768/16, \textcolor{comment}{// accel\_sens}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00558}00558 0, \textcolor{comment}{// reg\_rate\_div}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00559}00559 1, \textcolor{comment}{// reg\_lpf}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00560}00560 0, \textcolor{comment}{// reg\_gyro\_fsr}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00561}00561 0x18, \textcolor{comment}{// reg\_accel\_fsr}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00562}00562 50, \textcolor{comment}{// wait\_ms}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00563}00563 5, \textcolor{comment}{// packet\_thresh}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00564}00564 10.0f, \textcolor{comment}{// min\_dps}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00565}00565 105.0f, \textcolor{comment}{// max\_dps}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00566}00566 0.14f, \textcolor{comment}{// max\_gyro\_var}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00567}00567 0.3f, \textcolor{comment}{// min\_g}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00568}00568 0.95f, \textcolor{comment}{// max\_g}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00569}00569 0.14f \textcolor{comment}{// max\_accel\_var}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00570}00570 \};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00571}00571 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00572}00572 \textcolor{comment}{//static struct gyro\_state\_s st = \{}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00573}00573 \textcolor{comment}{// .reg = \®,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00574}00574 \textcolor{comment}{// .hw = \&hw,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00575}00575 \textcolor{comment}{// .test = \&test}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00576}00576 \textcolor{comment}{//\};}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00577}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{00577}} \textcolor{keyword}{static} \textcolor{keyword}{struct }\mbox{\hyperlink{structgyro__state__s}{gyro\_state\_s}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}=\{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00578}00578 \&\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5448c351fc95ff052b110eee80e5f75c}{reg}},} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00579}00579 \&\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga7fefd0bb47e09b7e39e25e9795cd7edc}{hw}},} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00580}00580 \{0\},} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00581}00581 \&\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1e8f8b1ef7fb2c429e1ce7c2f9985530}{test}}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00582}00582 \};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00583}00583 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00584}00584 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00585}00585 \textcolor{preprocessor}{\#elif defined MPU6500}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00586}00586 \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structgyro__reg__s}{gyro\_reg\_s}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5448c351fc95ff052b110eee80e5f75c}{reg}} = \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00587}00587 .\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga51068a36efe9d2aedc9cb8fffacbf15b}{who\_am\_i}} = 0x75,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00588}00588 .rate\_div = 0x19,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00589}00589 .lpf = 0x1A,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00590}00590 .prod\_id = 0x0C,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00591}00591 .user\_ctrl = 0x6A,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00592}00592 .fifo\_en = 0x23,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00593}00593 .gyro\_cfg = 0x1B,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00594}00594 .accel\_cfg = 0x1C,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00595}00595 .accel\_cfg2 = 0x1D,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00596}00596 .lp\_accel\_odr = 0x1E,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00597}00597 .motion\_thr = 0x1F,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00598}00598 .motion\_dur = 0x20,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00599}00599 .fifo\_count\_h = 0x72,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00600}00600 .fifo\_r\_w = 0x74,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00601}00601 .raw\_gyro = 0x43,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00602}00602 .raw\_accel = 0x3B,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00603}00603 .temp = 0x41,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00604}00604 .int\_enable = 0x38,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00605}00605 .dmp\_int\_status = 0x39,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00606}00606 .int\_status = 0x3A,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00607}00607 .accel\_intel = 0x69,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00608}00608 .pwr\_mgmt\_1 = 0x6B,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00609}00609 .pwr\_mgmt\_2 = 0x6C,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00610}00610 .int\_pin\_cfg = 0x37,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00611}00611 .mem\_r\_w = 0x6F,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00612}00612 .accel\_offs = 0x77,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00613}00613 .i2c\_mst = 0x24,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00614}00614 .bank\_sel = 0x6D,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00615}00615 .mem\_start\_addr = 0x6E,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00616}00616 .prgm\_start\_h = 0x70} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00617}00617 \textcolor{preprocessor}{\#ifdef AK89xx\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00618}00618 ,.raw\_compass = 0x49,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00619}00619 .s0\_addr = 0x25,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00620}00620 .s0\_reg = 0x26,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00621}00621 .s0\_ctrl = 0x27,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00622}00622 .s1\_addr = 0x28,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00623}00623 .s1\_reg = 0x29,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00624}00624 .s1\_ctrl = 0x2A,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00625}00625 .s4\_ctrl = 0x34,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00626}00626 .s0\_do = 0x63,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00627}00627 .s1\_do = 0x64,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00628}00628 .i2c\_delay\_ctrl = 0x67} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00629}00629 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00630}00630 \};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00631}00631 \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structhw__s}{hw\_s}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga7fefd0bb47e09b7e39e25e9795cd7edc}{hw}} = \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00632}00632 .\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}} = 0x68,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00633}00633 .max\_fifo = 1024,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00634}00634 .num\_reg = 128,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00635}00635 .temp\_sens = 321,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00636}00636 .temp\_offset = 0,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00637}00637 .bank\_size = 256} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00638}00638 \textcolor{preprocessor}{\#if defined AK89xx\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00639}00639 ,.compass\_fsr = AK89xx\_FSR} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00640}00640 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00641}00641 \};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00642}00642 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00643}00643 \textcolor{keyword}{const} \textcolor{keyword}{struct }\mbox{\hyperlink{structtest__s}{test\_s}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1e8f8b1ef7fb2c429e1ce7c2f9985530}{test}} = \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00644}00644 .\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga330290a347407b0d92b1d77aa274993c}{gyro\_sens}} = 32768/250,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00645}00645 .accel\_sens = 32768/16,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00646}00646 .reg\_rate\_div = 0, \textcolor{comment}{/* 1kHz. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00647}00647 .reg\_lpf = 1, \textcolor{comment}{/* 188Hz. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00648}00648 .reg\_gyro\_fsr = 0, \textcolor{comment}{/* 250dps. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00649}00649 .reg\_accel\_fsr = 0x18, \textcolor{comment}{/* 16g. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00650}00650 .wait\_ms = 50,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00651}00651 .packet\_thresh = 5, \textcolor{comment}{/* 5\% */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00652}00652 .min\_dps = 10.f,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00653}00653 .max\_dps = 105.f,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00654}00654 .max\_gyro\_var = 0.14f,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00655}00655 .min\_g = 0.3f,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00656}00656 .max\_g = 0.95f,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00657}00657 .max\_accel\_var = 0.14f} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00658}00658 \};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00659}00659 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00660}00660 \textcolor{keyword}{static} \textcolor{keyword}{struct }\mbox{\hyperlink{structgyro__state__s}{gyro\_state\_s}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}} = \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00661}00661 .\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}} = \&\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5448c351fc95ff052b110eee80e5f75c}{reg}},} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00662}00662 .hw = \&\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga7fefd0bb47e09b7e39e25e9795cd7edc}{hw}},} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00663}00663 .test = \&\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1e8f8b1ef7fb2c429e1ce7c2f9985530}{test}}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00664}00664 \};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00665}00665 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00666}00666 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00667}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga973c680573b37fc359fc68d0707da355}{00667}} \textcolor{preprocessor}{\#define MAX\_PACKET\_LENGTH (12)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00668}00668 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00669}00669 \textcolor{preprocessor}{\#ifdef AK89xx\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00670}00670 \textcolor{keyword}{static} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4764ce0ba4e07a4c774f69ab3b83d1f9}{setup\_compass}}(\textcolor{keywordtype}{void});} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00671}00671 \textcolor{preprocessor}{\#define MAX\_COMPASS\_SAMPLE\_RATE (100)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00672}00672 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00673}00673 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00681}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gafd5ebff6b0179e1dce0b68c2272cae07}{00681}} \textcolor{keyword}{static} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gafd5ebff6b0179e1dce0b68c2272cae07}{set\_int\_enable}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} enable)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00682}00682 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00683}00683 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} tmp;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00684}00684 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00685}00685 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4783ed8aa79a3b5de798963819997c38}{dmp\_on}}) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00686}00686 \textcolor{keywordflow}{if} (enable)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00687}00687 tmp = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4dc5309ed09fc683d8e5a247feaad69d}{BIT\_DMP\_INT\_EN}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00688}00688 \textcolor{keywordflow}{else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00689}00689 tmp = 0x00;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00690}00690 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga48b47844d4b0570e60aa6806faa59eae}{int\_enable}}, 1, \&tmp))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00691}00691 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00692}00692 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa366c36057f31e6e0d4cf2ca4a1ef52f}{int\_enable}} = tmp;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00693}00693 \} \textcolor{keywordflow}{else} \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00694}00694 \textcolor{keywordflow}{if} (!\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa996fc14aa630e53823462baf460c13f}{sensors}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00695}00695 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00696}00696 \textcolor{keywordflow}{if} (enable \&\& \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa366c36057f31e6e0d4cf2ca4a1ef52f}{int\_enable}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00697}00697 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00698}00698 \textcolor{keywordflow}{if} (enable)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00699}00699 tmp = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga45eec9dbc46778c356703dcf90b9e0c3}{BIT\_DATA\_RDY\_EN}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00700}00700 \textcolor{keywordflow}{else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00701}00701 tmp = 0x00;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00702}00702 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga48b47844d4b0570e60aa6806faa59eae}{int\_enable}}, 1, \&tmp))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00703}00703 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00704}00704 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa366c36057f31e6e0d4cf2ca4a1ef52f}{int\_enable}} = tmp;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00705}00705 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00706}00706 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00707}00707 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00708}00708 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00713}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga0e1201ecfd8453f1d89e4299528baaf6}{00713}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga0e1201ecfd8453f1d89e4299528baaf6}{mpu\_reg\_dump}}(\textcolor{keywordtype}{void})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00714}00714 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00715}00715 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} ii;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00716}00716 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} data;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00717}00717 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00718}00718 \textcolor{keywordflow}{for} (ii = 0; ii < \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1039fa66b110194727938cd86be8c3c5}{num\_reg}}; ii++) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00719}00719 \textcolor{keywordflow}{if} (ii == \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb6763dc5f368ea01ef7c733cea9dab4}{fifo\_r\_w}} || ii == \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gae17166b43fa12a960c0eced9a3c04bf0}{mem\_r\_w}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00720}00720 \textcolor{keywordflow}{continue};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00721}00721 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga838d8f1c7b0d8cc83923b93bbafe1b33}{i2c\_read}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, ii, 1, \&data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00722}00722 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00723}00723 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2905fba7885cd95057e1655cb4d16bda}{log\_i}}(\textcolor{stringliteral}{"{}\%\#5x: \%\#5x\(\backslash\)r\(\backslash\)n"{}}, ii, data);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00724}00724 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00725}00725 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00726}00726 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00727}00727 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00735}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5c35a3363337014e11769a0ea7c0dfa9}{00735}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5c35a3363337014e11769a0ea7c0dfa9}{mpu\_read\_reg}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5448c351fc95ff052b110eee80e5f75c}{reg}}, \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} *data)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00736}00736 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00737}00737 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5448c351fc95ff052b110eee80e5f75c}{reg}} == \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb6763dc5f368ea01ef7c733cea9dab4}{fifo\_r\_w}} || \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5448c351fc95ff052b110eee80e5f75c}{reg}} == \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gae17166b43fa12a960c0eced9a3c04bf0}{mem\_r\_w}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00738}00738 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00739}00739 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5448c351fc95ff052b110eee80e5f75c}{reg}} >= \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1039fa66b110194727938cd86be8c3c5}{num\_reg}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00740}00740 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00741}00741 \textcolor{keywordflow}{return} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga838d8f1c7b0d8cc83923b93bbafe1b33}{i2c\_read}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5448c351fc95ff052b110eee80e5f75c}{reg}}, 1, data);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00742}00742 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00743}00743 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00757}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac48a36b51e23bc4191ec13916bbb9d0b}{00757}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gac48a36b51e23bc4191ec13916bbb9d0b}{mpu\_init}}(\textcolor{keywordtype}{void})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00758}00758 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00759}00759 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} data[6], rev;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00760}00760 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00761}00761 \textcolor{comment}{/* Reset device. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00762}00762 data[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf4ce49fd1fc9b1461b5241f9ef4812f4}{BIT\_RESET}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00763}00763 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa01fb0872030e8e2932f8d1d257ea86a}{pwr\_mgmt\_1}}, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00764}00764 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00765}00765 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gae36aca5baf9b6b7d74992aef00686d67}{delay\_ms}}(100);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00766}00766 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00767}00767 \textcolor{comment}{/* Wake up chip. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00768}00768 data[0] = 0x00;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00769}00769 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa01fb0872030e8e2932f8d1d257ea86a}{pwr\_mgmt\_1}}, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00770}00770 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00771}00771 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00772}00772 \textcolor{preprocessor}{\#if defined MPU6050}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00773}00773 \textcolor{comment}{/* Check product revision. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00774}00774 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga838d8f1c7b0d8cc83923b93bbafe1b33}{i2c\_read}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab745dd73e0c3ef01f30f96444358cb89}{accel\_offs}}, 6, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00775}00775 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00776}00776 rev = ((data[5] \& 0x01) << 2) | ((data[3] \& 0x01) << 1) |} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00777}00777 (data[1] \& 0x01);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00778}00778 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00779}00779 \textcolor{keywordflow}{if} (rev) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00780}00780 \textcolor{comment}{/* Congrats, these parts are better. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00781}00781 \textcolor{keywordflow}{if} (rev == 1)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00782}00782 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab72e3cead391dee41f28e041282d743f}{accel\_half}} = 1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00783}00783 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (rev == 2)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00784}00784 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab72e3cead391dee41f28e041282d743f}{accel\_half}} = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00785}00785 \textcolor{keywordflow}{else} \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00786}00786 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gab354affc295f7d61fe8a355c9361cc5a}{log\_e}}(\textcolor{stringliteral}{"{}Unsupported software product rev \%d.\(\backslash\)n"{}}, rev);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00787}00787 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00788}00788 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00789}00789 \} \textcolor{keywordflow}{else} \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00790}00790 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga838d8f1c7b0d8cc83923b93bbafe1b33}{i2c\_read}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf418d8a6b0e262df54ab8a6a5228011c}{prod\_id}}, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00791}00791 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00792}00792 rev = data[0] \& 0x0F;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00793}00793 \textcolor{keywordflow}{if} (!rev) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00794}00794 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gab354affc295f7d61fe8a355c9361cc5a}{log\_e}}(\textcolor{stringliteral}{"{}Product ID read as 0 indicates device is either "{}}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00795}00795 \textcolor{stringliteral}{"{}incompatible or an MPU3050.\(\backslash\)n"{}});} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00796}00796 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00797}00797 \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (rev == 4) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00798}00798 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2905fba7885cd95057e1655cb4d16bda}{log\_i}}(\textcolor{stringliteral}{"{}Half sensitivity part found.\(\backslash\)n"{}});} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00799}00799 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab72e3cead391dee41f28e041282d743f}{accel\_half}} = 1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00800}00800 \} \textcolor{keywordflow}{else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00801}00801 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab72e3cead391dee41f28e041282d743f}{accel\_half}} = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00802}00802 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00803}00803 \textcolor{preprocessor}{\#elif defined MPU6500}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00804}00804 \textcolor{preprocessor}{\#define MPU6500\_MEM\_REV\_ADDR (0x17)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00805}00805 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3374bececb6743893c9eab27645c1182}{mpu\_read\_mem}}(MPU6500\_MEM\_REV\_ADDR, 1, \&rev))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00806}00806 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00807}00807 \textcolor{keywordflow}{if} (rev == 0x1)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00808}00808 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab72e3cead391dee41f28e041282d743f}{accel\_half}} = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00809}00809 \textcolor{keywordflow}{else} \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00810}00810 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gab354affc295f7d61fe8a355c9361cc5a}{log\_e}}(\textcolor{stringliteral}{"{}Unsupported software product rev \%d.\(\backslash\)n"{}}, rev);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00811}00811 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00812}00812 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00813}00813 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00814}00814 \textcolor{comment}{/* MPU6500 shares 4kB of memory between the DMP and the FIFO. Since the}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00815}00815 \textcolor{comment}{ * first 3kB are needed by the DMP, we'll use the last 1kB for the FIFO.}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00816}00816 \textcolor{comment}{ */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00817}00817 data[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3769fd3fa71deaef1e77ce14c26f679d}{BIT\_FIFO\_SIZE\_1024}} | 0x8;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00818}00818 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>accel\_cfg2, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00819}00819 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00820}00820 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00821}00821 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00822}00822 \textcolor{comment}{/* Set to invalid values to ensure no I2C writes are skipped. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00823}00823 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa996fc14aa630e53823462baf460c13f}{sensors}} = 0xFF;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00824}00824 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab45a727aeee17380828a3e20ccb375c2}{gyro\_fsr}} = 0xFF;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00825}00825 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf66873be1446ed552812e32d40eced61}{accel\_fsr}} = 0xFF;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00826}00826 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga16ec8ca8298f62ac01419775377270fb}{lpf}} = 0xFF;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00827}00827 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2660470fcf7b53e2e832a397cbe6c354}{sample\_rate}} = 0xFFFF;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00828}00828 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga88143c31b894bcd819c0e49b0ff267aa}{fifo\_enable}} = 0xFF;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00829}00829 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6d3a962d6435644c7ea68e7d65934636}{bypass\_mode}} = 0xFF;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00830}00830 \textcolor{preprocessor}{\#ifdef AK89xx\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00831}00831 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.compass\_sample\_rate = 0xFFFF;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00832}00832 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00833}00833 \textcolor{comment}{/* mpu\_set\_sensors always preserves this setting. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00834}00834 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab7bd5165d6e62cb0d814cf3401958445}{clk\_src}} = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga75570f009627c6f4ddfb2d936d81e207a01b240917a78674d3e387110a6a8f94c}{INV\_CLK\_PLL}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00835}00835 \textcolor{comment}{/* Handled in next call to mpu\_set\_bypass. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00836}00836 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6f12e54ae8c7f2dd77954f3ab619bbb9}{active\_low\_int}} = 1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00837}00837 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga55ce40fc460a62829ec149edaccffe7c}{latched\_int}} = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00838}00838 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga279cd5d5d78890357f2d42905d7471df}{int\_motion\_only}} = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00839}00839 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga33e138d8a49744eb9b4ea0e9086cef1c}{lp\_accel\_mode}} = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00840}00840 memset(\&\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gadf3b491a068e0225a080821516353bac}{cache}}, 0, \textcolor{keyword}{sizeof}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gadf3b491a068e0225a080821516353bac}{cache}}));} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00841}00841 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4783ed8aa79a3b5de798963819997c38}{dmp\_on}} = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00842}00842 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1d2ff55e17aae1459dfad61d76054b1b}{dmp\_loaded}} = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00843}00843 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5f42b7e1e740f2fb64427417e9e2dab7}{dmp\_sample\_rate}} = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00844}00844 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00845}00845 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gad09e6031c8677adc0b8a39b6deea8e27}{mpu\_set\_gyro\_fsr}}(2000))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00846}00846 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00847}00847 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2713a96af104cfb2ae8e0ed4c3718119}{mpu\_set\_accel\_fsr}}(2))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00848}00848 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00849}00849 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5661a9dee25152166769910767a2a93d}{mpu\_set\_lpf}}(42))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00850}00850 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00851}00851 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga0144d666a67a82888b8580002afe8b55}{mpu\_set\_sample\_rate}}(50))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00852}00852 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00853}00853 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gababbdda287e1f19323489f90a0889dd7}{mpu\_configure\_fifo}}(0))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00854}00854 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00855}00855 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00856}00856 \textcolor{comment}{// if (int\_param)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00857}00857 \textcolor{comment}{// reg\_int\_cb(int\_param);}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00858}00858 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00859}00859 \textcolor{preprocessor}{\#ifdef AK89xx\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00860}00860 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4764ce0ba4e07a4c774f69ab3b83d1f9}{setup\_compass}}();} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00861}00861 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga78da3828de0ef9d080c4d03e7bc45e7b}{mpu\_set\_compass\_sample\_rate}}(10))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00862}00862 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00863}00863 \textcolor{preprocessor}{\#else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00864}00864 \textcolor{comment}{/* Already disabled by setup\_compass. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00865}00865 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga36f70f38371b48d81094d3b061233e15}{mpu\_set\_bypass}}(0))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00866}00866 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00867}00867 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00868}00868 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00869}00869 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6e77e7cc1cf6be5e8fdf617c5b4586d1}{mpu\_set\_sensors}}(0);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00870}00870 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00871}00871 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00872}00872 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00888}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3a4fea75686ab7d2e68634e81ccac04c}{00888}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3a4fea75686ab7d2e68634e81ccac04c}{mpu\_lp\_accel\_mode}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} rate)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00889}00889 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00890}00890 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} tmp[2];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00891}00891 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00892}00892 \textcolor{keywordflow}{if} (rate > 40)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00893}00893 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00894}00894 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00895}00895 \textcolor{keywordflow}{if} (!rate) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00896}00896 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga653cb855300bff9285ce4b8dca6a503b}{mpu\_set\_int\_latched}}(0);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00897}00897 tmp[0] = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00898}00898 tmp[1] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4e2ef22b94b90f9b83394dfe1f688ce4}{BIT\_STBY\_XYZG}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00899}00899 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa01fb0872030e8e2932f8d1d257ea86a}{pwr\_mgmt\_1}}, 2, tmp))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00900}00900 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00901}00901 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga33e138d8a49744eb9b4ea0e9086cef1c}{lp\_accel\_mode}} = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00902}00902 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00903}00903 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00904}00904 \textcolor{comment}{/* For LP accel, we automatically configure the hardware to produce latched}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00905}00905 \textcolor{comment}{ * interrupts. In LP accel mode, the hardware cycles into sleep mode before}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00906}00906 \textcolor{comment}{ * it gets a chance to deassert the interrupt pin; therefore, we shift this}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00907}00907 \textcolor{comment}{ * responsibility over to the MCU.}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00908}00908 \textcolor{comment}{ *}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00909}00909 \textcolor{comment}{ * Any register read will clear the interrupt.}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00910}00910 \textcolor{comment}{ */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00911}00911 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga653cb855300bff9285ce4b8dca6a503b}{mpu\_set\_int\_latched}}(1);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00912}00912 \textcolor{preprocessor}{\#if defined MPU6050}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00913}00913 tmp[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga63e6f23af37626aa1498d8c248f259e7}{BIT\_LPA\_CYCLE}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00914}00914 \textcolor{keywordflow}{if} (rate == 1) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00915}00915 tmp[1] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga23c3fcde795e5aa2b141232d490c9ca7ab44c7d0127a9466747853533a537b567}{INV\_LPA\_1\_25HZ}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00916}00916 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5661a9dee25152166769910767a2a93d}{mpu\_set\_lpf}}(5);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00917}00917 \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (rate <= 5) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00918}00918 tmp[1] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga23c3fcde795e5aa2b141232d490c9ca7a474cac76bff369dd656cc973207a1ca5}{INV\_LPA\_5HZ}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00919}00919 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5661a9dee25152166769910767a2a93d}{mpu\_set\_lpf}}(5);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00920}00920 \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (rate <= 20) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00921}00921 tmp[1] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga23c3fcde795e5aa2b141232d490c9ca7accaaf47c58dfe32cbf2ffa11fdb83108}{INV\_LPA\_20HZ}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00922}00922 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5661a9dee25152166769910767a2a93d}{mpu\_set\_lpf}}(10);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00923}00923 \} \textcolor{keywordflow}{else} \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00924}00924 tmp[1] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga23c3fcde795e5aa2b141232d490c9ca7a798d2b86eafcf3fc7c7fe775f46cb4cb}{INV\_LPA\_40HZ}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00925}00925 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5661a9dee25152166769910767a2a93d}{mpu\_set\_lpf}}(20);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00926}00926 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00927}00927 tmp[1] = (tmp[1] << 6) | \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4e2ef22b94b90f9b83394dfe1f688ce4}{BIT\_STBY\_XYZG}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00928}00928 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa01fb0872030e8e2932f8d1d257ea86a}{pwr\_mgmt\_1}}, 2, tmp))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00929}00929 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00930}00930 \textcolor{preprocessor}{\#elif defined MPU6500}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00931}00931 \textcolor{comment}{/* Set wake frequency. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00932}00932 \textcolor{keywordflow}{if} (rate == 1)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00933}00933 tmp[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga23c3fcde795e5aa2b141232d490c9ca7ab44c7d0127a9466747853533a537b567}{INV\_LPA\_1\_25HZ}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00934}00934 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (rate == 2)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00935}00935 tmp[0] = INV\_LPA\_2\_5HZ;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00936}00936 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (rate <= 5)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00937}00937 tmp[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga23c3fcde795e5aa2b141232d490c9ca7a474cac76bff369dd656cc973207a1ca5}{INV\_LPA\_5HZ}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00938}00938 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (rate <= 10)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00939}00939 tmp[0] = INV\_LPA\_10HZ;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00940}00940 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (rate <= 20)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00941}00941 tmp[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga23c3fcde795e5aa2b141232d490c9ca7accaaf47c58dfe32cbf2ffa11fdb83108}{INV\_LPA\_20HZ}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00942}00942 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (rate <= 40)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00943}00943 tmp[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga23c3fcde795e5aa2b141232d490c9ca7a798d2b86eafcf3fc7c7fe775f46cb4cb}{INV\_LPA\_40HZ}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00944}00944 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (rate <= 80)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00945}00945 tmp[0] = INV\_LPA\_80HZ;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00946}00946 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (rate <= 160)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00947}00947 tmp[0] = INV\_LPA\_160HZ;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00948}00948 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (rate <= 320)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00949}00949 tmp[0] = INV\_LPA\_320HZ;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00950}00950 \textcolor{keywordflow}{else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00951}00951 tmp[0] = INV\_LPA\_640HZ;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00952}00952 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>lp\_accel\_odr, 1, tmp))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00953}00953 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00954}00954 tmp[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga63e6f23af37626aa1498d8c248f259e7}{BIT\_LPA\_CYCLE}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00955}00955 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa01fb0872030e8e2932f8d1d257ea86a}{pwr\_mgmt\_1}}, 1, tmp))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00956}00956 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00957}00957 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00958}00958 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa996fc14aa630e53823462baf460c13f}{sensors}} = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa03f025a17ed491e70b88274e89c75c5}{INV\_XYZ\_ACCEL}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00959}00959 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab7bd5165d6e62cb0d814cf3401958445}{clk\_src}} = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00960}00960 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga33e138d8a49744eb9b4ea0e9086cef1c}{lp\_accel\_mode}} = 1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00961}00961 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gababbdda287e1f19323489f90a0889dd7}{mpu\_configure\_fifo}}(0);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00962}00962 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00963}00963 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00964}00964 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00965}00965 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00972}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5555854590ad11495c0e30401294bae2}{00972}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5555854590ad11495c0e30401294bae2}{mpu\_get\_gyro\_reg}}(\textcolor{keywordtype}{short} *data, \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{long} *timestamp)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00973}00973 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00974}00974 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} tmp[6];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00975}00975 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00976}00976 \textcolor{keywordflow}{if} (!(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa996fc14aa630e53823462baf460c13f}{sensors}} \& \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3fdc30f9c0a26c2c4e2bb88921f91629}{INV\_XYZ\_GYRO}}))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00977}00977 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00978}00978 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00979}00979 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga838d8f1c7b0d8cc83923b93bbafe1b33}{i2c\_read}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab5c2246c44bb36b21596fe5acf7ec0d4}{raw\_gyro}}, 6, tmp))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00980}00980 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00981}00981 data[0] = (tmp[0] << 8) | tmp[1];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00982}00982 data[1] = (tmp[2] << 8) | tmp[3];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00983}00983 data[2] = (tmp[4] << 8) | tmp[5];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00984}00984 \textcolor{keywordflow}{if} (timestamp)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00985}00985 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3e6b6bc6d1cd2956353a31bfadd3c332}{get\_ms}}(timestamp);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00986}00986 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00987}00987 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00988}00988 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00995}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gae4ae960e5df78049ece2647772a3d809}{00995}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gae4ae960e5df78049ece2647772a3d809}{mpu\_get\_accel\_reg}}(\textcolor{keywordtype}{short} *data, \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{long} *timestamp)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00996}00996 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00997}00997 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} tmp[6];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00998}00998 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l00999}00999 \textcolor{keywordflow}{if} (!(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa996fc14aa630e53823462baf460c13f}{sensors}} \& \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa03f025a17ed491e70b88274e89c75c5}{INV\_XYZ\_ACCEL}}))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01000}01000 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01001}01001 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01002}01002 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga838d8f1c7b0d8cc83923b93bbafe1b33}{i2c\_read}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga9b7c162cea6a3deeaac41444c613b7bc}{raw\_accel}}, 6, tmp))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01003}01003 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01004}01004 data[0] = (tmp[0] << 8) | tmp[1];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01005}01005 data[1] = (tmp[2] << 8) | tmp[3];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01006}01006 data[2] = (tmp[4] << 8) | tmp[5];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01007}01007 \textcolor{keywordflow}{if} (timestamp)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01008}01008 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3e6b6bc6d1cd2956353a31bfadd3c332}{get\_ms}}(timestamp);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01009}01009 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01010}01010 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01011}01011 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01018}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa449b565a157b4b8ca0f491b7ed46018}{01018}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa449b565a157b4b8ca0f491b7ed46018}{mpu\_get\_temperature}}(\textcolor{keywordtype}{long} *data, \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{long} *timestamp)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01019}01019 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01020}01020 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} tmp[2];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01021}01021 \textcolor{keywordtype}{short} raw;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01022}01022 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01023}01023 \textcolor{keywordflow}{if} (!(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa996fc14aa630e53823462baf460c13f}{sensors}}))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01024}01024 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01025}01025 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01026}01026 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga838d8f1c7b0d8cc83923b93bbafe1b33}{i2c\_read}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga47674fab0681811c1b733462944e0233}{temp}}, 2, tmp))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01027}01027 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01028}01028 raw = (tmp[0] << 8) | tmp[1];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01029}01029 \textcolor{keywordflow}{if} (timestamp)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01030}01030 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3e6b6bc6d1cd2956353a31bfadd3c332}{get\_ms}}(timestamp);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01031}01031 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01032}01032 data[0] = (long)((35 + ((raw -\/ (\textcolor{keywordtype}{float})\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga56f98c91a7c4d60ccea1ade1f3e88d04}{temp\_offset}}) / \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab2397f792a86b32b0957c24e3912bc63}{temp\_sens}})) * 65536L);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01033}01033 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01034}01034 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01035}01035 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01043}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4968cc2ec80f0da0d72436551c81f134}{01043}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4968cc2ec80f0da0d72436551c81f134}{mpu\_set\_accel\_bias}}(\textcolor{keyword}{const} \textcolor{keywordtype}{long} *accel\_bias)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01044}01044 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01045}01045 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} data[6];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01046}01046 \textcolor{keywordtype}{short} accel\_hw[3];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01047}01047 \textcolor{keywordtype}{short} got\_accel[3];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01048}01048 \textcolor{keywordtype}{short} fg[3];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01049}01049 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01050}01050 \textcolor{keywordflow}{if} (!accel\_bias)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01051}01051 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01052}01052 \textcolor{keywordflow}{if} (!accel\_bias[0] \&\& !accel\_bias[1] \&\& !accel\_bias[2])} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01053}01053 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01054}01054 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01055}01055 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga838d8f1c7b0d8cc83923b93bbafe1b33}{i2c\_read}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, 3, 3, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01056}01056 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01057}01057 fg[0] = ((data[0] >> 4) + 8) \& 0xf;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01058}01058 fg[1] = ((data[1] >> 4) + 8) \& 0xf;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01059}01059 fg[2] = ((data[2] >> 4) + 8) \& 0xf;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01060}01060 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01061}01061 accel\_hw[0] = (short)(accel\_bias[0] * 2 / (64 + fg[0]));} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01062}01062 accel\_hw[1] = (short)(accel\_bias[1] * 2 / (64 + fg[1]));} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01063}01063 accel\_hw[2] = (short)(accel\_bias[2] * 2 / (64 + fg[2]));} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01064}01064 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01065}01065 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga838d8f1c7b0d8cc83923b93bbafe1b33}{i2c\_read}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, 0x06, 6, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01066}01066 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01067}01067 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01068}01068 got\_accel[0] = ((short)data[0] << 8) | data[1];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01069}01069 got\_accel[1] = ((short)data[2] << 8) | data[3];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01070}01070 got\_accel[2] = ((short)data[4] << 8) | data[5];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01071}01071 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01072}01072 accel\_hw[0] += got\_accel[0];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01073}01073 accel\_hw[1] += got\_accel[1];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01074}01074 accel\_hw[2] += got\_accel[2];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01075}01075 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01076}01076 data[0] = (accel\_hw[0] >> 8) \& 0xff;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01077}01077 data[1] = (accel\_hw[0]) \& 0xff;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01078}01078 data[2] = (accel\_hw[1] >> 8) \& 0xff;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01079}01079 data[3] = (accel\_hw[1]) \& 0xff;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01080}01080 data[4] = (accel\_hw[2] >> 8) \& 0xff;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01081}01081 data[5] = (accel\_hw[2]) \& 0xff;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01082}01082 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01083}01083 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, 0x06, 6, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01084}01084 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01085}01085 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01086}01086 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01087}01087 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01092}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf23e9f57c0059be6ec57862f0584de10}{01092}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf23e9f57c0059be6ec57862f0584de10}{mpu\_reset\_fifo}}(\textcolor{keywordtype}{void})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01093}01093 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01094}01094 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} data;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01095}01095 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01096}01096 \textcolor{keywordflow}{if} (!(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa996fc14aa630e53823462baf460c13f}{sensors}}))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01097}01097 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01098}01098 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01099}01099 data = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01100}01100 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga48b47844d4b0570e60aa6806faa59eae}{int\_enable}}, 1, \&data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01101}01101 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01102}01102 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6a392b7ecae843c734db3d832f11af49}{fifo\_en}}, 1, \&data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01103}01103 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01104}01104 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga12505a7d8cd7c976e5571f27a6160d23}{user\_ctrl}}, 1, \&data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01105}01105 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01106}01106 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01107}01107 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4783ed8aa79a3b5de798963819997c38}{dmp\_on}}) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01108}01108 data = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaeae2cc64314ad05f3a93d2358a2369db}{BIT\_FIFO\_RST}} | \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga37d5ceb74c3568e4bab6dcdd0afaa95b}{BIT\_DMP\_RST}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01109}01109 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga12505a7d8cd7c976e5571f27a6160d23}{user\_ctrl}}, 1, \&data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01110}01110 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01111}01111 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gae36aca5baf9b6b7d74992aef00686d67}{delay\_ms}}(50);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01112}01112 data = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga02c3e9ddd63128f1c3cf50bf1e9b5fe6}{BIT\_DMP\_EN}} | \mbox{\hyperlink{group___d_r_i_v_e_r_s_gae3c4a18accb84992faaf2534a84a147c}{BIT\_FIFO\_EN}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01113}01113 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa996fc14aa630e53823462baf460c13f}{sensors}} \& \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga7fc9c1dbdcb2ac8cc2a4128a5799482a}{INV\_XYZ\_COMPASS}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01114}01114 data |= \mbox{\hyperlink{group___d_r_i_v_e_r_s_gabcdedbd3098140aa14ad17bcaca8e176}{BIT\_AUX\_IF\_EN}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01115}01115 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga12505a7d8cd7c976e5571f27a6160d23}{user\_ctrl}}, 1, \&data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01116}01116 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01117}01117 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa366c36057f31e6e0d4cf2ca4a1ef52f}{int\_enable}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01118}01118 data = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4dc5309ed09fc683d8e5a247feaad69d}{BIT\_DMP\_INT\_EN}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01119}01119 \textcolor{keywordflow}{else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01120}01120 data = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01121}01121 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga48b47844d4b0570e60aa6806faa59eae}{int\_enable}}, 1, \&data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01122}01122 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01123}01123 data = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01124}01124 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6a392b7ecae843c734db3d832f11af49}{fifo\_en}}, 1, \&data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01125}01125 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01126}01126 \} \textcolor{keywordflow}{else} \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01127}01127 data = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaeae2cc64314ad05f3a93d2358a2369db}{BIT\_FIFO\_RST}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01128}01128 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga12505a7d8cd7c976e5571f27a6160d23}{user\_ctrl}}, 1, \&data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01129}01129 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01130}01130 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6d3a962d6435644c7ea68e7d65934636}{bypass\_mode}} || !(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa996fc14aa630e53823462baf460c13f}{sensors}} \& \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga7fc9c1dbdcb2ac8cc2a4128a5799482a}{INV\_XYZ\_COMPASS}}))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01131}01131 data = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gae3c4a18accb84992faaf2534a84a147c}{BIT\_FIFO\_EN}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01132}01132 \textcolor{keywordflow}{else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01133}01133 data = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gae3c4a18accb84992faaf2534a84a147c}{BIT\_FIFO\_EN}} | \mbox{\hyperlink{group___d_r_i_v_e_r_s_gabcdedbd3098140aa14ad17bcaca8e176}{BIT\_AUX\_IF\_EN}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01134}01134 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga12505a7d8cd7c976e5571f27a6160d23}{user\_ctrl}}, 1, \&data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01135}01135 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01136}01136 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gae36aca5baf9b6b7d74992aef00686d67}{delay\_ms}}(50);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01137}01137 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa366c36057f31e6e0d4cf2ca4a1ef52f}{int\_enable}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01138}01138 data = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga45eec9dbc46778c356703dcf90b9e0c3}{BIT\_DATA\_RDY\_EN}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01139}01139 \textcolor{keywordflow}{else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01140}01140 data = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01141}01141 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga48b47844d4b0570e60aa6806faa59eae}{int\_enable}}, 1, \&data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01142}01142 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01143}01143 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6a392b7ecae843c734db3d832f11af49}{fifo\_en}}, 1, \&\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga88143c31b894bcd819c0e49b0ff267aa}{fifo\_enable}}))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01144}01144 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01145}01145 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01146}01146 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01147}01147 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01148}01148 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01154}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf973c32c73ba912ff512aab948fc31ca}{01154}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf973c32c73ba912ff512aab948fc31ca}{mpu\_get\_gyro\_fsr}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} *fsr)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01155}01155 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01156}01156 \textcolor{keywordflow}{switch} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab45a727aeee17380828a3e20ccb375c2}{gyro\_fsr}}) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01157}01157 \textcolor{keywordflow}{case} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga83acdc0eb37e8bfe0c2ae2348ded0a90a5b8251a49db5cb8a676076b0b308ae35}{INV\_FSR\_250DPS}}:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01158}01158 fsr[0] = 250;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01159}01159 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01160}01160 \textcolor{keywordflow}{case} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga83acdc0eb37e8bfe0c2ae2348ded0a90a50901470ff389927fd010081e2b8fd09}{INV\_FSR\_500DPS}}:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01161}01161 fsr[0] = 500;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01162}01162 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01163}01163 \textcolor{keywordflow}{case} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga83acdc0eb37e8bfe0c2ae2348ded0a90aee922e0daa4fbb404c3db6c49d897a13}{INV\_FSR\_1000DPS}}:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01164}01164 fsr[0] = 1000;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01165}01165 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01166}01166 \textcolor{keywordflow}{case} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga83acdc0eb37e8bfe0c2ae2348ded0a90ac0c37efc1c8acd6f70c0c5a768e5b8be}{INV\_FSR\_2000DPS}}:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01167}01167 fsr[0] = 2000;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01168}01168 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01169}01169 \textcolor{keywordflow}{default}:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01170}01170 fsr[0] = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01171}01171 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01172}01172 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01173}01173 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01174}01174 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01175}01175 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01181}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gad09e6031c8677adc0b8a39b6deea8e27}{01181}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gad09e6031c8677adc0b8a39b6deea8e27}{mpu\_set\_gyro\_fsr}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} fsr)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01182}01182 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01183}01183 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} data;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01184}01184 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01185}01185 \textcolor{keywordflow}{if} (!(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa996fc14aa630e53823462baf460c13f}{sensors}}))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01186}01186 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01187}01187 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01188}01188 \textcolor{keywordflow}{switch} (fsr) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01189}01189 \textcolor{keywordflow}{case} 250:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01190}01190 data = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga83acdc0eb37e8bfe0c2ae2348ded0a90a5b8251a49db5cb8a676076b0b308ae35}{INV\_FSR\_250DPS}} << 3;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01191}01191 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01192}01192 \textcolor{keywordflow}{case} 500:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01193}01193 data = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga83acdc0eb37e8bfe0c2ae2348ded0a90a50901470ff389927fd010081e2b8fd09}{INV\_FSR\_500DPS}} << 3;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01194}01194 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01195}01195 \textcolor{keywordflow}{case} 1000:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01196}01196 data = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga83acdc0eb37e8bfe0c2ae2348ded0a90aee922e0daa4fbb404c3db6c49d897a13}{INV\_FSR\_1000DPS}} << 3;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01197}01197 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01198}01198 \textcolor{keywordflow}{case} 2000:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01199}01199 data = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga83acdc0eb37e8bfe0c2ae2348ded0a90ac0c37efc1c8acd6f70c0c5a768e5b8be}{INV\_FSR\_2000DPS}} << 3;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01200}01200 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01201}01201 \textcolor{keywordflow}{default}:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01202}01202 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01203}01203 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01204}01204 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01205}01205 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab45a727aeee17380828a3e20ccb375c2}{gyro\_fsr}} == (data >> 3))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01206}01206 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01207}01207 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gada0b973f74cc874552f079fd58c435a6}{gyro\_cfg}}, 1, \&data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01208}01208 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01209}01209 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab45a727aeee17380828a3e20ccb375c2}{gyro\_fsr}} = data >> 3;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01210}01210 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01211}01211 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01212}01212 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01218}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab6087a15ee23db23b6aec41590329a60}{01218}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gab6087a15ee23db23b6aec41590329a60}{mpu\_get\_accel\_fsr}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} *fsr)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01219}01219 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01220}01220 \textcolor{keywordflow}{switch} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf66873be1446ed552812e32d40eced61}{accel\_fsr}}) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01221}01221 \textcolor{keywordflow}{case} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ggaec8501b935143099e5f729dee221a81eae27c6f69463dab7de81fac0c51ff8aa7}{INV\_FSR\_2G}}:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01222}01222 fsr[0] = 2;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01223}01223 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01224}01224 \textcolor{keywordflow}{case} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ggaec8501b935143099e5f729dee221a81eaa91e3a89d0bbd01149fe71148595be6d}{INV\_FSR\_4G}}:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01225}01225 fsr[0] = 4;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01226}01226 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01227}01227 \textcolor{keywordflow}{case} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ggaec8501b935143099e5f729dee221a81ea0a40371bdda397d234c53d0ee2f3be8b}{INV\_FSR\_8G}}:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01228}01228 fsr[0] = 8;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01229}01229 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01230}01230 \textcolor{keywordflow}{case} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ggaec8501b935143099e5f729dee221a81ea6712e8563c97c11b458ef721d4f5f9d5}{INV\_FSR\_16G}}:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01231}01231 fsr[0] = 16;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01232}01232 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01233}01233 \textcolor{keywordflow}{default}:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01234}01234 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01235}01235 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01236}01236 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab72e3cead391dee41f28e041282d743f}{accel\_half}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01237}01237 fsr[0] <<= 1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01238}01238 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01239}01239 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01240}01240 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01246}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2713a96af104cfb2ae8e0ed4c3718119}{01246}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2713a96af104cfb2ae8e0ed4c3718119}{mpu\_set\_accel\_fsr}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} fsr)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01247}01247 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01248}01248 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} data;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01249}01249 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01250}01250 \textcolor{keywordflow}{if} (!(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa996fc14aa630e53823462baf460c13f}{sensors}}))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01251}01251 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01252}01252 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01253}01253 \textcolor{keywordflow}{switch} (fsr) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01254}01254 \textcolor{keywordflow}{case} 2:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01255}01255 data = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ggaec8501b935143099e5f729dee221a81eae27c6f69463dab7de81fac0c51ff8aa7}{INV\_FSR\_2G}} << 3;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01256}01256 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01257}01257 \textcolor{keywordflow}{case} 4:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01258}01258 data = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ggaec8501b935143099e5f729dee221a81eaa91e3a89d0bbd01149fe71148595be6d}{INV\_FSR\_4G}} << 3;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01259}01259 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01260}01260 \textcolor{keywordflow}{case} 8:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01261}01261 data = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ggaec8501b935143099e5f729dee221a81ea0a40371bdda397d234c53d0ee2f3be8b}{INV\_FSR\_8G}} << 3;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01262}01262 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01263}01263 \textcolor{keywordflow}{case} 16:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01264}01264 data = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ggaec8501b935143099e5f729dee221a81ea6712e8563c97c11b458ef721d4f5f9d5}{INV\_FSR\_16G}} << 3;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01265}01265 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01266}01266 \textcolor{keywordflow}{default}:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01267}01267 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01268}01268 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01269}01269 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01270}01270 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf66873be1446ed552812e32d40eced61}{accel\_fsr}} == (data >> 3))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01271}01271 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01272}01272 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gae93a446c54cc00bc7f11209d7af0025e}{accel\_cfg}}, 1, \&data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01273}01273 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01274}01274 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf66873be1446ed552812e32d40eced61}{accel\_fsr}} = data >> 3;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01275}01275 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01276}01276 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01277}01277 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01283}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa95c7e216dcb2d888e9796001ca555f8}{01283}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa95c7e216dcb2d888e9796001ca555f8}{mpu\_get\_lpf}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} *lpf)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01284}01284 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01285}01285 \textcolor{keywordflow}{switch} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga16ec8ca8298f62ac01419775377270fb}{lpf}}) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01286}01286 \textcolor{keywordflow}{case} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9ab58e52e0b6be4cbaf0c7f32705a9fcec}{INV\_FILTER\_188HZ}}:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01287}01287 lpf[0] = 188;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01288}01288 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01289}01289 \textcolor{keywordflow}{case} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9a0f288da0c97b325a6cb57f1223f0cf98}{INV\_FILTER\_98HZ}}:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01290}01290 lpf[0] = 98;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01291}01291 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01292}01292 \textcolor{keywordflow}{case} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9a995b18a52a5bd919aa9c1411a2292110}{INV\_FILTER\_42HZ}}:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01293}01293 lpf[0] = 42;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01294}01294 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01295}01295 \textcolor{keywordflow}{case} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9aebecb86604e475ed8e2cb68340010ff1}{INV\_FILTER\_20HZ}}:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01296}01296 lpf[0] = 20;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01297}01297 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01298}01298 \textcolor{keywordflow}{case} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9a327619f406c6b2f6a221793881013508}{INV\_FILTER\_10HZ}}:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01299}01299 lpf[0] = 10;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01300}01300 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01301}01301 \textcolor{keywordflow}{case} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9abdaaf85666fd6a490ee01dcd8a315678}{INV\_FILTER\_5HZ}}:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01302}01302 lpf[0] = 5;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01303}01303 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01304}01304 \textcolor{keywordflow}{case} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9a9f0263fbbdccd3c5a18fcb65be278d24}{INV\_FILTER\_256HZ\_NOLPF2}}:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01305}01305 \textcolor{keywordflow}{case} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9a76de97a6c2f8eb3c5d1a73d717513f5d}{INV\_FILTER\_2100HZ\_NOLPF}}:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01306}01306 \textcolor{keywordflow}{default}:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01307}01307 lpf[0] = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01308}01308 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01309}01309 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01310}01310 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01311}01311 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01312}01312 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01319}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5661a9dee25152166769910767a2a93d}{01319}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5661a9dee25152166769910767a2a93d}{mpu\_set\_lpf}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} lpf)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01320}01320 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01321}01321 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} data;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01322}01322 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01323}01323 \textcolor{keywordflow}{if} (!(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa996fc14aa630e53823462baf460c13f}{sensors}}))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01324}01324 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01325}01325 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01326}01326 \textcolor{keywordflow}{if} (lpf >= 188)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01327}01327 data = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9ab58e52e0b6be4cbaf0c7f32705a9fcec}{INV\_FILTER\_188HZ}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01328}01328 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (lpf >= 98)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01329}01329 data = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9a0f288da0c97b325a6cb57f1223f0cf98}{INV\_FILTER\_98HZ}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01330}01330 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (lpf >= 42)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01331}01331 data = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9a995b18a52a5bd919aa9c1411a2292110}{INV\_FILTER\_42HZ}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01332}01332 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (lpf >= 20)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01333}01333 data = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9aebecb86604e475ed8e2cb68340010ff1}{INV\_FILTER\_20HZ}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01334}01334 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (lpf >= 10)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01335}01335 data = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9a327619f406c6b2f6a221793881013508}{INV\_FILTER\_10HZ}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01336}01336 \textcolor{keywordflow}{else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01337}01337 data = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9abdaaf85666fd6a490ee01dcd8a315678}{INV\_FILTER\_5HZ}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01338}01338 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01339}01339 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga16ec8ca8298f62ac01419775377270fb}{lpf}} == data)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01340}01340 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01341}01341 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga22eeac0bd77e7d99b3e15dda52f1bd08}{lpf}}, 1, \&data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01342}01342 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01343}01343 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga16ec8ca8298f62ac01419775377270fb}{lpf}} = data;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01344}01344 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01345}01345 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01346}01346 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01352}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2487dd551b701c1c7ed4d6335f02b2f1}{01352}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2487dd551b701c1c7ed4d6335f02b2f1}{mpu\_get\_sample\_rate}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} *rate)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01353}01353 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01354}01354 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4783ed8aa79a3b5de798963819997c38}{dmp\_on}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01355}01355 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01356}01356 \textcolor{keywordflow}{else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01357}01357 rate[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2660470fcf7b53e2e832a397cbe6c354}{sample\_rate}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01358}01358 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01359}01359 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01360}01360 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01367}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga0144d666a67a82888b8580002afe8b55}{01367}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga0144d666a67a82888b8580002afe8b55}{mpu\_set\_sample\_rate}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} rate)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01368}01368 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01369}01369 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} data;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01370}01370 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01371}01371 \textcolor{keywordflow}{if} (!(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa996fc14aa630e53823462baf460c13f}{sensors}}))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01372}01372 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01373}01373 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01374}01374 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4783ed8aa79a3b5de798963819997c38}{dmp\_on}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01375}01375 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01376}01376 \textcolor{keywordflow}{else} \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01377}01377 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga33e138d8a49744eb9b4ea0e9086cef1c}{lp\_accel\_mode}}) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01378}01378 \textcolor{keywordflow}{if} (rate \&\& (rate <= 40)) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01379}01379 \textcolor{comment}{/* Just stay in low-\/power accel mode. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01380}01380 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3a4fea75686ab7d2e68634e81ccac04c}{mpu\_lp\_accel\_mode}}(rate);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01381}01381 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01382}01382 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01383}01383 \textcolor{comment}{/* Requested rate exceeds the allowed frequencies in LP accel mode,}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01384}01384 \textcolor{comment}{ * switch back to full-\/power mode.}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01385}01385 \textcolor{comment}{ */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01386}01386 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3a4fea75686ab7d2e68634e81ccac04c}{mpu\_lp\_accel\_mode}}(0);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01387}01387 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01388}01388 \textcolor{keywordflow}{if} (rate < 4)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01389}01389 rate = 4;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01390}01390 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (rate > 1000)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01391}01391 rate = 1000;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01392}01392 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01393}01393 data = 1000 / rate -\/ 1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01394}01394 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga27dd9db31f16ca170520b3009255e6d0}{rate\_div}}, 1, \&data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01395}01395 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01396}01396 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01397}01397 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2660470fcf7b53e2e832a397cbe6c354}{sample\_rate}} = 1000 / (1 + data);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01398}01398 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01399}01399 \textcolor{preprocessor}{\#ifdef AK89xx\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01400}01400 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga78da3828de0ef9d080c4d03e7bc45e7b}{mpu\_set\_compass\_sample\_rate}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac6afabdc09a49a433ee19d8a9486056d}{min}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.compass\_sample\_rate, MAX\_COMPASS\_SAMPLE\_RATE));} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01401}01401 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01402}01402 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01403}01403 \textcolor{comment}{/* Automatically set LPF to 1/2 sampling rate. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01404}01404 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5661a9dee25152166769910767a2a93d}{mpu\_set\_lpf}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2660470fcf7b53e2e832a397cbe6c354}{sample\_rate}} >> 1);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01405}01405 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01406}01406 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01407}01407 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01408}01408 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01414}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab5a45cd7783f6937788c0decb0b18b16}{01414}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gab5a45cd7783f6937788c0decb0b18b16}{mpu\_get\_compass\_sample\_rate}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} *rate)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01415}01415 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01416}01416 \textcolor{preprocessor}{\#ifdef AK89xx\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01417}01417 rate[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.compass\_sample\_rate;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01418}01418 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01419}01419 \textcolor{preprocessor}{\#else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01420}01420 rate[0] = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01421}01421 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01422}01422 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01423}01423 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01424}01424 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01436}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga78da3828de0ef9d080c4d03e7bc45e7b}{01436}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga78da3828de0ef9d080c4d03e7bc45e7b}{mpu\_set\_compass\_sample\_rate}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} rate)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01437}01437 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01438}01438 \textcolor{preprocessor}{\#ifdef AK89xx\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01439}01439 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} div;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01440}01440 \textcolor{keywordflow}{if} (!rate || rate > \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2660470fcf7b53e2e832a397cbe6c354}{sample\_rate}} || rate > MAX\_COMPASS\_SAMPLE\_RATE)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01441}01441 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01442}01442 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01443}01443 div = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2660470fcf7b53e2e832a397cbe6c354}{sample\_rate}} / rate -\/ 1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01444}01444 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>s4\_ctrl, 1, \&div))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01445}01445 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01446}01446 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.compass\_sample\_rate = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2660470fcf7b53e2e832a397cbe6c354}{sample\_rate}} / (div + 1);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01447}01447 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01448}01448 \textcolor{preprocessor}{\#else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01449}01449 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01450}01450 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01451}01451 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01452}01452 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01458}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga023c0cc94aa8f162dc33b15048a49421}{01458}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga023c0cc94aa8f162dc33b15048a49421}{mpu\_get\_gyro\_sens}}(\textcolor{keywordtype}{float} *sens)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01459}01459 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01460}01460 \textcolor{keywordflow}{switch} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab45a727aeee17380828a3e20ccb375c2}{gyro\_fsr}}) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01461}01461 \textcolor{keywordflow}{case} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga83acdc0eb37e8bfe0c2ae2348ded0a90a5b8251a49db5cb8a676076b0b308ae35}{INV\_FSR\_250DPS}}:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01462}01462 sens[0] = 131.f;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01463}01463 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01464}01464 \textcolor{keywordflow}{case} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga83acdc0eb37e8bfe0c2ae2348ded0a90a50901470ff389927fd010081e2b8fd09}{INV\_FSR\_500DPS}}:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01465}01465 sens[0] = 65.5f;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01466}01466 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01467}01467 \textcolor{keywordflow}{case} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga83acdc0eb37e8bfe0c2ae2348ded0a90aee922e0daa4fbb404c3db6c49d897a13}{INV\_FSR\_1000DPS}}:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01468}01468 sens[0] = 32.8f;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01469}01469 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01470}01470 \textcolor{keywordflow}{case} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga83acdc0eb37e8bfe0c2ae2348ded0a90ac0c37efc1c8acd6f70c0c5a768e5b8be}{INV\_FSR\_2000DPS}}:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01471}01471 sens[0] = 16.4f;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01472}01472 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01473}01473 \textcolor{keywordflow}{default}:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01474}01474 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01475}01475 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01476}01476 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01477}01477 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01478}01478 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01484}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga620408949052b96e856cad920f856583}{01484}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga620408949052b96e856cad920f856583}{mpu\_get\_accel\_sens}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} *sens)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01485}01485 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01486}01486 \textcolor{keywordflow}{switch} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf66873be1446ed552812e32d40eced61}{accel\_fsr}}) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01487}01487 \textcolor{keywordflow}{case} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ggaec8501b935143099e5f729dee221a81eae27c6f69463dab7de81fac0c51ff8aa7}{INV\_FSR\_2G}}:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01488}01488 sens[0] = 16384;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01489}01489 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01490}01490 \textcolor{keywordflow}{case} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ggaec8501b935143099e5f729dee221a81eaa91e3a89d0bbd01149fe71148595be6d}{INV\_FSR\_4G}}:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01491}01491 sens[0] = 8092;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01492}01492 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01493}01493 \textcolor{keywordflow}{case} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ggaec8501b935143099e5f729dee221a81ea0a40371bdda397d234c53d0ee2f3be8b}{INV\_FSR\_8G}}:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01494}01494 sens[0] = 4096;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01495}01495 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01496}01496 \textcolor{keywordflow}{case} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ggaec8501b935143099e5f729dee221a81ea6712e8563c97c11b458ef721d4f5f9d5}{INV\_FSR\_16G}}:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01497}01497 sens[0] = 2048;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01498}01498 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01499}01499 \textcolor{keywordflow}{default}:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01500}01500 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01501}01501 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01502}01502 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab72e3cead391dee41f28e041282d743f}{accel\_half}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01503}01503 sens[0] >>= 1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01504}01504 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01505}01505 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01506}01506 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01516}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga093f11eb10b2639a4b9fe344ea348c54}{01516}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga093f11eb10b2639a4b9fe344ea348c54}{mpu\_get\_fifo\_config}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} *sensors)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01517}01517 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01518}01518 sensors[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga88143c31b894bcd819c0e49b0ff267aa}{fifo\_enable}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01519}01519 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01520}01520 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01521}01521 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01531}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gababbdda287e1f19323489f90a0889dd7}{01531}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gababbdda287e1f19323489f90a0889dd7}{mpu\_configure\_fifo}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} sensors)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01532}01532 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01533}01533 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} prev;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01534}01534 \textcolor{keywordtype}{int} result = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01535}01535 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01536}01536 \textcolor{comment}{/* Compass data isn't going into the FIFO. Stop trying. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01537}01537 sensors \&= \string~INV\_XYZ\_COMPASS;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01538}01538 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01539}01539 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4783ed8aa79a3b5de798963819997c38}{dmp\_on}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01540}01540 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01541}01541 \textcolor{keywordflow}{else} \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01542}01542 \textcolor{keywordflow}{if} (!(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa996fc14aa630e53823462baf460c13f}{sensors}}))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01543}01543 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01544}01544 prev = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga88143c31b894bcd819c0e49b0ff267aa}{fifo\_enable}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01545}01545 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga88143c31b894bcd819c0e49b0ff267aa}{fifo\_enable}} = sensors \& \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa996fc14aa630e53823462baf460c13f}{sensors}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01546}01546 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga88143c31b894bcd819c0e49b0ff267aa}{fifo\_enable}} != sensors)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01547}01547 \textcolor{comment}{/* You're not getting what you asked for. Some sensors are}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01548}01548 \textcolor{comment}{ * asleep.}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01549}01549 \textcolor{comment}{ */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01550}01550 result = -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01551}01551 \textcolor{keywordflow}{else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01552}01552 result = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01553}01553 \textcolor{keywordflow}{if} (sensors || \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga33e138d8a49744eb9b4ea0e9086cef1c}{lp\_accel\_mode}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01554}01554 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gafd5ebff6b0179e1dce0b68c2272cae07}{set\_int\_enable}}(1);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01555}01555 \textcolor{keywordflow}{else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01556}01556 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gafd5ebff6b0179e1dce0b68c2272cae07}{set\_int\_enable}}(0);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01557}01557 \textcolor{keywordflow}{if} (sensors) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01558}01558 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf23e9f57c0059be6ec57862f0584de10}{mpu\_reset\_fifo}}()) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01559}01559 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga88143c31b894bcd819c0e49b0ff267aa}{fifo\_enable}} = prev;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01560}01560 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01561}01561 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01562}01562 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01563}01563 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01564}01564 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01565}01565 \textcolor{keywordflow}{return} result;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01566}01566 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01567}01567 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01573}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaec8fa7a067988d174516bb735a4a0bc9}{01573}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaec8fa7a067988d174516bb735a4a0bc9}{mpu\_get\_power\_state}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} *power\_on)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01574}01574 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01575}01575 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa996fc14aa630e53823462baf460c13f}{sensors}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01576}01576 power\_on[0] = 1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01577}01577 \textcolor{keywordflow}{else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01578}01578 power\_on[0] = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01579}01579 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01580}01580 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01581}01581 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01592}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6e77e7cc1cf6be5e8fdf617c5b4586d1}{01592}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6e77e7cc1cf6be5e8fdf617c5b4586d1}{mpu\_set\_sensors}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} sensors)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01593}01593 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01594}01594 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} data;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01595}01595 \textcolor{preprocessor}{\#ifdef AK89xx\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01596}01596 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} user\_ctrl;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01597}01597 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01598}01598 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01599}01599 \textcolor{keywordflow}{if} (sensors \& \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3fdc30f9c0a26c2c4e2bb88921f91629}{INV\_XYZ\_GYRO}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01600}01600 data = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga75570f009627c6f4ddfb2d936d81e207a01b240917a78674d3e387110a6a8f94c}{INV\_CLK\_PLL}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01601}01601 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (sensors)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01602}01602 data = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01603}01603 \textcolor{keywordflow}{else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01604}01604 data = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1fed8bd436e9b7dfccb1cae99ca89103}{BIT\_SLEEP}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01605}01605 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa01fb0872030e8e2932f8d1d257ea86a}{pwr\_mgmt\_1}}, 1, \&data)) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01606}01606 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa996fc14aa630e53823462baf460c13f}{sensors}} = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01607}01607 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01608}01608 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01609}01609 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab7bd5165d6e62cb0d814cf3401958445}{clk\_src}} = data \& \string~BIT\_SLEEP;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01610}01610 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01611}01611 data = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01612}01612 \textcolor{keywordflow}{if} (!(sensors \& \mbox{\hyperlink{group___d_r_i_v_e_r_s_gabf02bf28541421d59f8be764f2b95407}{INV\_X\_GYRO}}))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01613}01613 data |= \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga82256fedeffe5b2443ab3ae34cf032d9}{BIT\_STBY\_XG}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01614}01614 \textcolor{keywordflow}{if} (!(sensors \& \mbox{\hyperlink{group___d_r_i_v_e_r_s_gacdd8ff833a34dba08ca2aa145eb92b44}{INV\_Y\_GYRO}}))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01615}01615 data |= \mbox{\hyperlink{group___d_r_i_v_e_r_s_gabf1c0a844906a5e887a659971a4af417}{BIT\_STBY\_YG}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01616}01616 \textcolor{keywordflow}{if} (!(sensors \& \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga50205b5cc6089b33b2561c854eb8b0fd}{INV\_Z\_GYRO}}))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01617}01617 data |= \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga30967a4efdf3c3f1e39814e72a4168b0}{BIT\_STBY\_ZG}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01618}01618 \textcolor{keywordflow}{if} (!(sensors \& \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa03f025a17ed491e70b88274e89c75c5}{INV\_XYZ\_ACCEL}}))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01619}01619 data |= \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga04a57159e34387dafe9b86b171c4654c}{BIT\_STBY\_XYZA}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01620}01620 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3e378b0c77e9529ee93ac6eba11e1031}{pwr\_mgmt\_2}}, 1, \&data)) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01621}01621 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa996fc14aa630e53823462baf460c13f}{sensors}} = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01622}01622 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01623}01623 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01624}01624 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01625}01625 \textcolor{keywordflow}{if} (sensors \&\& (sensors != \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa03f025a17ed491e70b88274e89c75c5}{INV\_XYZ\_ACCEL}}))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01626}01626 \textcolor{comment}{/* Latched interrupts only used in LP accel mode. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01627}01627 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga653cb855300bff9285ce4b8dca6a503b}{mpu\_set\_int\_latched}}(0);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01628}01628 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01629}01629 \textcolor{preprocessor}{\#ifdef AK89xx\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01630}01630 \textcolor{preprocessor}{\#ifdef AK89xx\_BYPASS}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01631}01631 \textcolor{keywordflow}{if} (sensors \& \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga7fc9c1dbdcb2ac8cc2a4128a5799482a}{INV\_XYZ\_COMPASS}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01632}01632 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga36f70f38371b48d81094d3b061233e15}{mpu\_set\_bypass}}(1);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01633}01633 \textcolor{keywordflow}{else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01634}01634 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga36f70f38371b48d81094d3b061233e15}{mpu\_set\_bypass}}(0);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01635}01635 \textcolor{preprocessor}{\#else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01636}01636 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga838d8f1c7b0d8cc83923b93bbafe1b33}{i2c\_read}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga12505a7d8cd7c976e5571f27a6160d23}{user\_ctrl}}, 1, \&user\_ctrl))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01637}01637 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01638}01638 \textcolor{comment}{/* Handle AKM power management. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01639}01639 \textcolor{keywordflow}{if} (sensors \& \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga7fc9c1dbdcb2ac8cc2a4128a5799482a}{INV\_XYZ\_COMPASS}}) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01640}01640 data = AKM\_SINGLE\_MEASUREMENT;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01641}01641 user\_ctrl |= \mbox{\hyperlink{group___d_r_i_v_e_r_s_gabcdedbd3098140aa14ad17bcaca8e176}{BIT\_AUX\_IF\_EN}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01642}01642 \} \textcolor{keywordflow}{else} \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01643}01643 data = AKM\_POWER\_DOWN;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01644}01644 user\_ctrl \&= \string~BIT\_AUX\_IF\_EN;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01645}01645 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01646}01646 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4783ed8aa79a3b5de798963819997c38}{dmp\_on}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01647}01647 user\_ctrl |= \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga02c3e9ddd63128f1c3cf50bf1e9b5fe6}{BIT\_DMP\_EN}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01648}01648 \textcolor{keywordflow}{else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01649}01649 user\_ctrl \&= \string~BIT\_DMP\_EN;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01650}01650 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>s1\_do, 1, \&data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01651}01651 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01652}01652 \textcolor{comment}{/* Enable/disable I2C master mode. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01653}01653 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga12505a7d8cd7c976e5571f27a6160d23}{user\_ctrl}}, 1, \&user\_ctrl))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01654}01654 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01655}01655 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01656}01656 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01657}01657 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01658}01658 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa996fc14aa630e53823462baf460c13f}{sensors}} = sensors;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01659}01659 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga33e138d8a49744eb9b4ea0e9086cef1c}{lp\_accel\_mode}} = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01660}01660 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gae36aca5baf9b6b7d74992aef00686d67}{delay\_ms}}(50);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01661}01661 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01662}01662 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01663}01663 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01669}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga0afd02d8c76d3278b488ef7038c26e3e}{01669}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga0afd02d8c76d3278b488ef7038c26e3e}{mpu\_get\_int\_status}}(\textcolor{keywordtype}{short} *status)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01670}01670 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01671}01671 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} tmp[2];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01672}01672 \textcolor{keywordflow}{if} (!\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa996fc14aa630e53823462baf460c13f}{sensors}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01673}01673 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01674}01674 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga838d8f1c7b0d8cc83923b93bbafe1b33}{i2c\_read}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaea6ad456241786750b3f211bc92032eb}{dmp\_int\_status}}, 2, tmp))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01675}01675 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01676}01676 status[0] = (tmp[0] << 8) | tmp[1];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01677}01677 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01678}01678 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01679}01679 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01698}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2da20453aafbbba4a0f6fb9fbdd25572}{01698}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2da20453aafbbba4a0f6fb9fbdd25572}{mpu\_read\_fifo}}(\textcolor{keywordtype}{short} *gyro, \textcolor{keywordtype}{short} *accel, \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{long} *timestamp,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01699}01699 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} *sensors, \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} *more)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01700}01700 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01701}01701 \textcolor{comment}{/* Assumes maximum packet size is gyro (6) + accel (6). */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01702}01702 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} data[\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga973c680573b37fc359fc68d0707da355}{MAX\_PACKET\_LENGTH}}];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01703}01703 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} packet\_size = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01704}01704 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} fifo\_count, index = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01705}01705 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01706}01706 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4783ed8aa79a3b5de798963819997c38}{dmp\_on}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01707}01707 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01708}01708 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01709}01709 sensors[0] = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01710}01710 \textcolor{keywordflow}{if} (!\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa996fc14aa630e53823462baf460c13f}{sensors}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01711}01711 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01712}01712 \textcolor{keywordflow}{if} (!\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga88143c31b894bcd819c0e49b0ff267aa}{fifo\_enable}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01713}01713 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01714}01714 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01715}01715 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga88143c31b894bcd819c0e49b0ff267aa}{fifo\_enable}} \& \mbox{\hyperlink{group___d_r_i_v_e_r_s_gabf02bf28541421d59f8be764f2b95407}{INV\_X\_GYRO}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01716}01716 packet\_size += 2;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01717}01717 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga88143c31b894bcd819c0e49b0ff267aa}{fifo\_enable}} \& \mbox{\hyperlink{group___d_r_i_v_e_r_s_gacdd8ff833a34dba08ca2aa145eb92b44}{INV\_Y\_GYRO}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01718}01718 packet\_size += 2;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01719}01719 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga88143c31b894bcd819c0e49b0ff267aa}{fifo\_enable}} \& \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga50205b5cc6089b33b2561c854eb8b0fd}{INV\_Z\_GYRO}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01720}01720 packet\_size += 2;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01721}01721 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga88143c31b894bcd819c0e49b0ff267aa}{fifo\_enable}} \& \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa03f025a17ed491e70b88274e89c75c5}{INV\_XYZ\_ACCEL}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01722}01722 packet\_size += 6;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01723}01723 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01724}01724 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga838d8f1c7b0d8cc83923b93bbafe1b33}{i2c\_read}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab7503974d62cf9c2d688579fcd1abd48}{fifo\_count\_h}}, 2, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01725}01725 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01726}01726 fifo\_count = (data[0] << 8) | data[1];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01727}01727 \textcolor{keywordflow}{if} (fifo\_count < packet\_size)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01728}01728 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01729}01729 \textcolor{comment}{// log\_i("{}FIFO count: \%hd\(\backslash\)n"{}, fifo\_count);}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01730}01730 \textcolor{keywordflow}{if} (fifo\_count > (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5f77e9f55285abb4d214b80281f69c1f}{max\_fifo}} >> 1)) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01731}01731 \textcolor{comment}{/* FIFO is 50\% full, better check overflow bit. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01732}01732 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga838d8f1c7b0d8cc83923b93bbafe1b33}{i2c\_read}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga837724080c34ff5a190751427febaf91}{int\_status}}, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01733}01733 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01734}01734 \textcolor{keywordflow}{if} (data[0] \& \mbox{\hyperlink{group___d_r_i_v_e_r_s_gafb9b49ce5dd973b3c29ae72680924fa7}{BIT\_FIFO\_OVERFLOW}}) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01735}01735 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf23e9f57c0059be6ec57862f0584de10}{mpu\_reset\_fifo}}();} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01736}01736 \textcolor{keywordflow}{return} -\/2;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01737}01737 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01738}01738 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01739}01739 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3e6b6bc6d1cd2956353a31bfadd3c332}{get\_ms}}((\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{long}*)timestamp);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01740}01740 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01741}01741 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga838d8f1c7b0d8cc83923b93bbafe1b33}{i2c\_read}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb6763dc5f368ea01ef7c733cea9dab4}{fifo\_r\_w}}, packet\_size, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01742}01742 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01743}01743 more[0] = fifo\_count / packet\_size -\/ 1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01744}01744 sensors[0] = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01745}01745 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01746}01746 \textcolor{keywordflow}{if} ((index != packet\_size) \&\& \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga88143c31b894bcd819c0e49b0ff267aa}{fifo\_enable}} \& \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa03f025a17ed491e70b88274e89c75c5}{INV\_XYZ\_ACCEL}}) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01747}01747 accel[0] = (data[index+0] << 8) | data[index+1];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01748}01748 accel[1] = (data[index+2] << 8) | data[index+3];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01749}01749 accel[2] = (data[index+4] << 8) | data[index+5];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01750}01750 sensors[0] |= \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa03f025a17ed491e70b88274e89c75c5}{INV\_XYZ\_ACCEL}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01751}01751 index += 6;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01752}01752 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01753}01753 \textcolor{keywordflow}{if} ((index != packet\_size) \&\& \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga88143c31b894bcd819c0e49b0ff267aa}{fifo\_enable}} \& \mbox{\hyperlink{group___d_r_i_v_e_r_s_gabf02bf28541421d59f8be764f2b95407}{INV\_X\_GYRO}}) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01754}01754 gyro[0] = (data[index+0] << 8) | data[index+1];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01755}01755 sensors[0] |= \mbox{\hyperlink{group___d_r_i_v_e_r_s_gabf02bf28541421d59f8be764f2b95407}{INV\_X\_GYRO}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01756}01756 index += 2;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01757}01757 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01758}01758 \textcolor{keywordflow}{if} ((index != packet\_size) \&\& \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga88143c31b894bcd819c0e49b0ff267aa}{fifo\_enable}} \& \mbox{\hyperlink{group___d_r_i_v_e_r_s_gacdd8ff833a34dba08ca2aa145eb92b44}{INV\_Y\_GYRO}}) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01759}01759 gyro[1] = (data[index+0] << 8) | data[index+1];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01760}01760 sensors[0] |= \mbox{\hyperlink{group___d_r_i_v_e_r_s_gacdd8ff833a34dba08ca2aa145eb92b44}{INV\_Y\_GYRO}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01761}01761 index += 2;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01762}01762 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01763}01763 \textcolor{keywordflow}{if} ((index != packet\_size) \&\& \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga88143c31b894bcd819c0e49b0ff267aa}{fifo\_enable}} \& \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga50205b5cc6089b33b2561c854eb8b0fd}{INV\_Z\_GYRO}}) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01764}01764 gyro[2] = (data[index+0] << 8) | data[index+1];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01765}01765 sensors[0] |= \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga50205b5cc6089b33b2561c854eb8b0fd}{INV\_Z\_GYRO}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01766}01766 index += 2;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01767}01767 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01768}01768 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01769}01769 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01770}01770 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01771}01771 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01779}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga13593044949b460e9f571eb57e9a0788}{01779}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga13593044949b460e9f571eb57e9a0788}{mpu\_read\_fifo\_stream}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} length, \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} *data,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01780}01780 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} *more)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01781}01781 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01782}01782 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} tmp[2];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01783}01783 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} fifo\_count;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01784}01784 \textcolor{keywordflow}{if} (!\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4783ed8aa79a3b5de798963819997c38}{dmp\_on}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01785}01785 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01786}01786 \textcolor{keywordflow}{if} (!\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa996fc14aa630e53823462baf460c13f}{sensors}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01787}01787 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01788}01788 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01789}01789 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga838d8f1c7b0d8cc83923b93bbafe1b33}{i2c\_read}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab7503974d62cf9c2d688579fcd1abd48}{fifo\_count\_h}}, 2, tmp))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01790}01790 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01791}01791 fifo\_count = (tmp[0] << 8) | tmp[1];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01792}01792 \textcolor{keywordflow}{if} (fifo\_count < length) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01793}01793 more[0] = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01794}01794 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01795}01795 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01796}01796 \textcolor{keywordflow}{if} (fifo\_count > (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5f77e9f55285abb4d214b80281f69c1f}{max\_fifo}} >> 1)) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01797}01797 \textcolor{comment}{/* FIFO is 50\% full, better check overflow bit. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01798}01798 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga838d8f1c7b0d8cc83923b93bbafe1b33}{i2c\_read}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga837724080c34ff5a190751427febaf91}{int\_status}}, 1, tmp))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01799}01799 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01800}01800 \textcolor{keywordflow}{if} (tmp[0] \& \mbox{\hyperlink{group___d_r_i_v_e_r_s_gafb9b49ce5dd973b3c29ae72680924fa7}{BIT\_FIFO\_OVERFLOW}}) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01801}01801 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf23e9f57c0059be6ec57862f0584de10}{mpu\_reset\_fifo}}();} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01802}01802 \textcolor{keywordflow}{return} -\/2;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01803}01803 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01804}01804 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01805}01805 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01806}01806 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga838d8f1c7b0d8cc83923b93bbafe1b33}{i2c\_read}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb6763dc5f368ea01ef7c733cea9dab4}{fifo\_r\_w}}, length, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01807}01807 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01808}01808 more[0] = fifo\_count / length -\/ 1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01809}01809 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01810}01810 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01811}01811 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01817}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga36f70f38371b48d81094d3b061233e15}{01817}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga36f70f38371b48d81094d3b061233e15}{mpu\_set\_bypass}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} bypass\_on)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01818}01818 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01819}01819 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} tmp;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01820}01820 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01821}01821 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6d3a962d6435644c7ea68e7d65934636}{bypass\_mode}} == bypass\_on)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01822}01822 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01823}01823 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01824}01824 \textcolor{keywordflow}{if} (bypass\_on) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01825}01825 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga838d8f1c7b0d8cc83923b93bbafe1b33}{i2c\_read}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga12505a7d8cd7c976e5571f27a6160d23}{user\_ctrl}}, 1, \&tmp))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01826}01826 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01827}01827 tmp \&= \string~BIT\_AUX\_IF\_EN;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01828}01828 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga12505a7d8cd7c976e5571f27a6160d23}{user\_ctrl}}, 1, \&tmp))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01829}01829 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01830}01830 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gae36aca5baf9b6b7d74992aef00686d67}{delay\_ms}}(3);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01831}01831 tmp = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gadd12a8d89e1a4c4e008b12a96dd4c75d}{BIT\_BYPASS\_EN}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01832}01832 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6f12e54ae8c7f2dd77954f3ab619bbb9}{active\_low\_int}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01833}01833 tmp |= \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8467782bedc44051c95643e303543655}{BIT\_ACTL}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01834}01834 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga55ce40fc460a62829ec149edaccffe7c}{latched\_int}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01835}01835 tmp |= \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga588b5a95724c4a68c6868faa78fd3a7f}{BIT\_LATCH\_EN}} | \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1f50796ca0363292d9ac9cc1d29d9225}{BIT\_ANY\_RD\_CLR}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01836}01836 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaae7bdbff2a1029245890b555b2d8d519}{int\_pin\_cfg}}, 1, \&tmp))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01837}01837 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01838}01838 \} \textcolor{keywordflow}{else} \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01839}01839 \textcolor{comment}{/* Enable I2C master mode if compass is being used. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01840}01840 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga838d8f1c7b0d8cc83923b93bbafe1b33}{i2c\_read}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga12505a7d8cd7c976e5571f27a6160d23}{user\_ctrl}}, 1, \&tmp))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01841}01841 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01842}01842 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa996fc14aa630e53823462baf460c13f}{sensors}} \& \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga7fc9c1dbdcb2ac8cc2a4128a5799482a}{INV\_XYZ\_COMPASS}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01843}01843 tmp |= \mbox{\hyperlink{group___d_r_i_v_e_r_s_gabcdedbd3098140aa14ad17bcaca8e176}{BIT\_AUX\_IF\_EN}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01844}01844 \textcolor{keywordflow}{else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01845}01845 tmp \&= \string~BIT\_AUX\_IF\_EN;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01846}01846 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga12505a7d8cd7c976e5571f27a6160d23}{user\_ctrl}}, 1, \&tmp))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01847}01847 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01848}01848 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gae36aca5baf9b6b7d74992aef00686d67}{delay\_ms}}(3);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01849}01849 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6f12e54ae8c7f2dd77954f3ab619bbb9}{active\_low\_int}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01850}01850 tmp = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8467782bedc44051c95643e303543655}{BIT\_ACTL}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01851}01851 \textcolor{keywordflow}{else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01852}01852 tmp = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01853}01853 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga55ce40fc460a62829ec149edaccffe7c}{latched\_int}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01854}01854 tmp |= \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga588b5a95724c4a68c6868faa78fd3a7f}{BIT\_LATCH\_EN}} | \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1f50796ca0363292d9ac9cc1d29d9225}{BIT\_ANY\_RD\_CLR}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01855}01855 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaae7bdbff2a1029245890b555b2d8d519}{int\_pin\_cfg}}, 1, \&tmp))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01856}01856 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01857}01857 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01858}01858 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6d3a962d6435644c7ea68e7d65934636}{bypass\_mode}} = bypass\_on;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01859}01859 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01860}01860 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01861}01861 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01867}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacc92fb1489ef32a04bcb6b0ebde4d657}{01867}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gacc92fb1489ef32a04bcb6b0ebde4d657}{mpu\_set\_int\_level}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} active\_low)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01868}01868 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01869}01869 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6f12e54ae8c7f2dd77954f3ab619bbb9}{active\_low\_int}} = active\_low;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01870}01870 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01871}01871 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01872}01872 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01879}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga653cb855300bff9285ce4b8dca6a503b}{01879}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga653cb855300bff9285ce4b8dca6a503b}{mpu\_set\_int\_latched}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} enable)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01880}01880 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01881}01881 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} tmp;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01882}01882 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga55ce40fc460a62829ec149edaccffe7c}{latched\_int}} == enable)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01883}01883 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01884}01884 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01885}01885 \textcolor{keywordflow}{if} (enable)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01886}01886 tmp = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga588b5a95724c4a68c6868faa78fd3a7f}{BIT\_LATCH\_EN}} | \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1f50796ca0363292d9ac9cc1d29d9225}{BIT\_ANY\_RD\_CLR}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01887}01887 \textcolor{keywordflow}{else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01888}01888 tmp = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01889}01889 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6d3a962d6435644c7ea68e7d65934636}{bypass\_mode}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01890}01890 tmp |= \mbox{\hyperlink{group___d_r_i_v_e_r_s_gadd12a8d89e1a4c4e008b12a96dd4c75d}{BIT\_BYPASS\_EN}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01891}01891 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6f12e54ae8c7f2dd77954f3ab619bbb9}{active\_low\_int}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01892}01892 tmp |= \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8467782bedc44051c95643e303543655}{BIT\_ACTL}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01893}01893 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaae7bdbff2a1029245890b555b2d8d519}{int\_pin\_cfg}}, 1, \&tmp))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01894}01894 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01895}01895 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga55ce40fc460a62829ec149edaccffe7c}{latched\_int}} = enable;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01896}01896 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01897}01897 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01898}01898 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01899}01899 \textcolor{preprocessor}{\#ifdef MPU6050}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01900}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab7ebbe13328466605a20f6ce1a106de8}{01900}} \textcolor{keyword}{static} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gab7ebbe13328466605a20f6ce1a106de8}{get\_accel\_prod\_shift}}(\textcolor{keywordtype}{float} *st\_shift)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01901}01901 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01902}01902 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} tmp[4], shift\_code[3], ii;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01903}01903 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01904}01904 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga838d8f1c7b0d8cc83923b93bbafe1b33}{i2c\_read}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, 0x0D, 4, tmp))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01905}01905 \textcolor{keywordflow}{return} 0x07;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01906}01906 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01907}01907 shift\_code[0] = ((tmp[0] \& 0xE0) >> 3) | ((tmp[3] \& 0x30) >> 4);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01908}01908 shift\_code[1] = ((tmp[1] \& 0xE0) >> 3) | ((tmp[3] \& 0x0C) >> 2);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01909}01909 shift\_code[2] = ((tmp[2] \& 0xE0) >> 3) | (tmp[3] \& 0x03);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01910}01910 \textcolor{keywordflow}{for} (ii = 0; ii < 3; ii++) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01911}01911 \textcolor{keywordflow}{if} (!shift\_code[ii]) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01912}01912 st\_shift[ii] = 0.f;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01913}01913 \textcolor{keywordflow}{continue};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01914}01914 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01915}01915 \textcolor{comment}{/* Equivalent to..}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01916}01916 \textcolor{comment}{ * st\_shift[ii] = 0.34f * powf(0.92f/0.34f, (shift\_code[ii]-\/1) / 30.f)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01917}01917 \textcolor{comment}{ */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01918}01918 st\_shift[ii] = 0.34f;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01919}01919 \textcolor{keywordflow}{while} (-\/-\/shift\_code[ii])} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01920}01920 st\_shift[ii] *= 1.034f;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01921}01921 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01922}01922 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01923}01923 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01924}01924 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01925}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaab48ddb3bd05cea3f0fc85a68db9934d}{01925}} \textcolor{keyword}{static} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaab48ddb3bd05cea3f0fc85a68db9934d}{accel\_self\_test}}(\textcolor{keywordtype}{long} *bias\_regular, \textcolor{keywordtype}{long} *bias\_st)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01926}01926 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01927}01927 \textcolor{keywordtype}{int} jj, result = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01928}01928 \textcolor{keywordtype}{float} st\_shift[3], st\_shift\_cust, st\_shift\_var;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01929}01929 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01930}01930 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gab7ebbe13328466605a20f6ce1a106de8}{get\_accel\_prod\_shift}}(st\_shift);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01931}01931 \textcolor{keywordflow}{for}(jj = 0; jj < 3; jj++) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01932}01932 st\_shift\_cust = labs(bias\_regular[jj] -\/ bias\_st[jj]) / 65536.f;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01933}01933 \textcolor{keywordflow}{if} (st\_shift[jj]) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01934}01934 st\_shift\_var = st\_shift\_cust / st\_shift[jj] -\/ 1.f;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01935}01935 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga95bcc5f260df5ce993730008a1dcb45a}{fabs}}(st\_shift\_var) > \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1e8f8b1ef7fb2c429e1ce7c2f9985530}{test}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga7f6071fb91426f467d9223c712560ee6}{max\_accel\_var}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01936}01936 result |= 1 << jj;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01937}01937 \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} ((st\_shift\_cust < \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1e8f8b1ef7fb2c429e1ce7c2f9985530}{test}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gae86aec181d0f1e4a29e9f9ae0735e8e1}{min\_g}}) ||} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01938}01938 (st\_shift\_cust > \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1e8f8b1ef7fb2c429e1ce7c2f9985530}{test}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga9ebd3195ac2f460f82873b9e6c36eb2c}{max\_g}}))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01939}01939 result |= 1 << jj;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01940}01940 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01941}01941 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01942}01942 \textcolor{keywordflow}{return} result;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01943}01943 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01944}01944 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01945}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga267d6f443d5be8b2a7a06aa007116f7a}{01945}} \textcolor{keyword}{static} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga267d6f443d5be8b2a7a06aa007116f7a}{gyro\_self\_test}}(\textcolor{keywordtype}{long} *bias\_regular, \textcolor{keywordtype}{long} *bias\_st)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01946}01946 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01947}01947 \textcolor{keywordtype}{int} jj, result = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01948}01948 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} tmp[3];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01949}01949 \textcolor{keywordtype}{float} st\_shift, st\_shift\_cust, st\_shift\_var;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01950}01950 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01951}01951 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga838d8f1c7b0d8cc83923b93bbafe1b33}{i2c\_read}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, 0x0D, 3, tmp))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01952}01952 \textcolor{keywordflow}{return} 0x07;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01953}01953 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01954}01954 tmp[0] \&= 0x1F;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01955}01955 tmp[1] \&= 0x1F;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01956}01956 tmp[2] \&= 0x1F;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01957}01957 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01958}01958 \textcolor{keywordflow}{for} (jj = 0; jj < 3; jj++) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01959}01959 st\_shift\_cust = labs(bias\_regular[jj] -\/ bias\_st[jj]) / 65536.f;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01960}01960 \textcolor{keywordflow}{if} (tmp[jj]) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01961}01961 st\_shift = 3275.f / \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1e8f8b1ef7fb2c429e1ce7c2f9985530}{test}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga330290a347407b0d92b1d77aa274993c}{gyro\_sens}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01962}01962 \textcolor{keywordflow}{while} (-\/-\/tmp[jj])} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01963}01963 st\_shift *= 1.046f;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01964}01964 st\_shift\_var = st\_shift\_cust / st\_shift -\/ 1.f;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01965}01965 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga95bcc5f260df5ce993730008a1dcb45a}{fabs}}(st\_shift\_var) > \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1e8f8b1ef7fb2c429e1ce7c2f9985530}{test}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3b47b72fbf8c152cb4389e3cd866ded9}{max\_gyro\_var}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01966}01966 result |= 1 << jj;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01967}01967 \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} ((st\_shift\_cust < \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1e8f8b1ef7fb2c429e1ce7c2f9985530}{test}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gafacfcf92f07cd846fb0aaf889a30c582}{min\_dps}}) ||} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01968}01968 (st\_shift\_cust > \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1e8f8b1ef7fb2c429e1ce7c2f9985530}{test}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gae588d6c0105bcd8f9144f42eee6c4835}{max\_dps}}))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01969}01969 result |= 1 << jj;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01970}01970 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01971}01971 \textcolor{keywordflow}{return} result;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01972}01972 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01973}01973 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01974}01974 \textcolor{preprocessor}{\#ifdef AK89xx\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01975}01975 \textcolor{keyword}{static} \textcolor{keywordtype}{int} compass\_self\_test(\textcolor{keywordtype}{void})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01976}01976 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01977}01977 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} tmp[6];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01978}01978 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} tries = 10;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01979}01979 \textcolor{keywordtype}{int} result = 0x07;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01980}01980 \textcolor{keywordtype}{short} data;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01981}01981 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01982}01982 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga36f70f38371b48d81094d3b061233e15}{mpu\_set\_bypass}}(1);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01983}01983 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01984}01984 tmp[0] = AKM\_POWER\_DOWN;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01985}01985 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.compass\_addr, AKM\_REG\_CNTL, 1, tmp))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01986}01986 \textcolor{keywordflow}{return} 0x07;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01987}01987 tmp[0] = AKM\_BIT\_SELF\_TEST;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01988}01988 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.compass\_addr, AKM\_REG\_ASTC, 1, tmp))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01989}01989 \textcolor{keywordflow}{goto} AKM\_restore;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01990}01990 tmp[0] = AKM\_MODE\_SELF\_TEST;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01991}01991 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.compass\_addr, AKM\_REG\_CNTL, 1, tmp))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01992}01992 \textcolor{keywordflow}{goto} AKM\_restore;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01993}01993 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01994}01994 \textcolor{keywordflow}{do} \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01995}01995 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gae36aca5baf9b6b7d74992aef00686d67}{delay\_ms}}(10);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01996}01996 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga838d8f1c7b0d8cc83923b93bbafe1b33}{i2c\_read}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.compass\_addr, AKM\_REG\_ST1, 1, tmp))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01997}01997 \textcolor{keywordflow}{goto} AKM\_restore;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01998}01998 \textcolor{keywordflow}{if} (tmp[0] \& AKM\_DATA\_READY)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l01999}01999 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02000}02000 \} \textcolor{keywordflow}{while} (tries-\/-\/);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02001}02001 \textcolor{keywordflow}{if} (!(tmp[0] \& AKM\_DATA\_READY))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02002}02002 \textcolor{keywordflow}{goto} AKM\_restore;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02003}02003 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02004}02004 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga838d8f1c7b0d8cc83923b93bbafe1b33}{i2c\_read}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.compass\_addr, AKM\_REG\_HXL, 6, tmp))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02005}02005 \textcolor{keywordflow}{goto} AKM\_restore;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02006}02006 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02007}02007 result = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02008}02008 data = (short)(tmp[1] << 8) | tmp[0];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02009}02009 \textcolor{keywordflow}{if} ((data > 100) || (data < -\/100))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02010}02010 result |= 0x01;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02011}02011 data = (short)(tmp[3] << 8) | tmp[2];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02012}02012 \textcolor{keywordflow}{if} ((data > 100) || (data < -\/100))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02013}02013 result |= 0x02;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02014}02014 data = (short)(tmp[5] << 8) | tmp[4];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02015}02015 \textcolor{keywordflow}{if} ((data > -\/300) || (data < -\/1000))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02016}02016 result |= 0x04;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02017}02017 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02018}02018 AKM\_restore:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02019}02019 tmp[0] = 0 | SUPPORTS\_AK89xx\_HIGH\_SENS;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02020}02020 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.compass\_addr, AKM\_REG\_ASTC, 1, tmp);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02021}02021 tmp[0] = SUPPORTS\_AK89xx\_HIGH\_SENS;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02022}02022 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.compass\_addr, AKM\_REG\_CNTL, 1, tmp);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02023}02023 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga36f70f38371b48d81094d3b061233e15}{mpu\_set\_bypass}}(0);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02024}02024 \textcolor{keywordflow}{return} result;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02025}02025 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02026}02026 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02027}02027 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02028}02028 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02029}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8d087842b07e9710be2267adea4b497a}{02029}} \textcolor{keyword}{static} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8d087842b07e9710be2267adea4b497a}{get\_st\_biases}}(\textcolor{keywordtype}{long} *gyro, \textcolor{keywordtype}{long} *accel, \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} hw\_test)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02030}02030 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02031}02031 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} data[\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga973c680573b37fc359fc68d0707da355}{MAX\_PACKET\_LENGTH}}];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02032}02032 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} packet\_count, ii;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02033}02033 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} fifo\_count;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02034}02034 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02035}02035 data[0] = 0x01;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02036}02036 data[1] = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02037}02037 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa01fb0872030e8e2932f8d1d257ea86a}{pwr\_mgmt\_1}}, 2, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02038}02038 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02039}02039 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gae36aca5baf9b6b7d74992aef00686d67}{delay\_ms}}(200);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02040}02040 data[0] = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02041}02041 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga48b47844d4b0570e60aa6806faa59eae}{int\_enable}}, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02042}02042 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02043}02043 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6a392b7ecae843c734db3d832f11af49}{fifo\_en}}, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02044}02044 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02045}02045 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa01fb0872030e8e2932f8d1d257ea86a}{pwr\_mgmt\_1}}, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02046}02046 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02047}02047 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2bf6dc826bcb17168013f303c904544b}{i2c\_mst}}, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02048}02048 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02049}02049 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga12505a7d8cd7c976e5571f27a6160d23}{user\_ctrl}}, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02050}02050 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02051}02051 data[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaeae2cc64314ad05f3a93d2358a2369db}{BIT\_FIFO\_RST}} | \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga37d5ceb74c3568e4bab6dcdd0afaa95b}{BIT\_DMP\_RST}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02052}02052 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga12505a7d8cd7c976e5571f27a6160d23}{user\_ctrl}}, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02053}02053 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02054}02054 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gae36aca5baf9b6b7d74992aef00686d67}{delay\_ms}}(15);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02055}02055 data[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5a1563d12b0aab5e65317621742f6f62}{test}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga09f5a9ab86d36f3b83e7f4abdea73e39}{reg\_lpf}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02056}02056 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga22eeac0bd77e7d99b3e15dda52f1bd08}{lpf}}, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02057}02057 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02058}02058 data[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5a1563d12b0aab5e65317621742f6f62}{test}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3bef0c9f009cea4cbe01d0ee91126d83}{reg\_rate\_div}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02059}02059 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga27dd9db31f16ca170520b3009255e6d0}{rate\_div}}, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02060}02060 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02061}02061 \textcolor{keywordflow}{if} (hw\_test)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02062}02062 data[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5a1563d12b0aab5e65317621742f6f62}{test}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa0dfe8b2c29358e9e045aaa8beff244d}{reg\_gyro\_fsr}} | 0xE0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02063}02063 \textcolor{keywordflow}{else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02064}02064 data[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5a1563d12b0aab5e65317621742f6f62}{test}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa0dfe8b2c29358e9e045aaa8beff244d}{reg\_gyro\_fsr}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02065}02065 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gada0b973f74cc874552f079fd58c435a6}{gyro\_cfg}}, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02066}02066 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02067}02067 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02068}02068 \textcolor{keywordflow}{if} (hw\_test)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02069}02069 data[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5a1563d12b0aab5e65317621742f6f62}{test}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3b54f67ea7f1dd47fd8aa48dda051032}{reg\_accel\_fsr}} | 0xE0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02070}02070 \textcolor{keywordflow}{else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02071}02071 data[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1e8f8b1ef7fb2c429e1ce7c2f9985530}{test}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3b54f67ea7f1dd47fd8aa48dda051032}{reg\_accel\_fsr}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02072}02072 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gae93a446c54cc00bc7f11209d7af0025e}{accel\_cfg}}, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02073}02073 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02074}02074 \textcolor{keywordflow}{if} (hw\_test)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02075}02075 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gae36aca5baf9b6b7d74992aef00686d67}{delay\_ms}}(200);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02076}02076 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02077}02077 \textcolor{comment}{/* Fill FIFO for test.wait\_ms milliseconds. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02078}02078 data[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gae3c4a18accb84992faaf2534a84a147c}{BIT\_FIFO\_EN}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02079}02079 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga12505a7d8cd7c976e5571f27a6160d23}{user\_ctrl}}, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02080}02080 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02081}02081 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02082}02082 data[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3fdc30f9c0a26c2c4e2bb88921f91629}{INV\_XYZ\_GYRO}} | \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa03f025a17ed491e70b88274e89c75c5}{INV\_XYZ\_ACCEL}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02083}02083 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6a392b7ecae843c734db3d832f11af49}{fifo\_en}}, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02084}02084 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02085}02085 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gae36aca5baf9b6b7d74992aef00686d67}{delay\_ms}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1e8f8b1ef7fb2c429e1ce7c2f9985530}{test}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf5d495939c8ca761ac2bbe7791dcd727}{wait\_ms}});} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02086}02086 data[0] = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02087}02087 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6a392b7ecae843c734db3d832f11af49}{fifo\_en}}, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02088}02088 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02089}02089 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02090}02090 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga838d8f1c7b0d8cc83923b93bbafe1b33}{i2c\_read}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab7503974d62cf9c2d688579fcd1abd48}{fifo\_count\_h}}, 2, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02091}02091 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02092}02092 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02093}02093 fifo\_count = (data[0] << 8) | data[1];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02094}02094 packet\_count = fifo\_count / \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga973c680573b37fc359fc68d0707da355}{MAX\_PACKET\_LENGTH}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02095}02095 gyro[0] = gyro[1] = gyro[2] = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02096}02096 accel[0] = accel[1] = accel[2] = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02097}02097 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02098}02098 \textcolor{keywordflow}{for} (ii = 0; ii < packet\_count; ii++) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02099}02099 \textcolor{keywordtype}{short} accel\_cur[3], gyro\_cur[3];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02100}02100 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga838d8f1c7b0d8cc83923b93bbafe1b33}{i2c\_read}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb6763dc5f368ea01ef7c733cea9dab4}{fifo\_r\_w}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga973c680573b37fc359fc68d0707da355}{MAX\_PACKET\_LENGTH}}, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02101}02101 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02102}02102 accel\_cur[0] = ((short)data[0] << 8) | data[1];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02103}02103 accel\_cur[1] = ((short)data[2] << 8) | data[3];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02104}02104 accel\_cur[2] = ((short)data[4] << 8) | data[5];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02105}02105 accel[0] += (long)accel\_cur[0];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02106}02106 accel[1] += (long)accel\_cur[1];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02107}02107 accel[2] += (long)accel\_cur[2];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02108}02108 gyro\_cur[0] = (((short)data[6] << 8) | data[7]);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02109}02109 gyro\_cur[1] = (((short)data[8] << 8) | data[9]);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02110}02110 gyro\_cur[2] = (((short)data[10] << 8) | data[11]);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02111}02111 gyro[0] += (long)gyro\_cur[0];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02112}02112 gyro[1] += (long)gyro\_cur[1];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02113}02113 gyro[2] += (long)gyro\_cur[2];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02114}02114 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02115}02115 \textcolor{preprocessor}{\#ifdef EMPL\_NO\_64BIT}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02116}02116 gyro[0] = (long)(((\textcolor{keywordtype}{float})gyro[0]*65536.f) / \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1e8f8b1ef7fb2c429e1ce7c2f9985530}{test}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga330290a347407b0d92b1d77aa274993c}{gyro\_sens}} / packet\_count);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02117}02117 gyro[1] = (long)(((\textcolor{keywordtype}{float})gyro[1]*65536.f) / \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1e8f8b1ef7fb2c429e1ce7c2f9985530}{test}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga330290a347407b0d92b1d77aa274993c}{gyro\_sens}} / packet\_count);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02118}02118 gyro[2] = (long)(((\textcolor{keywordtype}{float})gyro[2]*65536.f) / \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1e8f8b1ef7fb2c429e1ce7c2f9985530}{test}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga330290a347407b0d92b1d77aa274993c}{gyro\_sens}} / packet\_count);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02119}02119 \textcolor{keywordflow}{if} (has\_accel) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02120}02120 accel[0] = (long)(((\textcolor{keywordtype}{float})accel[0]*65536.f) / \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1e8f8b1ef7fb2c429e1ce7c2f9985530}{test}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5f602885d6a544a9039b13a0cc7ac085}{accel\_sens}} /} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02121}02121 packet\_count);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02122}02122 accel[1] = (long)(((\textcolor{keywordtype}{float})accel[1]*65536.f) / \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1e8f8b1ef7fb2c429e1ce7c2f9985530}{test}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5f602885d6a544a9039b13a0cc7ac085}{accel\_sens}} /} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02123}02123 packet\_count);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02124}02124 accel[2] = (long)(((\textcolor{keywordtype}{float})accel[2]*65536.f) / \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1e8f8b1ef7fb2c429e1ce7c2f9985530}{test}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5f602885d6a544a9039b13a0cc7ac085}{accel\_sens}} /} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02125}02125 packet\_count);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02126}02126 \textcolor{comment}{/* Don't remove gravity! */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02127}02127 accel[2] -\/= 65536L;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02128}02128 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02129}02129 \textcolor{preprocessor}{\#else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02130}02130 gyro[0] = (long)(((\textcolor{keywordtype}{long} \textcolor{keywordtype}{long})gyro[0]<<16) / \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1e8f8b1ef7fb2c429e1ce7c2f9985530}{test}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga330290a347407b0d92b1d77aa274993c}{gyro\_sens}} / packet\_count);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02131}02131 gyro[1] = (long)(((\textcolor{keywordtype}{long} \textcolor{keywordtype}{long})gyro[1]<<16) / \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1e8f8b1ef7fb2c429e1ce7c2f9985530}{test}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga330290a347407b0d92b1d77aa274993c}{gyro\_sens}} / packet\_count);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02132}02132 gyro[2] = (long)(((\textcolor{keywordtype}{long} \textcolor{keywordtype}{long})gyro[2]<<16) / \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1e8f8b1ef7fb2c429e1ce7c2f9985530}{test}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga330290a347407b0d92b1d77aa274993c}{gyro\_sens}} / packet\_count);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02133}02133 accel[0] = (long)(((\textcolor{keywordtype}{long} \textcolor{keywordtype}{long})accel[0]<<16) / \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1e8f8b1ef7fb2c429e1ce7c2f9985530}{test}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5f602885d6a544a9039b13a0cc7ac085}{accel\_sens}} /} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02134}02134 packet\_count);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02135}02135 accel[1] = (long)(((\textcolor{keywordtype}{long} \textcolor{keywordtype}{long})accel[1]<<16) / \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1e8f8b1ef7fb2c429e1ce7c2f9985530}{test}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5f602885d6a544a9039b13a0cc7ac085}{accel\_sens}} /} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02136}02136 packet\_count);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02137}02137 accel[2] = (long)(((\textcolor{keywordtype}{long} \textcolor{keywordtype}{long})accel[2]<<16) / \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1e8f8b1ef7fb2c429e1ce7c2f9985530}{test}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5f602885d6a544a9039b13a0cc7ac085}{accel\_sens}} /} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02138}02138 packet\_count);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02139}02139 \textcolor{comment}{/* Don't remove gravity! */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02140}02140 \textcolor{keywordflow}{if} (accel[2] > 0L)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02141}02141 accel[2] -\/= 65536L;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02142}02142 \textcolor{keywordflow}{else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02143}02143 accel[2] += 65536L;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02144}02144 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02145}02145 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02146}02146 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02147}02147 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02148}02148 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02169}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3773dc98eb1ba15da0091ae75abcf62f}{02169}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3773dc98eb1ba15da0091ae75abcf62f}{mpu\_run\_self\_test}}(\textcolor{keywordtype}{long} *gyro, \textcolor{keywordtype}{long} *accel)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02170}02170 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02171}02171 \textcolor{preprocessor}{\#ifdef MPU6050}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02172}02172 \textcolor{keyword}{const} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} tries = 2;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02173}02173 \textcolor{keywordtype}{long} gyro\_st[3], accel\_st[3];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02174}02174 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} accel\_result, gyro\_result;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02175}02175 \textcolor{preprocessor}{\#ifdef AK89xx\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02176}02176 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} compass\_result;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02177}02177 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02178}02178 \textcolor{keywordtype}{int} ii;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02179}02179 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02180}02180 \textcolor{keywordtype}{int} result;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02181}02181 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} accel\_fsr, fifo\_sensors, sensors\_on;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02182}02182 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} gyro\_fsr, sample\_rate, lpf;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02183}02183 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} dmp\_was\_on;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02184}02184 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02185}02185 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4783ed8aa79a3b5de798963819997c38}{dmp\_on}}) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02186}02186 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga68ed20e6c9663cd7c50469329af8715f}{mpu\_set\_dmp\_state}}(0);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02187}02187 dmp\_was\_on = 1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02188}02188 \} \textcolor{keywordflow}{else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02189}02189 dmp\_was\_on = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02190}02190 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02191}02191 \textcolor{comment}{/* Get initial settings. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02192}02192 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf973c32c73ba912ff512aab948fc31ca}{mpu\_get\_gyro\_fsr}}(\&gyro\_fsr);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02193}02193 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gab6087a15ee23db23b6aec41590329a60}{mpu\_get\_accel\_fsr}}(\&accel\_fsr);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02194}02194 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa95c7e216dcb2d888e9796001ca555f8}{mpu\_get\_lpf}}(\&lpf);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02195}02195 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2487dd551b701c1c7ed4d6335f02b2f1}{mpu\_get\_sample\_rate}}(\&sample\_rate);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02196}02196 sensors\_on = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa996fc14aa630e53823462baf460c13f}{sensors}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02197}02197 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga093f11eb10b2639a4b9fe344ea348c54}{mpu\_get\_fifo\_config}}(\&fifo\_sensors);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02198}02198 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02199}02199 \textcolor{comment}{/* For older chips, the self-\/test will be different. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02200}02200 \textcolor{preprocessor}{\#if defined MPU6050}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02201}02201 \textcolor{keywordflow}{for} (ii = 0; ii < tries; ii++)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02202}02202 \textcolor{keywordflow}{if} (!\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8d087842b07e9710be2267adea4b497a}{get\_st\_biases}}(gyro, accel, 0))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02203}02203 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02204}02204 \textcolor{keywordflow}{if} (ii == tries) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02205}02205 \textcolor{comment}{/* If we reach this point, we most likely encountered an I2C error.}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02206}02206 \textcolor{comment}{ * We'll just report an error for all three sensors.}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02207}02207 \textcolor{comment}{ */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02208}02208 result = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02209}02209 \textcolor{keywordflow}{goto} restore;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02210}02210 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02211}02211 \textcolor{keywordflow}{for} (ii = 0; ii < tries; ii++)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02212}02212 \textcolor{keywordflow}{if} (!\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8d087842b07e9710be2267adea4b497a}{get\_st\_biases}}(gyro\_st, accel\_st, 1))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02213}02213 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02214}02214 \textcolor{keywordflow}{if} (ii == tries) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02215}02215 \textcolor{comment}{/* Again, probably an I2C error. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02216}02216 result = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02217}02217 \textcolor{keywordflow}{goto} restore;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02218}02218 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02219}02219 accel\_result = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaab48ddb3bd05cea3f0fc85a68db9934d}{accel\_self\_test}}(accel, accel\_st);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02220}02220 gyro\_result = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga267d6f443d5be8b2a7a06aa007116f7a}{gyro\_self\_test}}(gyro, gyro\_st);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02221}02221 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02222}02222 result = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02223}02223 \textcolor{keywordflow}{if} (!gyro\_result)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02224}02224 result |= 0x01;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02225}02225 \textcolor{keywordflow}{if} (!accel\_result)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02226}02226 result |= 0x02;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02227}02227 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02228}02228 \textcolor{preprocessor}{\#ifdef AK89xx\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02229}02229 compass\_result = compass\_self\_test();} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02230}02230 \textcolor{keywordflow}{if} (!compass\_result)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02231}02231 result |= 0x04;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02232}02232 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02233}02233 restore:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02234}02234 \textcolor{preprocessor}{\#elif defined MPU6500}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02235}02235 \textcolor{comment}{/* For now, this function will return a "{}pass"{} result for all three sensors}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02236}02236 \textcolor{comment}{ * for compatibility with current test applications.}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02237}02237 \textcolor{comment}{ */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02238}02238 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8d087842b07e9710be2267adea4b497a}{get\_st\_biases}}(gyro, accel, 0);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02239}02239 result = 0x7;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02240}02240 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02241}02241 \textcolor{comment}{/* Set to invalid values to ensure no I2C writes are skipped. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02242}02242 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab45a727aeee17380828a3e20ccb375c2}{gyro\_fsr}} = 0xFF;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02243}02243 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf66873be1446ed552812e32d40eced61}{accel\_fsr}} = 0xFF;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02244}02244 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga16ec8ca8298f62ac01419775377270fb}{lpf}} = 0xFF;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02245}02245 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2660470fcf7b53e2e832a397cbe6c354}{sample\_rate}} = 0xFFFF;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02246}02246 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa996fc14aa630e53823462baf460c13f}{sensors}} = 0xFF;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02247}02247 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga88143c31b894bcd819c0e49b0ff267aa}{fifo\_enable}} = 0xFF;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02248}02248 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab7bd5165d6e62cb0d814cf3401958445}{clk\_src}} = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga75570f009627c6f4ddfb2d936d81e207a01b240917a78674d3e387110a6a8f94c}{INV\_CLK\_PLL}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02249}02249 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gad09e6031c8677adc0b8a39b6deea8e27}{mpu\_set\_gyro\_fsr}}(gyro\_fsr);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02250}02250 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2713a96af104cfb2ae8e0ed4c3718119}{mpu\_set\_accel\_fsr}}(accel\_fsr);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02251}02251 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5661a9dee25152166769910767a2a93d}{mpu\_set\_lpf}}(lpf);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02252}02252 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga0144d666a67a82888b8580002afe8b55}{mpu\_set\_sample\_rate}}(sample\_rate);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02253}02253 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6e77e7cc1cf6be5e8fdf617c5b4586d1}{mpu\_set\_sensors}}(sensors\_on);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02254}02254 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gababbdda287e1f19323489f90a0889dd7}{mpu\_configure\_fifo}}(fifo\_sensors);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02255}02255 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02256}02256 \textcolor{keywordflow}{if} (dmp\_was\_on)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02257}02257 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga68ed20e6c9663cd7c50469329af8715f}{mpu\_set\_dmp\_state}}(1);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02258}02258 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02259}02259 \textcolor{keywordflow}{return} result;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02260}02260 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02261}02261 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02271}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gafea59910bc3dd30ba3356b1c75213a5f}{02271}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gafea59910bc3dd30ba3356b1c75213a5f}{mpu\_write\_mem}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} mem\_addr, \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} length,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02272}02272 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} *data)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02273}02273 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02274}02274 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} tmp[2];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02275}02275 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02276}02276 \textcolor{keywordflow}{if} (!data)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02277}02277 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02278}02278 \textcolor{keywordflow}{if} (!\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa996fc14aa630e53823462baf460c13f}{sensors}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02279}02279 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02280}02280 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02281}02281 tmp[0] = (\textcolor{keywordtype}{unsigned} char)(mem\_addr >> 8);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02282}02282 tmp[1] = (\textcolor{keywordtype}{unsigned} char)(mem\_addr \& 0xFF);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02283}02283 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02284}02284 \textcolor{comment}{/* Check bank boundaries. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02285}02285 \textcolor{keywordflow}{if} (tmp[1] + length > \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaef4a2014cd6e3d5faeb8f713ee3606ed}{bank\_size}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02286}02286 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02287}02287 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02288}02288 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf1b74c33fa828ea4dc172bfbaaf47216}{bank\_sel}}, 2, tmp))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02289}02289 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02290}02290 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gae17166b43fa12a960c0eced9a3c04bf0}{mem\_r\_w}}, length, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02291}02291 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02292}02292 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02293}02293 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02294}02294 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02304}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3374bececb6743893c9eab27645c1182}{02304}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3374bececb6743893c9eab27645c1182}{mpu\_read\_mem}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} mem\_addr, \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} length,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02305}02305 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} *data)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02306}02306 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02307}02307 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} tmp[2];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02308}02308 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02309}02309 \textcolor{keywordflow}{if} (!data)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02310}02310 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02311}02311 \textcolor{keywordflow}{if} (!\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa996fc14aa630e53823462baf460c13f}{sensors}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02312}02312 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02313}02313 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02314}02314 tmp[0] = (\textcolor{keywordtype}{unsigned} char)(mem\_addr >> 8);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02315}02315 tmp[1] = (\textcolor{keywordtype}{unsigned} char)(mem\_addr \& 0xFF);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02316}02316 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02317}02317 \textcolor{comment}{/* Check bank boundaries. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02318}02318 \textcolor{keywordflow}{if} (tmp[1] + length > \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaef4a2014cd6e3d5faeb8f713ee3606ed}{bank\_size}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02319}02319 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02320}02320 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02321}02321 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf1b74c33fa828ea4dc172bfbaaf47216}{bank\_sel}}, 2, tmp))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02322}02322 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02323}02323 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga838d8f1c7b0d8cc83923b93bbafe1b33}{i2c\_read}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gae17166b43fa12a960c0eced9a3c04bf0}{mem\_r\_w}}, length, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02324}02324 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02325}02325 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02326}02326 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02327}02327 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02336}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8fbdfe1a50285d4ab438e29c2efc70f5}{02336}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8fbdfe1a50285d4ab438e29c2efc70f5}{mpu\_load\_firmware}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} length, \textcolor{keyword}{const} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} *firmware,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02337}02337 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} start\_addr, \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} sample\_rate)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02338}02338 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02339}02339 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} ii;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02340}02340 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} this\_write;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02341}02341 \textcolor{comment}{/* Must divide evenly into st.hw-\/>bank\_size to avoid bank crossings. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02342}02342 \textcolor{preprocessor}{\#define LOAD\_CHUNK (16)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02343}02343 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} cur[\mbox{\hyperlink{inv__mpu_8c_a7750730ae7e5c713b619e347d44185fe}{LOAD\_CHUNK}}], tmp[2];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02344}02344 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02345}02345 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1d2ff55e17aae1459dfad61d76054b1b}{dmp\_loaded}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02346}02346 \textcolor{comment}{/* DMP should only be loaded once. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02347}02347 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02348}02348 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02349}02349 \textcolor{keywordflow}{if} (!firmware)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02350}02350 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02351}02351 \textcolor{keywordflow}{for} (ii = 0; ii < length; ii += this\_write) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02352}02352 this\_write = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gac6afabdc09a49a433ee19d8a9486056d}{min}}(\mbox{\hyperlink{inv__mpu_8c_a7750730ae7e5c713b619e347d44185fe}{LOAD\_CHUNK}}, length -\/ ii);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02353}02353 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gafea59910bc3dd30ba3356b1c75213a5f}{mpu\_write\_mem}}(ii, this\_write, (\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char}*)\&firmware[ii]))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02354}02354 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02355}02355 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3374bececb6743893c9eab27645c1182}{mpu\_read\_mem}}(ii, this\_write, cur))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02356}02356 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02357}02357 \textcolor{keywordflow}{if} (memcmp(firmware+ii, cur, this\_write))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02358}02358 \textcolor{keywordflow}{return} -\/2;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02359}02359 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02360}02360 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02361}02361 \textcolor{comment}{/* Set program start address. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02362}02362 tmp[0] = start\_addr >> 8;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02363}02363 tmp[1] = start\_addr \& 0xFF;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02364}02364 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaac4aac12b0e82272affd408b24dc9c95}{prgm\_start\_h}}, 2, tmp))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02365}02365 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02366}02366 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02367}02367 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1d2ff55e17aae1459dfad61d76054b1b}{dmp\_loaded}} = 1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02368}02368 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5f42b7e1e740f2fb64427417e9e2dab7}{dmp\_sample\_rate}} = sample\_rate;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02369}02369 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02370}02370 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02371}02371 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02377}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga68ed20e6c9663cd7c50469329af8715f}{02377}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga68ed20e6c9663cd7c50469329af8715f}{mpu\_set\_dmp\_state}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} enable)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02378}02378 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02379}02379 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} tmp;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02380}02380 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4783ed8aa79a3b5de798963819997c38}{dmp\_on}} == enable)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02381}02381 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02382}02382 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02383}02383 \textcolor{keywordflow}{if} (enable) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02384}02384 \textcolor{keywordflow}{if} (!\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1d2ff55e17aae1459dfad61d76054b1b}{dmp\_loaded}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02385}02385 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02386}02386 \textcolor{comment}{/* Disable data ready interrupt. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02387}02387 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gafd5ebff6b0179e1dce0b68c2272cae07}{set\_int\_enable}}(0);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02388}02388 \textcolor{comment}{/* Disable bypass mode. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02389}02389 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga36f70f38371b48d81094d3b061233e15}{mpu\_set\_bypass}}(0);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02390}02390 \textcolor{comment}{/* Keep constant sample rate, FIFO rate controlled by DMP. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02391}02391 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga0144d666a67a82888b8580002afe8b55}{mpu\_set\_sample\_rate}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5f42b7e1e740f2fb64427417e9e2dab7}{dmp\_sample\_rate}});} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02392}02392 \textcolor{comment}{/* Remove FIFO elements. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02393}02393 tmp = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02394}02394 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, 0x23, 1, \&tmp);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02395}02395 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4783ed8aa79a3b5de798963819997c38}{dmp\_on}} = 1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02396}02396 \textcolor{comment}{/* Enable DMP interrupt. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02397}02397 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gafd5ebff6b0179e1dce0b68c2272cae07}{set\_int\_enable}}(1);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02398}02398 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf23e9f57c0059be6ec57862f0584de10}{mpu\_reset\_fifo}}();} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02399}02399 \} \textcolor{keywordflow}{else} \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02400}02400 \textcolor{comment}{/* Disable DMP interrupt. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02401}02401 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gafd5ebff6b0179e1dce0b68c2272cae07}{set\_int\_enable}}(0);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02402}02402 \textcolor{comment}{/* Restore FIFO settings. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02403}02403 tmp = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga88143c31b894bcd819c0e49b0ff267aa}{fifo\_enable}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02404}02404 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, 0x23, 1, \&tmp);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02405}02405 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4783ed8aa79a3b5de798963819997c38}{dmp\_on}} = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02406}02406 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf23e9f57c0059be6ec57862f0584de10}{mpu\_reset\_fifo}}();} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02407}02407 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02408}02408 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02409}02409 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02410}02410 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02416}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gafe0f60ed0d7f8fd2dcd55d45b95a2363}{02416}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gafe0f60ed0d7f8fd2dcd55d45b95a2363}{mpu\_get\_dmp\_state}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} *enabled)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02417}02417 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02418}02418 enabled[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4783ed8aa79a3b5de798963819997c38}{dmp\_on}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02419}02419 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02420}02420 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02421}02421 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02422}02422 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02423}02423 \textcolor{comment}{/* This initialization is similar to the one in ak8975.c. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02424}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4764ce0ba4e07a4c774f69ab3b83d1f9}{02424}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4764ce0ba4e07a4c774f69ab3b83d1f9}{setup\_compass}}(\textcolor{keywordtype}{void})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02425}02425 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02426}02426 \textcolor{preprocessor}{\#ifdef AK89xx\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02427}02427 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} data[4], akm\_addr;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02428}02428 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02429}02429 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga36f70f38371b48d81094d3b061233e15}{mpu\_set\_bypass}}(1);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02430}02430 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02431}02431 \textcolor{comment}{/* Find compass. Possible addresses range from 0x0C to 0x0F. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02432}02432 \textcolor{keywordflow}{for} (akm\_addr = 0x0C; akm\_addr <= 0x0F; akm\_addr++) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02433}02433 \textcolor{keywordtype}{int} result;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02434}02434 result = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga838d8f1c7b0d8cc83923b93bbafe1b33}{i2c\_read}}(akm\_addr, AKM\_REG\_WHOAMI, 1, data);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02435}02435 \textcolor{keywordflow}{if} (!result \&\& (data[0] == AKM\_WHOAMI))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02436}02436 \textcolor{keywordflow}{break};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02437}02437 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02438}02438 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02439}02439 \textcolor{keywordflow}{if} (akm\_addr > 0x0F) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02440}02440 \textcolor{comment}{/* TODO: Handle this case in all compass-\/related functions. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02441}02441 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gab354affc295f7d61fe8a355c9361cc5a}{log\_e}}(\textcolor{stringliteral}{"{}Compass not found.\(\backslash\)n"{}});} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02442}02442 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02443}02443 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02444}02444 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02445}02445 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.compass\_addr = akm\_addr;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02446}02446 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02447}02447 data[0] = AKM\_POWER\_DOWN;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02448}02448 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.compass\_addr, AKM\_REG\_CNTL, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02449}02449 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02450}02450 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gae36aca5baf9b6b7d74992aef00686d67}{delay\_ms}}(1);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02451}02451 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02452}02452 data[0] = AKM\_FUSE\_ROM\_ACCESS;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02453}02453 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.compass\_addr, AKM\_REG\_CNTL, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02454}02454 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02455}02455 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gae36aca5baf9b6b7d74992aef00686d67}{delay\_ms}}(1);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02456}02456 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02457}02457 \textcolor{comment}{/* Get sensitivity adjustment data from fuse ROM. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02458}02458 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga838d8f1c7b0d8cc83923b93bbafe1b33}{i2c\_read}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.compass\_addr, AKM\_REG\_ASAX, 3, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02459}02459 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02460}02460 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.mag\_sens\_adj[0] = (long)data[0] + 128;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02461}02461 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.mag\_sens\_adj[1] = (long)data[1] + 128;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02462}02462 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.mag\_sens\_adj[2] = (long)data[2] + 128;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02463}02463 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02464}02464 data[0] = AKM\_POWER\_DOWN;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02465}02465 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.compass\_addr, AKM\_REG\_CNTL, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02466}02466 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02467}02467 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gae36aca5baf9b6b7d74992aef00686d67}{delay\_ms}}(1);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02468}02468 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02469}02469 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga36f70f38371b48d81094d3b061233e15}{mpu\_set\_bypass}}(0);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02470}02470 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02471}02471 \textcolor{comment}{/* Set up master mode, master clock, and ES bit. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02472}02472 data[0] = 0x40;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02473}02473 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2bf6dc826bcb17168013f303c904544b}{i2c\_mst}}, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02474}02474 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02475}02475 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02476}02476 \textcolor{comment}{/* Slave 0 reads from AKM data registers. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02477}02477 data[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8ef1963ec6fb3df5586e50959cf00a70}{BIT\_I2C\_READ}} | \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.compass\_addr;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02478}02478 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>s0\_addr, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02479}02479 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02480}02480 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02481}02481 \textcolor{comment}{/* Compass reads start at this register. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02482}02482 data[0] = AKM\_REG\_ST1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02483}02483 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>s0\_reg, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02484}02484 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02485}02485 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02486}02486 \textcolor{comment}{/* Enable slave 0, 8-\/byte reads. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02487}02487 data[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gae9440f48b6d70d900366dc040a8714d7}{BIT\_SLAVE\_EN}} | 8;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02488}02488 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>s0\_ctrl, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02489}02489 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02490}02490 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02491}02491 \textcolor{comment}{/* Slave 1 changes AKM measurement mode. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02492}02492 data[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.compass\_addr;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02493}02493 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>s1\_addr, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02494}02494 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02495}02495 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02496}02496 \textcolor{comment}{/* AKM measurement mode register. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02497}02497 data[0] = AKM\_REG\_CNTL;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02498}02498 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>s1\_reg, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02499}02499 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02500}02500 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02501}02501 \textcolor{comment}{/* Enable slave 1, 1-\/byte writes. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02502}02502 data[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gae9440f48b6d70d900366dc040a8714d7}{BIT\_SLAVE\_EN}} | 1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02503}02503 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>s1\_ctrl, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02504}02504 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02505}02505 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02506}02506 \textcolor{comment}{/* Set slave 1 data. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02507}02507 data[0] = AKM\_SINGLE\_MEASUREMENT;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02508}02508 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>s1\_do, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02509}02509 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02510}02510 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02511}02511 \textcolor{comment}{/* Trigger slave 0 and slave 1 actions at each sample. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02512}02512 data[0] = 0x03;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02513}02513 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>i2c\_delay\_ctrl, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02514}02514 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02515}02515 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02516}02516 \textcolor{preprocessor}{\#ifdef MPU9150}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02517}02517 \textcolor{comment}{/* For the MPU9150, the auxiliary I2C bus needs to be set to VDD. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02518}02518 data[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gac52d7caf4efc485ef6faa1211bfe60dc}{BIT\_I2C\_MST\_VDDIO}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02519}02519 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>yg\_offs\_tc, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02520}02520 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02521}02521 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02522}02522 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02523}02523 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02524}02524 \textcolor{preprocessor}{\#else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02525}02525 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02526}02526 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02527}02527 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02528}02528 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02535}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga65e6b0ce980b8c0255d7be9b55c88c08}{02535}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga65e6b0ce980b8c0255d7be9b55c88c08}{mpu\_get\_compass\_reg}}(\textcolor{keywordtype}{short} *data, \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{long} *timestamp)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02536}02536 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02537}02537 \textcolor{preprocessor}{\#ifdef AK89xx\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02538}02538 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} tmp[9];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02539}02539 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02540}02540 \textcolor{keywordflow}{if} (!(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa996fc14aa630e53823462baf460c13f}{sensors}} \& \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga7fc9c1dbdcb2ac8cc2a4128a5799482a}{INV\_XYZ\_COMPASS}}))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02541}02541 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02542}02542 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02543}02543 \textcolor{preprocessor}{\#ifdef AK89xx\_BYPASS}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02544}02544 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga838d8f1c7b0d8cc83923b93bbafe1b33}{i2c\_read}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.compass\_addr, AKM\_REG\_ST1, 8, tmp))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02545}02545 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02546}02546 tmp[8] = AKM\_SINGLE\_MEASUREMENT;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02547}02547 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.compass\_addr, AKM\_REG\_CNTL, 1, tmp+8))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02548}02548 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02549}02549 \textcolor{preprocessor}{\#else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02550}02550 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga838d8f1c7b0d8cc83923b93bbafe1b33}{i2c\_read}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>raw\_compass, 8, tmp))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02551}02551 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02552}02552 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02553}02553 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02554}02554 \textcolor{preprocessor}{\#if defined AK8975\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02555}02555 \textcolor{comment}{/* AK8975 doesn't have the overrun error bit. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02556}02556 \textcolor{keywordflow}{if} (!(tmp[0] \& AKM\_DATA\_READY))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02557}02557 \textcolor{keywordflow}{return} -\/2;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02558}02558 \textcolor{keywordflow}{if} ((tmp[7] \& AKM\_OVERFLOW) || (tmp[7] \& AKM\_DATA\_ERROR))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02559}02559 \textcolor{keywordflow}{return} -\/3;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02560}02560 \textcolor{preprocessor}{\#elif defined AK8963\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02561}02561 \textcolor{comment}{/* AK8963 doesn't have the data read error bit. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02562}02562 \textcolor{keywordflow}{if} (!(tmp[0] \& AKM\_DATA\_READY) || (tmp[0] \& AKM\_DATA\_OVERRUN))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02563}02563 \textcolor{keywordflow}{return} -\/2;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02564}02564 \textcolor{keywordflow}{if} (tmp[7] \& AKM\_OVERFLOW)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02565}02565 \textcolor{keywordflow}{return} -\/3;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02566}02566 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02567}02567 data[0] = (tmp[2] << 8) | tmp[1];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02568}02568 data[1] = (tmp[4] << 8) | tmp[3];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02569}02569 data[2] = (tmp[6] << 8) | tmp[5];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02570}02570 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02571}02571 data[0] = ((long)data[0] * \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.mag\_sens\_adj[0]) >> 8;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02572}02572 data[1] = ((long)data[1] * \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.mag\_sens\_adj[1]) >> 8;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02573}02573 data[2] = ((long)data[2] * \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.mag\_sens\_adj[2]) >> 8;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02574}02574 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02575}02575 \textcolor{keywordflow}{if} (timestamp)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02576}02576 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3e6b6bc6d1cd2956353a31bfadd3c332}{get\_ms}}(timestamp);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02577}02577 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02578}02578 \textcolor{preprocessor}{\#else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02579}02579 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02580}02580 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02581}02581 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02582}02582 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02588}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gade8589573d09e0f14b84130428f286df}{02588}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gade8589573d09e0f14b84130428f286df}{mpu\_get\_compass\_fsr}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} *fsr)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02589}02589 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02590}02590 \textcolor{preprocessor}{\#ifdef AK89xx\_SECONDARY}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02591}02591 fsr[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>compass\_fsr;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02592}02592 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02593}02593 \textcolor{preprocessor}{\#else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02594}02594 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02595}02595 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02596}02596 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02597}02597 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02642}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga7d0b3259346898ccd1ba6ef78bf7df97}{02642}} \textcolor{keywordtype}{int} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga7d0b3259346898ccd1ba6ef78bf7df97}{mpu\_lp\_motion\_interrupt}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} thresh, \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} time,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02643}02643 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} lpa\_freq)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02644}02644 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02645}02645 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} data[3];} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02646}02646 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02647}02647 \textcolor{keywordflow}{if} (lpa\_freq) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02648}02648 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} thresh\_hw;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02649}02649 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02650}02650 \textcolor{preprocessor}{\#if defined MPU6050}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02651}02651 \textcolor{comment}{/* TODO: Make these const/\#defines. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02652}02652 \textcolor{comment}{/* 1LSb = 32mg. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02653}02653 \textcolor{keywordflow}{if} (thresh > 8160)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02654}02654 thresh\_hw = 255;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02655}02655 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (thresh < 32)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02656}02656 thresh\_hw = 1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02657}02657 \textcolor{keywordflow}{else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02658}02658 thresh\_hw = thresh >> 5;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02659}02659 \textcolor{preprocessor}{\#elif defined MPU6500}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02660}02660 \textcolor{comment}{/* 1LSb = 4mg. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02661}02661 \textcolor{keywordflow}{if} (thresh > 1020)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02662}02662 thresh\_hw = 255;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02663}02663 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (thresh < 4)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02664}02664 thresh\_hw = 1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02665}02665 \textcolor{keywordflow}{else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02666}02666 thresh\_hw = thresh >> 2;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02667}02667 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02668}02668 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02669}02669 \textcolor{keywordflow}{if} (!time)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02670}02670 \textcolor{comment}{/* Minimum duration must be 1ms. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02671}02671 time = 1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02672}02672 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02673}02673 \textcolor{preprocessor}{\#if defined MPU6050}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02674}02674 \textcolor{keywordflow}{if} (lpa\_freq > 40)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02675}02675 \textcolor{preprocessor}{\#elif defined MPU6500}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02676}02676 \textcolor{keywordflow}{if} (lpa\_freq > 640)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02677}02677 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02678}02678 \textcolor{comment}{/* At this point, the chip has not been re-\/configured, so the}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02679}02679 \textcolor{comment}{ * function can safely exit.}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02680}02680 \textcolor{comment}{ */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02681}02681 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02682}02682 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02683}02683 \textcolor{keywordflow}{if} (!\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga279cd5d5d78890357f2d42905d7471df}{int\_motion\_only}}) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02684}02684 \textcolor{comment}{/* Store current settings for later. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02685}02685 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4783ed8aa79a3b5de798963819997c38}{dmp\_on}}) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02686}02686 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga68ed20e6c9663cd7c50469329af8715f}{mpu\_set\_dmp\_state}}(0);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02687}02687 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gadf3b491a068e0225a080821516353bac}{cache}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6461e400e336d2ccbc8c7d95ace9461d}{dmp\_on}} = 1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02688}02688 \} \textcolor{keywordflow}{else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02689}02689 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gadf3b491a068e0225a080821516353bac}{cache}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6461e400e336d2ccbc8c7d95ace9461d}{dmp\_on}} = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02690}02690 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf973c32c73ba912ff512aab948fc31ca}{mpu\_get\_gyro\_fsr}}(\&\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gadf3b491a068e0225a080821516353bac}{cache}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gae9614e4c92be9fc08f2aec7f34853fbc}{gyro\_fsr}});} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02691}02691 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gab6087a15ee23db23b6aec41590329a60}{mpu\_get\_accel\_fsr}}(\&\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gadf3b491a068e0225a080821516353bac}{cache}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacfb901facda5ef8a02d47726db98e58e}{accel\_fsr}});} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02692}02692 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa95c7e216dcb2d888e9796001ca555f8}{mpu\_get\_lpf}}(\&\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gadf3b491a068e0225a080821516353bac}{cache}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac1a1eb41631eb71481d6d247d9c67d4a}{lpf}});} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02693}02693 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2487dd551b701c1c7ed4d6335f02b2f1}{mpu\_get\_sample\_rate}}(\&\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gadf3b491a068e0225a080821516353bac}{cache}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1cf6b7edfe37a51209897ccc448ec0e6}{sample\_rate}});} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02694}02694 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gadf3b491a068e0225a080821516353bac}{cache}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gae5416a4097b0cf39460df70094bc474d}{sensors\_on}} = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa996fc14aa630e53823462baf460c13f}{sensors}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02695}02695 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga093f11eb10b2639a4b9fe344ea348c54}{mpu\_get\_fifo\_config}}(\&\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gadf3b491a068e0225a080821516353bac}{cache}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga41501694a84bdf70e9c660852b653273}{fifo\_sensors}});} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02696}02696 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02697}02697 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02698}02698 \textcolor{preprocessor}{\#ifdef MPU6050}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02699}02699 \textcolor{comment}{/* Disable hardware interrupts for now. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02700}02700 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gafd5ebff6b0179e1dce0b68c2272cae07}{set\_int\_enable}}(0);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02701}02701 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02702}02702 \textcolor{comment}{/* Enter full-\/power accel-\/only mode. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02703}02703 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3a4fea75686ab7d2e68634e81ccac04c}{mpu\_lp\_accel\_mode}}(0);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02704}02704 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02705}02705 \textcolor{comment}{/* Override current LPF (and HPF) settings to obtain a valid accel}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02706}02706 \textcolor{comment}{ * reading.}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02707}02707 \textcolor{comment}{ */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02708}02708 data[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga91c762a5bd71461f7911dc49ee7696e9a9f0263fbbdccd3c5a18fcb65be278d24}{INV\_FILTER\_256HZ\_NOLPF2}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02709}02709 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga22eeac0bd77e7d99b3e15dda52f1bd08}{lpf}}, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02710}02710 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02711}02711 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02712}02712 \textcolor{comment}{/* NOTE: Digital high pass filter should be configured here. Since this}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02713}02713 \textcolor{comment}{ * driver doesn't modify those bits anywhere, they should already be}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02714}02714 \textcolor{comment}{ * cleared by default.}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02715}02715 \textcolor{comment}{ */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02716}02716 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02717}02717 \textcolor{comment}{/* Configure the device to send motion interrupts. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02718}02718 \textcolor{comment}{/* Enable motion interrupt. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02719}02719 data[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6a8f2f7f3dd17bc05d9c6286d15c7ada}{BIT\_MOT\_INT\_EN}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02720}02720 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga48b47844d4b0570e60aa6806faa59eae}{int\_enable}}, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02721}02721 \textcolor{keywordflow}{goto} lp\_int\_restore;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02722}02722 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02723}02723 \textcolor{comment}{/* Set motion interrupt parameters. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02724}02724 data[0] = thresh\_hw;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02725}02725 data[1] = time;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02726}02726 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab2065a062ea7d6179cd8407b2ab4d146}{motion\_thr}}, 2, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02727}02727 \textcolor{keywordflow}{goto} lp\_int\_restore;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02728}02728 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02729}02729 \textcolor{comment}{/* Force hardware to "{}lock"{} current accel sample. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02730}02730 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gae36aca5baf9b6b7d74992aef00686d67}{delay\_ms}}(5);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02731}02731 data[0] = (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf66873be1446ed552812e32d40eced61}{accel\_fsr}} << 3) | \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3c9c0234d4a71c9d35bb0da64ea867eb}{BITS\_HPF}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02732}02732 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gae93a446c54cc00bc7f11209d7af0025e}{accel\_cfg}}, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02733}02733 \textcolor{keywordflow}{goto} lp\_int\_restore;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02734}02734 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02735}02735 \textcolor{comment}{/* Set up LP accel mode. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02736}02736 data[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga63e6f23af37626aa1498d8c248f259e7}{BIT\_LPA\_CYCLE}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02737}02737 \textcolor{keywordflow}{if} (lpa\_freq == 1)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02738}02738 data[1] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga23c3fcde795e5aa2b141232d490c9ca7ab44c7d0127a9466747853533a537b567}{INV\_LPA\_1\_25HZ}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02739}02739 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (lpa\_freq <= 5)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02740}02740 data[1] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga23c3fcde795e5aa2b141232d490c9ca7a474cac76bff369dd656cc973207a1ca5}{INV\_LPA\_5HZ}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02741}02741 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (lpa\_freq <= 20)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02742}02742 data[1] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga23c3fcde795e5aa2b141232d490c9ca7accaaf47c58dfe32cbf2ffa11fdb83108}{INV\_LPA\_20HZ}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02743}02743 \textcolor{keywordflow}{else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02744}02744 data[1] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga23c3fcde795e5aa2b141232d490c9ca7a798d2b86eafcf3fc7c7fe775f46cb4cb}{INV\_LPA\_40HZ}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02745}02745 data[1] = (data[1] << 6) | \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4e2ef22b94b90f9b83394dfe1f688ce4}{BIT\_STBY\_XYZG}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02746}02746 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa01fb0872030e8e2932f8d1d257ea86a}{pwr\_mgmt\_1}}, 2, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02747}02747 \textcolor{keywordflow}{goto} lp\_int\_restore;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02748}02748 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02749}02749 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga279cd5d5d78890357f2d42905d7471df}{int\_motion\_only}} = 1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02750}02750 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02751}02751 \textcolor{preprocessor}{\#elif defined MPU6500}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02752}02752 \textcolor{comment}{/* Disable hardware interrupts. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02753}02753 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gafd5ebff6b0179e1dce0b68c2272cae07}{set\_int\_enable}}(0);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02754}02754 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02755}02755 \textcolor{comment}{/* Enter full-\/power accel-\/only mode, no FIFO/DMP. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02756}02756 data[0] = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02757}02757 data[1] = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02758}02758 data[2] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4e2ef22b94b90f9b83394dfe1f688ce4}{BIT\_STBY\_XYZG}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02759}02759 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga12505a7d8cd7c976e5571f27a6160d23}{user\_ctrl}}, 3, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02760}02760 \textcolor{keywordflow}{goto} lp\_int\_restore;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02761}02761 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02762}02762 \textcolor{comment}{/* Set motion threshold. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02763}02763 data[0] = thresh\_hw;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02764}02764 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab2065a062ea7d6179cd8407b2ab4d146}{motion\_thr}}, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02765}02765 \textcolor{keywordflow}{goto} lp\_int\_restore;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02766}02766 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02767}02767 \textcolor{comment}{/* Set wake frequency. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02768}02768 \textcolor{keywordflow}{if} (lpa\_freq == 1)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02769}02769 data[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga23c3fcde795e5aa2b141232d490c9ca7ab44c7d0127a9466747853533a537b567}{INV\_LPA\_1\_25HZ}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02770}02770 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (lpa\_freq == 2)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02771}02771 data[0] = INV\_LPA\_2\_5HZ;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02772}02772 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (lpa\_freq <= 5)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02773}02773 data[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga23c3fcde795e5aa2b141232d490c9ca7a474cac76bff369dd656cc973207a1ca5}{INV\_LPA\_5HZ}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02774}02774 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (lpa\_freq <= 10)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02775}02775 data[0] = INV\_LPA\_10HZ;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02776}02776 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (lpa\_freq <= 20)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02777}02777 data[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga23c3fcde795e5aa2b141232d490c9ca7accaaf47c58dfe32cbf2ffa11fdb83108}{INV\_LPA\_20HZ}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02778}02778 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (lpa\_freq <= 40)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02779}02779 data[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga23c3fcde795e5aa2b141232d490c9ca7a798d2b86eafcf3fc7c7fe775f46cb4cb}{INV\_LPA\_40HZ}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02780}02780 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (lpa\_freq <= 80)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02781}02781 data[0] = INV\_LPA\_80HZ;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02782}02782 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (lpa\_freq <= 160)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02783}02783 data[0] = INV\_LPA\_160HZ;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02784}02784 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (lpa\_freq <= 320)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02785}02785 data[0] = INV\_LPA\_320HZ;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02786}02786 \textcolor{keywordflow}{else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02787}02787 data[0] = INV\_LPA\_640HZ;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02788}02788 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>lp\_accel\_odr, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02789}02789 \textcolor{keywordflow}{goto} lp\_int\_restore;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02790}02790 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02791}02791 \textcolor{comment}{/* Enable motion interrupt (MPU6500 version). */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02792}02792 data[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga75b1479e451b747afb3b24cbc4df99f7}{BITS\_WOM\_EN}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02793}02793 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>accel\_intel, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02794}02794 \textcolor{keywordflow}{goto} lp\_int\_restore;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02795}02795 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02796}02796 \textcolor{comment}{/* Enable cycle mode. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02797}02797 data[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga63e6f23af37626aa1498d8c248f259e7}{BIT\_LPA\_CYCLE}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02798}02798 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa01fb0872030e8e2932f8d1d257ea86a}{pwr\_mgmt\_1}}, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02799}02799 \textcolor{keywordflow}{goto} lp\_int\_restore;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02800}02800 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02801}02801 \textcolor{comment}{/* Enable interrupt. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02802}02802 data[0] = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6a8f2f7f3dd17bc05d9c6286d15c7ada}{BIT\_MOT\_INT\_EN}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02803}02803 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga48b47844d4b0570e60aa6806faa59eae}{int\_enable}}, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02804}02804 \textcolor{keywordflow}{goto} lp\_int\_restore;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02805}02805 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02806}02806 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga279cd5d5d78890357f2d42905d7471df}{int\_motion\_only}} = 1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02807}02807 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02808}02808 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02809}02809 \} \textcolor{keywordflow}{else} \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02810}02810 \textcolor{comment}{/* Don't "{}restore"{} the previous state if no state has been saved. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02811}02811 \textcolor{keywordtype}{int} ii;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02812}02812 \textcolor{keywordtype}{char} *cache\_ptr = (\textcolor{keywordtype}{char}*)\&\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gadf3b491a068e0225a080821516353bac}{cache}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02813}02813 for (ii = 0; ii < \textcolor{keyword}{sizeof}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gadf3b491a068e0225a080821516353bac}{cache}}); ii++) \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02814}02814 \textcolor{keywordflow}{if} (cache\_ptr[ii] != 0)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02815}02815 \textcolor{keywordflow}{goto} lp\_int\_restore;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02816}02816 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02817}02817 \textcolor{comment}{/* If we reach this point, motion interrupt mode hasn't been used yet. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02818}02818 \textcolor{keywordflow}{return} -\/1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02819}02819 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02820}02820 lp\_int\_restore:} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02821}02821 \textcolor{comment}{/* Set to invalid values to ensure no I2C writes are skipped. */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02822}02822 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab45a727aeee17380828a3e20ccb375c2}{gyro\_fsr}} = 0xFF;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02823}02823 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf66873be1446ed552812e32d40eced61}{accel\_fsr}} = 0xFF;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02824}02824 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga16ec8ca8298f62ac01419775377270fb}{lpf}} = 0xFF;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02825}02825 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2660470fcf7b53e2e832a397cbe6c354}{sample\_rate}} = 0xFFFF;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02826}02826 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa996fc14aa630e53823462baf460c13f}{sensors}} = 0xFF;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02827}02827 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga88143c31b894bcd819c0e49b0ff267aa}{fifo\_enable}} = 0xFF;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02828}02828 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gab7bd5165d6e62cb0d814cf3401958445}{clk\_src}} = \mbox{\hyperlink{group___d_r_i_v_e_r_s_gga75570f009627c6f4ddfb2d936d81e207a01b240917a78674d3e387110a6a8f94c}{INV\_CLK\_PLL}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02829}02829 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6e77e7cc1cf6be5e8fdf617c5b4586d1}{mpu\_set\_sensors}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gadf3b491a068e0225a080821516353bac}{cache}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gae5416a4097b0cf39460df70094bc474d}{sensors\_on}});} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02830}02830 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gad09e6031c8677adc0b8a39b6deea8e27}{mpu\_set\_gyro\_fsr}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gadf3b491a068e0225a080821516353bac}{cache}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gae9614e4c92be9fc08f2aec7f34853fbc}{gyro\_fsr}});} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02831}02831 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2713a96af104cfb2ae8e0ed4c3718119}{mpu\_set\_accel\_fsr}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gadf3b491a068e0225a080821516353bac}{cache}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacfb901facda5ef8a02d47726db98e58e}{accel\_fsr}});} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02832}02832 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5661a9dee25152166769910767a2a93d}{mpu\_set\_lpf}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gadf3b491a068e0225a080821516353bac}{cache}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac1a1eb41631eb71481d6d247d9c67d4a}{lpf}});} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02833}02833 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga0144d666a67a82888b8580002afe8b55}{mpu\_set\_sample\_rate}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gadf3b491a068e0225a080821516353bac}{cache}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga1cf6b7edfe37a51209897ccc448ec0e6}{sample\_rate}});} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02834}02834 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gababbdda287e1f19323489f90a0889dd7}{mpu\_configure\_fifo}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gadf3b491a068e0225a080821516353bac}{cache}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga41501694a84bdf70e9c660852b653273}{fifo\_sensors}});} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02835}02835 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02836}02836 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gadf3b491a068e0225a080821516353bac}{cache}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6461e400e336d2ccbc8c7d95ace9461d}{dmp\_on}})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02837}02837 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga68ed20e6c9663cd7c50469329af8715f}{mpu\_set\_dmp\_state}}(1);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02838}02838 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02839}02839 \textcolor{preprocessor}{\#ifdef MPU6500}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02840}02840 \textcolor{comment}{/* Disable motion interrupt (MPU6500 version). */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02841}02841 data[0] = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02842}02842 \textcolor{keywordflow}{if} (\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa248719e0ea03e6601004693d74890e0}{i2c\_write}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac280ecd767872a9664737fce8dd8e07b}{hw}}-\/>\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb482b60b4bc425c2990da9cf7cbdfee}{addr}}, \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga458ad7d19aa1dc020276ec0d36951d0d}{reg}}-\/>accel\_intel, 1, data))} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02843}02843 \textcolor{keywordflow}{goto} lp\_int\_restore;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02844}02844 \textcolor{preprocessor}{\#endif}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02845}02845 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02846}02846 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3854b4875f6db26c2a1a707885f1fc78}{st}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga8881b9ec8b8009515310301f33abdeaf}{chip\_cfg}}.\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga279cd5d5d78890357f2d42905d7471df}{int\_motion\_only}} = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02847}02847 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02848}02848 \}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02850}02850 \textcolor{comment}{//添加的代码部分 }} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02852}02852 \textcolor{comment}{}\textcolor{comment}{//本程序只供学习使用,未经作者许可,不得用于其它任何用途}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02853}02853 \textcolor{comment}{//ALIENTEK精英STM32开发板V3}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02854}02854 \textcolor{comment}{//MPU6050 DMP 驱动代码 }} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02855}02855 \textcolor{comment}{//正点原子@ALIENTEK}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02856}02856 \textcolor{comment}{//技术论坛:www.openedv.com}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02857}02857 \textcolor{comment}{//创建日期:2015/1/17}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02858}02858 \textcolor{comment}{//版本:V1.0}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02859}02859 \textcolor{comment}{//版权所有,盗版必究。}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02860}02860 \textcolor{comment}{//Copyright(C) 广州市星翼电子科技有限公司 2009-\/2019}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02861}02861 \textcolor{comment}{//All rights reserved }} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02863}02863 \textcolor{comment}{}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02864}02864 \textcolor{comment}{//q30格式,long转float时的除数.}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02865}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga0c2ff73765f99e113d4f99826f9601e5}{02865}} \textcolor{preprocessor}{\#define q30 1073741824.0f}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02866}02866 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02867}02867 \textcolor{comment}{//陀螺仪方向设置}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02868}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gadcca9e3dfdbc53cc5509fabdaede02b8}{02868}} \textcolor{keyword}{static} \textcolor{keywordtype}{signed} \textcolor{keywordtype}{char} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gadcca9e3dfdbc53cc5509fabdaede02b8}{gyro\_orientation}}[9] = \{ 1, 0, 0,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02869}02869 0, 1, 0,} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02870}02870 0, 0, 1\};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02871}02871 \textcolor{comment}{//MPU6050自测试}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02872}02872 \textcolor{comment}{//返回值:0,正常}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02873}02873 \textcolor{comment}{// 其他,失败}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02874}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaff893f93277595387023c71d46b03c42}{02874}} \mbox{\hyperlink{varint_8h_a92c50087ca0e64fa93fc59402c55f8ca}{u8}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaff893f93277595387023c71d46b03c42}{run\_self\_test}}(\textcolor{keywordtype}{void})\{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02875}02875 \textcolor{keywordtype}{int} result;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02876}02876 \textcolor{comment}{//char test\_packet[4] = \{0\};}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02877}02877 \textcolor{keywordtype}{long} gyro[3], accel[3]; } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02878}02878 result = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3773dc98eb1ba15da0091ae75abcf62f}{mpu\_run\_self\_test}}(gyro, accel);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02879}02879 \textcolor{keywordflow}{if} (result == 0x3)\{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02880}02880 \textcolor{comment}{/* Test passed. We can trust the gyro data here, so let's push it down}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02881}02881 \textcolor{comment}{ * to the DMP.}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02882}02882 \textcolor{comment}{ */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02883}02883 \textcolor{keywordtype}{float} sens;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02884}02884 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} accel\_sens;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02885}02885 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga023c0cc94aa8f162dc33b15048a49421}{mpu\_get\_gyro\_sens}}(\&sens);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02886}02886 gyro[0] = (long)(gyro[0] * sens);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02887}02887 gyro[1] = (long)(gyro[1] * sens);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02888}02888 gyro[2] = (long)(gyro[2] * sens);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02889}02889 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga4766e37ef95cbf0044c8f9594ed811d1}{dmp\_set\_gyro\_bias}}(gyro);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02890}02890 \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga620408949052b96e856cad920f856583}{mpu\_get\_accel\_sens}}(\&accel\_sens);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02891}02891 accel[0] *= accel\_sens;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02892}02892 accel[1] *= accel\_sens;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02893}02893 accel[2] *= accel\_sens;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02894}02894 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gafbd714aee6086836f70aaea847771669}{dmp\_set\_accel\_bias}}(accel);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02895}02895 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02896}02896 \}\textcolor{keywordflow}{else} \textcolor{keywordflow}{return} 1;\}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02897}02897 \textcolor{comment}{//陀螺仪方向控制}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02898}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3ff6037a69f37bb6174355936ad67ef3}{02898}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3ff6037a69f37bb6174355936ad67ef3}{inv\_orientation\_matrix\_to\_scalar}}(} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02899}02899 \textcolor{keyword}{const} \textcolor{keywordtype}{signed} \textcolor{keywordtype}{char} *mtx)\{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02900}02900 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} scalar; } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02901}02901 \textcolor{comment}{/*}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02902}02902 \textcolor{comment}{ XYZ 010\_001\_000 Identity Matrix}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02903}02903 \textcolor{comment}{ XZY 001\_010\_000}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02904}02904 \textcolor{comment}{ YXZ 010\_000\_001}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02905}02905 \textcolor{comment}{ YZX 000\_010\_001}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02906}02906 \textcolor{comment}{ ZXY 001\_000\_010}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02907}02907 \textcolor{comment}{ ZYX 000\_001\_010}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02908}02908 \textcolor{comment}{ */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02909}02909 scalar = \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2b58dae1c0567f3f9f6dcbfb07476de7}{inv\_row\_2\_scale}}(mtx);} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02910}02910 scalar |= \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2b58dae1c0567f3f9f6dcbfb07476de7}{inv\_row\_2\_scale}}(mtx + 3) << 3;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02911}02911 scalar |= \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2b58dae1c0567f3f9f6dcbfb07476de7}{inv\_row\_2\_scale}}(mtx + 6) << 6;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02912}02912 \textcolor{keywordflow}{return} scalar;\}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02913}02913 \textcolor{comment}{//方向转换}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02914}\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2b58dae1c0567f3f9f6dcbfb07476de7}{02914}} \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga2b58dae1c0567f3f9f6dcbfb07476de7}{inv\_row\_2\_scale}}(\textcolor{keyword}{const} \textcolor{keywordtype}{signed} \textcolor{keywordtype}{char} *row)\{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02915}02915 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{short} b;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02916}02916 } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02917}02917 \textcolor{keywordflow}{if} (row[0] > 0)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02918}02918 b = 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02919}02919 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (row[0] < 0)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02920}02920 b = 4;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02921}02921 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (row[1] > 0)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02922}02922 b = 1;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02923}02923 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (row[1] < 0)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02924}02924 b = 5;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02925}02925 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (row[2] > 0)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02926}02926 b = 2;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02927}02927 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (row[2] < 0)} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02928}02928 b = 6;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02929}02929 \textcolor{keywordflow}{else}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02930}02930 b = 7; \textcolor{comment}{// error}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02931}02931 \textcolor{keywordflow}{return} b;\}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02932}02932 \textcolor{comment}{//空函数,未用到.}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02933}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gafa3071c8321f6e8dd2036be8a1e57ad0}{02933}} \textcolor{keywordtype}{void} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gafa3071c8321f6e8dd2036be8a1e57ad0}{mget\_ms}}(\textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{long} *time)\{\}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02934}02934 \textcolor{comment}{//mpu6050,dmp初始化}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02935}02935 \textcolor{comment}{//返回值:0,正常}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02936}02936 \textcolor{comment}{// 其他,失败}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02937}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gafac8fcbf24cfa1b69737e02238580f3a}{02937}} \mbox{\hyperlink{varint_8h_a92c50087ca0e64fa93fc59402c55f8ca}{u8}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gafac8fcbf24cfa1b69737e02238580f3a}{mpu\_dmp\_init}}(\textcolor{keywordtype}{void})} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02938}02938 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02939}02939 \mbox{\hyperlink{varint_8h_a92c50087ca0e64fa93fc59402c55f8ca}{u8}} res=0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02940}02940 \textcolor{keywordflow}{if}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_gac48a36b51e23bc4191ec13916bbb9d0b}{mpu\_init}}()==0) \textcolor{comment}{//初始化MPU6050}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02941}02941 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02942}02942 res=\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6e77e7cc1cf6be5e8fdf617c5b4586d1}{mpu\_set\_sensors}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3fdc30f9c0a26c2c4e2bb88921f91629}{INV\_XYZ\_GYRO}}|\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa03f025a17ed491e70b88274e89c75c5}{INV\_XYZ\_ACCEL}}); \textcolor{comment}{//设置所需要的传感器}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02943}02943 \textcolor{keywordflow}{if}(res)\textcolor{keywordflow}{return} 1; } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02944}02944 res=\mbox{\hyperlink{group___d_r_i_v_e_r_s_gababbdda287e1f19323489f90a0889dd7}{mpu\_configure\_fifo}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3fdc30f9c0a26c2c4e2bb88921f91629}{INV\_XYZ\_GYRO}}|\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaa03f025a17ed491e70b88274e89c75c5}{INV\_XYZ\_ACCEL}}); \textcolor{comment}{//设置FIFO}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02945}02945 \textcolor{keywordflow}{if}(res)\textcolor{keywordflow}{return} 2; } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02946}02946 res=\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga0144d666a67a82888b8580002afe8b55}{mpu\_set\_sample\_rate}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga292d717406e906831952ce46612fe4cd}{DEFAULT\_MPU\_HZ}}); \textcolor{comment}{//设置采样率}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02947}02947 \textcolor{keywordflow}{if}(res)\textcolor{keywordflow}{return} 3; } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02948}02948 res=\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga66626a842452f444e9af29cb0d2c6150}{dmp\_load\_motion\_driver\_firmware}}(); \textcolor{comment}{//加载dmp固件}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02949}02949 \textcolor{keywordflow}{if}(res)\textcolor{keywordflow}{return} 4; } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02950}02950 res=\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga6cb5ff144ce6e1546f00809de8bb24a4}{dmp\_set\_orientation}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3ff6037a69f37bb6174355936ad67ef3}{inv\_orientation\_matrix\_to\_scalar}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_gadcca9e3dfdbc53cc5509fabdaede02b8}{gyro\_orientation}}));\textcolor{comment}{//设置陀螺仪方向}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02951}02951 \textcolor{keywordflow}{if}(res)\textcolor{keywordflow}{return} 5; } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02952}02952 res=\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga70c485bdfa30515e5b869b081192caa1}{dmp\_enable\_feature}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_gae879a3c9729f9e1be5e6d7c9211c69c0}{DMP\_FEATURE\_6X\_LP\_QUAT}}|\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga87fac39cf95e2c56afdf507a986fa00b}{DMP\_FEATURE\_TAP}}| \textcolor{comment}{//设置dmp功能}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02953}02953 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaf2b250fc928390d562f7bd80300ce419}{DMP\_FEATURE\_ANDROID\_ORIENT}}|\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga9eeb257febe4a305df7ad4cf31dc2755}{DMP\_FEATURE\_SEND\_RAW\_ACCEL}}|\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga40462c6fd55b04b2f79723dd737ee795}{DMP\_FEATURE\_SEND\_CAL\_GYRO}}|} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02954}02954 \mbox{\hyperlink{group___d_r_i_v_e_r_s_gaaf0ac890c1f83106c08b722f1e865fdb}{DMP\_FEATURE\_GYRO\_CAL}});} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02955}02955 \textcolor{keywordflow}{if}(res)\textcolor{keywordflow}{return} 6; } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02956}02956 res=\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga5399728fd572a7694af20286cc9d4121}{dmp\_set\_fifo\_rate}}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga292d717406e906831952ce46612fe4cd}{DEFAULT\_MPU\_HZ}}); \textcolor{comment}{//设置DMP输出速率(最大不超过200Hz)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02957}02957 \textcolor{keywordflow}{if}(res)\textcolor{keywordflow}{return} 7; } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02958}02958 res=\mbox{\hyperlink{group___d_r_i_v_e_r_s_gaff893f93277595387023c71d46b03c42}{run\_self\_test}}(); \textcolor{comment}{//自检}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02959}02959 \textcolor{keywordflow}{if}(res)\textcolor{keywordflow}{return} 8; } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02960}02960 res=\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga68ed20e6c9663cd7c50469329af8715f}{mpu\_set\_dmp\_state}}(1); \textcolor{comment}{//使能DMP}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02961}02961 \textcolor{keywordflow}{if}(res)\textcolor{keywordflow}{return} 9; } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02962}02962 \}\textcolor{keywordflow}{else} \textcolor{keywordflow}{return} 10;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02963}02963 \textcolor{keywordflow}{return} 0;\}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02964}02964 \textcolor{comment}{//得到dmp处理后的数据(注意,本函数需要比较多堆栈,局部变量有点多)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02965}02965 \textcolor{comment}{//pitch:俯仰角 精度:0.1° 范围:-\/90.0° <-\/-\/-\/> +90.0°}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02966}02966 \textcolor{comment}{//roll:横滚角 精度:0.1° 范围:-\/180.0°<-\/-\/-\/> +180.0°}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02967}02967 \textcolor{comment}{//yaw:航向角 精度:0.1° 范围:-\/180.0°<-\/-\/-\/> +180.0°}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02968}02968 \textcolor{comment}{//返回值:0,正常}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02969}02969 \textcolor{comment}{// 其他,失败}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02970}\mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb825f2fd99c3044d012a9b25608cc18}{02970}} \mbox{\hyperlink{varint_8h_a92c50087ca0e64fa93fc59402c55f8ca}{u8}} \mbox{\hyperlink{group___d_r_i_v_e_r_s_gacb825f2fd99c3044d012a9b25608cc18}{mpu\_dmp\_get\_data}}(\textcolor{keywordtype}{float} *pitch,\textcolor{keywordtype}{float} *roll,\textcolor{keywordtype}{float} *yaw)\{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02971}02971 \textcolor{keywordtype}{float} q0=1.0f,q1=0.0f,q2=0.0f,q3=0.0f;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02972}02972 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{long} sensor\_timestamp;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02973}02973 \textcolor{keywordtype}{short} gyro[3], accel[3], sensors;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02974}02974 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{char} more;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02975}02975 \textcolor{keywordtype}{long} quat[4]; } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02976}02976 \textcolor{keywordflow}{if}(\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga02db5f25359abe84be002c543cdc3803}{dmp\_read\_fifo}}(gyro, accel, quat, \&sensor\_timestamp, \&sensors,\&more))\textcolor{keywordflow}{return} 1; } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02977}02977 \textcolor{comment}{/* Gyro and accel data are written to the FIFO by the DMP in chip frame and hardware units.}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02978}02978 \textcolor{comment}{ * This behavior is convenient because it keeps the gyro and accel outputs of dmp\_read\_fifo and mpu\_read\_fifo consistent.}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02979}02979 \textcolor{comment}{ **/}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02980}02980 \textcolor{comment}{/*if (sensors \& INV\_XYZ\_GYRO )}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02981}02981 \textcolor{comment}{ send\_packet(PACKET\_TYPE\_GYRO, gyro);}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02982}02982 \textcolor{comment}{ if (sensors \& INV\_XYZ\_ACCEL)}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02983}02983 \textcolor{comment}{ send\_packet(PACKET\_TYPE\_ACCEL, accel); */}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02984}02984 \textcolor{comment}{/* Unlike gyro and accel, quaternions are written to the FIFO in the body frame, q30.}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02985}02985 \textcolor{comment}{ * The orientation is set by the scalar passed to dmp\_set\_orientation during initialization. }} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02986}02986 \textcolor{comment}{ **/}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02987}02987 \textcolor{keywordflow}{if}(sensors\&\mbox{\hyperlink{group___d_r_i_v_e_r_s_ga3d79cffe845a796a27d03432a1f2ade0}{INV\_WXYZ\_QUAT}}) } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02988}02988 \{} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02989}02989 q0 = quat[0] / \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga0c2ff73765f99e113d4f99826f9601e5}{q30}}; \textcolor{comment}{//q30格式转换为浮点数}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02990}02990 q1 = quat[1] / \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga0c2ff73765f99e113d4f99826f9601e5}{q30}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02991}02991 q2 = quat[2] / \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga0c2ff73765f99e113d4f99826f9601e5}{q30}};} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02992}02992 q3 = quat[3] / \mbox{\hyperlink{group___d_r_i_v_e_r_s_ga0c2ff73765f99e113d4f99826f9601e5}{q30}}; } \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02993}02993 \textcolor{comment}{//计算得到俯仰角/横滚角/航向角}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02994}02994 *pitch = asin(-\/2 * q1 * q3 + 2 * q0* q2)* 57.3; \textcolor{comment}{// pitch}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02995}02995 *roll = atan2(2 * q2 * q3 + 2 * q0 * q1, -\/2 * q1 * q1 -\/ 2 * q2* q2 + 1)* 57.3; \textcolor{comment}{// roll}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02996}02996 *yaw = atan2(2*(q1*q2 + q0*q3),q0*q0+q1*q1-\/q2*q2-\/q3*q3) * 57.3; \textcolor{comment}{//yaw}} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02997}02997 \}\textcolor{keywordflow}{else} \textcolor{keywordflow}{return} 2;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02998}02998 \textcolor{keywordflow}{return} 0;} \DoxyCodeLine{\Hypertarget{inv__mpu_8c_source_l02999}02999 \}} \end{DoxyCode}