2656 lines
529 KiB
XML
2656 lines
529 KiB
XML
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
|
||
<section xmlns="http://docbook.org/ns/docbook" version="5.0" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="_inv__mpu_8c_source" xml:lang="zh">
|
||
<title>inv_mpu.c</title>
|
||
<indexterm><primary>D:/gitt/MicrochipFor32/bsp_MPU6050/inv_mpu.c</primary></indexterm>
|
||
浏览该文件的文档.<programlisting linenumbering="unnumbered"><anchor xml:id="_inv__mpu_8c_source_1l00001"/>00001 <emphasis role="comment">/*</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00002"/>00002 <emphasis role="comment"> $License:</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00003"/>00003 <emphasis role="comment">    Copyright (C) 2011-2012 InvenSense Corporation, All Rights Reserved.</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00004"/>00004 <emphasis role="comment">    See included License.txt for License information.</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00005"/>00005 <emphasis role="comment"> $</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00006"/>00006 <emphasis role="comment"> */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00020"/>00020 <emphasis role="preprocessor">#include <stdio.h></emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00021"/>00021 <emphasis role="preprocessor">#include <stdlib.h></emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00022"/>00022 <emphasis role="preprocessor">#include <string.h></emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00023"/>00023 <emphasis role="preprocessor">#include <math.h></emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00024"/>00024 <emphasis role="preprocessor">#include "<link linkend="_inv__mpu_8h">inv_mpu.h</link>"</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00025"/>00025 <emphasis role="preprocessor">#include "<link linkend="_inv__mpu__dmp__motion__driver_8h">inv_mpu_dmp_motion_driver.h</link>"</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00026"/>00026 <emphasis role="preprocessor">#include "<link linkend="_mpu6050_8h">mpu6050.h</link>"</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00027"/>00027 <emphasis role="preprocessor">#include "usart.h"</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00028"/>00028 <emphasis role="preprocessor">#include "<link linkend="_varint_8h">varint.h</link>"</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00029"/>00029
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00030"/><link linkend="_group___d_r_i_v_e_r_s_1ga6d132f914f18cb144a0eaf36312045c8">00030</link> <emphasis role="preprocessor">#define MPU6050                         </emphasis><emphasis role="comment">//定义我们使用的传感器为MPU6050</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00031"/><link linkend="_group___d_r_i_v_e_r_s_1gaf5aa4c072d42b67d74043f642b68ddd7">00031</link> <emphasis role="preprocessor">#define MOTION_DRIVER_TARGET_MSP430     </emphasis><emphasis role="comment">//定义驱动部分,采用MSP430的驱动(移植到STM32F1)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00032"/>00032
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00033"/>00033 <emphasis role="comment">/* The following functions must be defined for this platform:</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00034"/>00034 <emphasis role="comment"> * i2c_write(unsigned char slave_addr, unsigned char reg_addr,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00035"/>00035 <emphasis role="comment"> *      unsigned char length, unsigned char const *data)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00036"/>00036 <emphasis role="comment"> * i2c_read(unsigned char slave_addr, unsigned char reg_addr,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00037"/>00037 <emphasis role="comment"> *      unsigned char length, unsigned char *data)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00038"/>00038 <emphasis role="comment"> * delay_ms(unsigned long num_ms)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00039"/>00039 <emphasis role="comment"> * get_ms(unsigned long *count)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00040"/>00040 <emphasis role="comment"> * reg_int_cb(void (*cb)(void), unsigned char port, unsigned char pin)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00041"/>00041 <emphasis role="comment"> * labs(long x)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00042"/>00042 <emphasis role="comment"> * fabsf(float x)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00043"/>00043 <emphasis role="comment"> * min(int a, int b)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00044"/>00044 <emphasis role="comment"> */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00045"/>00045 <emphasis role="preprocessor">#if defined MOTION_DRIVER_TARGET_MSP430</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00046"/>00046
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00047"/><link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">00047</link> <emphasis role="preprocessor">#define i2c_write   MPU_Write_Len</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00048"/><link linkend="_group___d_r_i_v_e_r_s_1ga838d8f1c7b0d8cc83923b93bbafe1b33">00048</link> <emphasis role="preprocessor">#define i2c_read    MPU_Read_Len</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00049"/><link linkend="_group___d_r_i_v_e_r_s_1gae36aca5baf9b6b7d74992aef00686d67">00049</link> <emphasis role="preprocessor">#define delay_ms    HAL_Delay</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00050"/><link linkend="_group___d_r_i_v_e_r_s_1ga3e6b6bc6d1cd2956353a31bfadd3c332">00050</link> <emphasis role="preprocessor">#define get_ms      mget_ms</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00051"/>00051 <emphasis role="comment">//static inline int reg_int_cb(struct int_param_s *int_param)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00052"/>00052 <emphasis role="comment">//{</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00053"/>00053 <emphasis role="comment">//    return msp430_reg_int_cb(int_param->cb, int_param->pin, int_param->lp_exit,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00054"/>00054 <emphasis role="comment">//        int_param->active_low);</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00055"/>00055 <emphasis role="comment">//}</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00056"/><link linkend="_group___d_r_i_v_e_r_s_1ga69f90a1116c37ff659a096f2932c3988">00056</link> <emphasis role="keywordtype">void</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga69f90a1116c37ff659a096f2932c3988">log_none</link>(<emphasis role="keywordtype">char</emphasis> *fmt,...){;}
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00057"/><link linkend="_group___d_r_i_v_e_r_s_1ga2905fba7885cd95057e1655cb4d16bda">00057</link> <emphasis role="preprocessor">#define log_i   log_none    </emphasis><emphasis role="comment">//打印信息</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00058"/><link linkend="_group___d_r_i_v_e_r_s_1gab354affc295f7d61fe8a355c9361cc5a">00058</link> <emphasis role="preprocessor">#define log_e   log_none    </emphasis><emphasis role="comment">//打印信息</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00059"/>00059 <emphasis role="comment">/* labs is already defined by TI's toolchain. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00060"/>00060 <emphasis role="comment">/* fabs is for doubles. fabsf is for floats. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00061"/><link linkend="_group___d_r_i_v_e_r_s_1ga95bcc5f260df5ce993730008a1dcb45a">00061</link> <emphasis role="preprocessor">#define fabs        fabsf</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00062"/><link linkend="_group___d_r_i_v_e_r_s_1gac6afabdc09a49a433ee19d8a9486056d">00062</link> <emphasis role="preprocessor">#define min(a,b) ((a<b)?a:b)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00063"/>00063 <emphasis role="preprocessor">#elif defined EMPL_TARGET_MSP430</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00064"/>00064 <emphasis role="preprocessor">#include "msp430.h"</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00065"/>00065 <emphasis role="preprocessor">#include "msp430_i2c.h"</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00066"/>00066 <emphasis role="preprocessor">#include "msp430_clock.h"</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00067"/>00067 <emphasis role="preprocessor">#include "msp430_interrupt.h"</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00068"/>00068 <emphasis role="preprocessor">#include "log.h"</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00069"/>00069 <emphasis role="preprocessor">#define i2c_write   msp430_i2c_write</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00070"/>00070 <emphasis role="preprocessor">#define i2c_read    msp430_i2c_read</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00071"/>00071 <emphasis role="preprocessor">#define delay_ms    msp430_delay_ms</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00072"/>00072 <emphasis role="preprocessor">#define get_ms      msp430_get_clock_ms</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00073"/>00073 <emphasis role="keyword">static</emphasis> <emphasis role="keyword">inline</emphasis> <emphasis role="keywordtype">int</emphasis> reg_int_cb(<emphasis role="keyword">struct</emphasis> <link linkend="_structint__param__s">int_param_s</link> *int_param)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00074"/>00074 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00075"/>00075     <emphasis role="keywordflow">return</emphasis> msp430_reg_int_cb(int_param-><link linkend="_group___d_r_i_v_e_r_s_1ga97093754f1f13b06492990e3da77965d">cb</link>, int_param-><link linkend="_group___d_r_i_v_e_r_s_1ga5c682e1b664acf566f985b48dd7acbb7">pin</link>, int_param-><link linkend="_group___d_r_i_v_e_r_s_1ga46dfad5a278a8b40a68d71beca0d2be4">lp_exit</link>,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00076"/>00076         int_param-><link linkend="_group___d_r_i_v_e_r_s_1ga9b859a3332d9bd9287d5766494f261fb">active_low</link>);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00077"/>00077 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00078"/>00078 <emphasis role="preprocessor">#define log_i       MPL_LOGI</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00079"/>00079 <emphasis role="preprocessor">#define log_e       MPL_LOGE</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00080"/>00080 <emphasis role="comment">/* labs is already defined by TI's toolchain. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00081"/>00081 <emphasis role="comment">/* fabs is for doubles. fabsf is for floats. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00082"/>00082 <emphasis role="preprocessor">#define fabs        fabsf</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00083"/>00083 <emphasis role="preprocessor">#define min(a,b) ((a<b)?a:b)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00084"/>00084 <emphasis role="preprocessor">#elif defined EMPL_TARGET_UC3L0</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00085"/>00085 <emphasis role="comment">/* Instead of using the standard TWI driver from the ASF library, we're using</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00086"/>00086 <emphasis role="comment"> * a TWI driver that follows the slave address + register address convention.</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00087"/>00087 <emphasis role="comment"> */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00088"/>00088 <emphasis role="preprocessor">#include "twi.h"</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00089"/>00089 <emphasis role="preprocessor">#include "delay.h"</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00090"/>00090 <emphasis role="preprocessor">#include "sysclk.h"</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00091"/>00091 <emphasis role="preprocessor">#include "log.h"</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00092"/>00092 <emphasis role="preprocessor">#include "sensors_xplained.h"</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00093"/>00093 <emphasis role="preprocessor">#include "uc3l0_clock.h"</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00094"/>00094 <emphasis role="preprocessor">#define i2c_write(a, b, c, d)   twi_write(a, b, d, c)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00095"/>00095 <emphasis role="preprocessor">#define i2c_read(a, b, c, d)    twi_read(a, b, d, c)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00096"/>00096 <emphasis role="comment">/* delay_ms is a function already defined in ASF. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00097"/>00097 <emphasis role="preprocessor">#define get_ms  uc3l0_get_clock_ms</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00098"/>00098 <emphasis role="keyword">static</emphasis> <emphasis role="keyword">inline</emphasis> <emphasis role="keywordtype">int</emphasis> reg_int_cb(<emphasis role="keyword">struct</emphasis> <link linkend="_structint__param__s">int_param_s</link> *int_param)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00099"/>00099 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00100"/>00100     sensor_board_irq_connect(int_param-><link linkend="_group___d_r_i_v_e_r_s_1ga5c682e1b664acf566f985b48dd7acbb7">pin</link>, int_param-><link linkend="_group___d_r_i_v_e_r_s_1ga97093754f1f13b06492990e3da77965d">cb</link>, int_param->arg);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00101"/>00101     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00102"/>00102 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00103"/>00103 <emphasis role="preprocessor">#define log_i       MPL_LOGI</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00104"/>00104 <emphasis role="preprocessor">#define log_e       MPL_LOGE</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00105"/>00105 <emphasis role="comment">/* UC3 is a 32-bit processor, so abs and labs are equivalent. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00106"/>00106 <emphasis role="preprocessor">#define labs        abs</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00107"/>00107 <emphasis role="preprocessor">#define fabs(x)     (((x)>0)?(x):-(x))</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00108"/>00108 <emphasis role="preprocessor">#else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00109"/>00109 <emphasis role="preprocessor">#error  Gyro driver is missing the system layer implementations.</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00110"/>00110 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00111"/>00111
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00112"/>00112 <emphasis role="preprocessor">#if !defined MPU6050 && !defined MPU9150 && !defined MPU6500 && !defined MPU9250</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00113"/>00113 <emphasis role="preprocessor">#error  Which gyro are you using? Define MPUxxxx in your compiler options.</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00114"/>00114 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00115"/>00115
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00116"/>00116 <emphasis role="comment">/* Time for some messy macro work. =]</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00117"/>00117 <emphasis role="comment"> * #define MPU9150</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00118"/>00118 <emphasis role="comment"> * is equivalent to..</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00119"/>00119 <emphasis role="comment"> * #define MPU6050</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00120"/>00120 <emphasis role="comment"> * #define AK8975_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00121"/>00121 <emphasis role="comment"> *</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00122"/>00122 <emphasis role="comment"> * #define MPU9250</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00123"/>00123 <emphasis role="comment"> * is equivalent to..</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00124"/>00124 <emphasis role="comment"> * #define MPU6500</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00125"/>00125 <emphasis role="comment"> * #define AK8963_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00126"/>00126 <emphasis role="comment"> */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00127"/>00127 <emphasis role="preprocessor">#if defined MPU9150</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00128"/>00128 <emphasis role="preprocessor">#ifndef MPU6050</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00129"/>00129 <emphasis role="preprocessor">#define MPU6050</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00130"/>00130 <emphasis role="preprocessor">#endif                          </emphasis><emphasis role="comment">/* #ifndef MPU6050 */</emphasis><emphasis role="preprocessor"></emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00131"/>00131 <emphasis role="preprocessor">#if defined AK8963_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00132"/>00132 <emphasis role="preprocessor">#error "MPU9150 and AK8963_SECONDARY cannot both be defined."</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00133"/>00133 <emphasis role="preprocessor">#elif !defined AK8975_SECONDARY </emphasis><emphasis role="comment">/* #if defined AK8963_SECONDARY */</emphasis><emphasis role="preprocessor"></emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00134"/>00134 <emphasis role="preprocessor">#define AK8975_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00135"/>00135 <emphasis role="preprocessor">#endif                          </emphasis><emphasis role="comment">/* #if defined AK8963_SECONDARY */</emphasis><emphasis role="preprocessor"></emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00136"/>00136 <emphasis role="preprocessor">#elif defined MPU9250           </emphasis><emphasis role="comment">/* #if defined MPU9150 */</emphasis><emphasis role="preprocessor"></emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00137"/>00137 <emphasis role="preprocessor">#ifndef MPU6500</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00138"/>00138 <emphasis role="preprocessor">#define MPU6500</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00139"/>00139 <emphasis role="preprocessor">#endif                          </emphasis><emphasis role="comment">/* #ifndef MPU6500 */</emphasis><emphasis role="preprocessor"></emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00140"/>00140 <emphasis role="preprocessor">#if defined AK8975_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00141"/>00141 <emphasis role="preprocessor">#error "MPU9250 and AK8975_SECONDARY cannot both be defined."</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00142"/>00142 <emphasis role="preprocessor">#elif !defined AK8963_SECONDARY </emphasis><emphasis role="comment">/* #if defined AK8975_SECONDARY */</emphasis><emphasis role="preprocessor"></emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00143"/>00143 <emphasis role="preprocessor">#define AK8963_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00144"/>00144 <emphasis role="preprocessor">#endif                          </emphasis><emphasis role="comment">/* #if defined AK8975_SECONDARY */</emphasis><emphasis role="preprocessor"></emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00145"/>00145 <emphasis role="preprocessor">#endif                          </emphasis><emphasis role="comment">/* #if defined MPU9150 */</emphasis><emphasis role="preprocessor"></emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00146"/>00146
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00147"/>00147 <emphasis role="preprocessor">#if defined AK8975_SECONDARY || defined AK8963_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00148"/>00148 <emphasis role="preprocessor">#define AK89xx_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00149"/>00149 <emphasis role="preprocessor">#else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00150"/>00150 <emphasis role="comment">/* #warning "No compass = less profit for Invensense. Lame." */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00151"/>00151 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00152"/>00152
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00153"/>00153 <emphasis role="keyword">static</emphasis> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gafd5ebff6b0179e1dce0b68c2272cae07">set_int_enable</link>(<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> enable);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00154"/>00154
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00155"/>00155 <emphasis role="comment">/* Hardware registers needed by driver. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00156"/><link linkend="_structgyro__reg__s">00156</link> <emphasis role="keyword">struct </emphasis><link linkend="_structgyro__reg__s">gyro_reg_s</link> {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00157"/><link linkend="_group___d_r_i_v_e_r_s_1ga51068a36efe9d2aedc9cb8fffacbf15b">00157</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga51068a36efe9d2aedc9cb8fffacbf15b">who_am_i</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00158"/><link linkend="_group___d_r_i_v_e_r_s_1ga27dd9db31f16ca170520b3009255e6d0">00158</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga27dd9db31f16ca170520b3009255e6d0">rate_div</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00159"/><link linkend="_group___d_r_i_v_e_r_s_1ga22eeac0bd77e7d99b3e15dda52f1bd08">00159</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga22eeac0bd77e7d99b3e15dda52f1bd08">lpf</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00160"/><link linkend="_group___d_r_i_v_e_r_s_1gaf418d8a6b0e262df54ab8a6a5228011c">00160</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gaf418d8a6b0e262df54ab8a6a5228011c">prod_id</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00161"/><link linkend="_group___d_r_i_v_e_r_s_1ga12505a7d8cd7c976e5571f27a6160d23">00161</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga12505a7d8cd7c976e5571f27a6160d23">user_ctrl</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00162"/><link linkend="_group___d_r_i_v_e_r_s_1ga6a392b7ecae843c734db3d832f11af49">00162</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga6a392b7ecae843c734db3d832f11af49">fifo_en</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00163"/><link linkend="_group___d_r_i_v_e_r_s_1gada0b973f74cc874552f079fd58c435a6">00163</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gada0b973f74cc874552f079fd58c435a6">gyro_cfg</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00164"/><link linkend="_group___d_r_i_v_e_r_s_1gae93a446c54cc00bc7f11209d7af0025e">00164</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gae93a446c54cc00bc7f11209d7af0025e">accel_cfg</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00165"/>00165 <emphasis role="comment">//    unsigned char accel_cfg2;</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00166"/>00166 <emphasis role="comment">//    unsigned char lp_accel_odr;</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00167"/><link linkend="_group___d_r_i_v_e_r_s_1gab2065a062ea7d6179cd8407b2ab4d146">00167</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gab2065a062ea7d6179cd8407b2ab4d146">motion_thr</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00168"/><link linkend="_group___d_r_i_v_e_r_s_1ga57d7f3d79c8227e1795764222e2a4a6e">00168</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga57d7f3d79c8227e1795764222e2a4a6e">motion_dur</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00169"/><link linkend="_group___d_r_i_v_e_r_s_1gab7503974d62cf9c2d688579fcd1abd48">00169</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gab7503974d62cf9c2d688579fcd1abd48">fifo_count_h</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00170"/><link linkend="_group___d_r_i_v_e_r_s_1gacb6763dc5f368ea01ef7c733cea9dab4">00170</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gacb6763dc5f368ea01ef7c733cea9dab4">fifo_r_w</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00171"/><link linkend="_group___d_r_i_v_e_r_s_1gab5c2246c44bb36b21596fe5acf7ec0d4">00171</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gab5c2246c44bb36b21596fe5acf7ec0d4">raw_gyro</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00172"/><link linkend="_group___d_r_i_v_e_r_s_1ga9b7c162cea6a3deeaac41444c613b7bc">00172</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga9b7c162cea6a3deeaac41444c613b7bc">raw_accel</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00173"/><link linkend="_group___d_r_i_v_e_r_s_1ga47674fab0681811c1b733462944e0233">00173</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga47674fab0681811c1b733462944e0233">temp</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00174"/><link linkend="_group___d_r_i_v_e_r_s_1ga48b47844d4b0570e60aa6806faa59eae">00174</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga48b47844d4b0570e60aa6806faa59eae">int_enable</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00175"/><link linkend="_group___d_r_i_v_e_r_s_1gaea6ad456241786750b3f211bc92032eb">00175</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gaea6ad456241786750b3f211bc92032eb">dmp_int_status</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00176"/><link linkend="_group___d_r_i_v_e_r_s_1ga837724080c34ff5a190751427febaf91">00176</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga837724080c34ff5a190751427febaf91">int_status</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00177"/>00177 <emphasis role="comment">//    unsigned char accel_intel;</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00178"/><link linkend="_group___d_r_i_v_e_r_s_1gaa01fb0872030e8e2932f8d1d257ea86a">00178</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gaa01fb0872030e8e2932f8d1d257ea86a">pwr_mgmt_1</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00179"/><link linkend="_group___d_r_i_v_e_r_s_1ga3e378b0c77e9529ee93ac6eba11e1031">00179</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga3e378b0c77e9529ee93ac6eba11e1031">pwr_mgmt_2</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00180"/><link linkend="_group___d_r_i_v_e_r_s_1gaae7bdbff2a1029245890b555b2d8d519">00180</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gaae7bdbff2a1029245890b555b2d8d519">int_pin_cfg</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00181"/><link linkend="_group___d_r_i_v_e_r_s_1gae17166b43fa12a960c0eced9a3c04bf0">00181</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gae17166b43fa12a960c0eced9a3c04bf0">mem_r_w</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00182"/><link linkend="_group___d_r_i_v_e_r_s_1gab745dd73e0c3ef01f30f96444358cb89">00182</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gab745dd73e0c3ef01f30f96444358cb89">accel_offs</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00183"/><link linkend="_group___d_r_i_v_e_r_s_1ga2bf6dc826bcb17168013f303c904544b">00183</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga2bf6dc826bcb17168013f303c904544b">i2c_mst</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00184"/><link linkend="_group___d_r_i_v_e_r_s_1gaf1b74c33fa828ea4dc172bfbaaf47216">00184</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gaf1b74c33fa828ea4dc172bfbaaf47216">bank_sel</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00185"/><link linkend="_group___d_r_i_v_e_r_s_1ga7cf5696d5640d63b078f9c5ed9aceda8">00185</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga7cf5696d5640d63b078f9c5ed9aceda8">mem_start_addr</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00186"/><link linkend="_group___d_r_i_v_e_r_s_1gaac4aac12b0e82272affd408b24dc9c95">00186</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gaac4aac12b0e82272affd408b24dc9c95">prgm_start_h</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00187"/>00187 <emphasis role="preprocessor">#if defined AK89xx_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00188"/>00188     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> s0_addr;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00189"/>00189     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> s0_reg;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00190"/>00190     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> s0_ctrl;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00191"/>00191     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> s1_addr;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00192"/>00192     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> s1_reg;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00193"/>00193     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> s1_ctrl;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00194"/>00194     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> s4_ctrl;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00195"/>00195     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> s0_do;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00196"/>00196     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> s1_do;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00197"/>00197     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> i2c_delay_ctrl;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00198"/>00198     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> raw_compass;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00199"/>00199     <emphasis role="comment">/* The I2C_MST_VDDIO bit is in this register. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00200"/>00200     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> yg_offs_tc;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00201"/>00201 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00202"/>00202 };
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00203"/>00203
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00204"/>00204 <emphasis role="comment">/* Information specific to a particular device. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00205"/><link linkend="_structhw__s">00205</link> <emphasis role="keyword">struct </emphasis><link linkend="_structhw__s">hw_s</link> {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00206"/><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">00206</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00207"/><link linkend="_group___d_r_i_v_e_r_s_1ga5f77e9f55285abb4d214b80281f69c1f">00207</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga5f77e9f55285abb4d214b80281f69c1f">max_fifo</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00208"/><link linkend="_group___d_r_i_v_e_r_s_1ga1039fa66b110194727938cd86be8c3c5">00208</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga1039fa66b110194727938cd86be8c3c5">num_reg</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00209"/><link linkend="_group___d_r_i_v_e_r_s_1gab2397f792a86b32b0957c24e3912bc63">00209</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gab2397f792a86b32b0957c24e3912bc63">temp_sens</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00210"/><link linkend="_group___d_r_i_v_e_r_s_1ga56f98c91a7c4d60ccea1ade1f3e88d04">00210</link>     <emphasis role="keywordtype">short</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga56f98c91a7c4d60ccea1ade1f3e88d04">temp_offset</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00211"/><link linkend="_group___d_r_i_v_e_r_s_1gaef4a2014cd6e3d5faeb8f713ee3606ed">00211</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gaef4a2014cd6e3d5faeb8f713ee3606ed">bank_size</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00212"/>00212 <emphasis role="preprocessor">#if defined AK89xx_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00213"/>00213     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> compass_fsr;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00214"/>00214 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00215"/>00215 };
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00216"/>00216
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00217"/>00217 <emphasis role="comment">/* When entering motion interrupt mode, the driver keeps track of the</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00218"/>00218 <emphasis role="comment"> * previous state so that it can be restored at a later time.</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00219"/>00219 <emphasis role="comment"> * TODO: This is tacky. Fix it.</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00220"/>00220 <emphasis role="comment"> */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00221"/><link linkend="_structmotion__int__cache__s">00221</link> <emphasis role="keyword">struct </emphasis><link linkend="_structmotion__int__cache__s">motion_int_cache_s</link> {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00222"/><link linkend="_group___d_r_i_v_e_r_s_1gae9614e4c92be9fc08f2aec7f34853fbc">00222</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gae9614e4c92be9fc08f2aec7f34853fbc">gyro_fsr</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00223"/><link linkend="_group___d_r_i_v_e_r_s_1gacfb901facda5ef8a02d47726db98e58e">00223</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gacfb901facda5ef8a02d47726db98e58e">accel_fsr</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00224"/><link linkend="_group___d_r_i_v_e_r_s_1gac1a1eb41631eb71481d6d247d9c67d4a">00224</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gac1a1eb41631eb71481d6d247d9c67d4a">lpf</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00225"/><link linkend="_group___d_r_i_v_e_r_s_1ga1cf6b7edfe37a51209897ccc448ec0e6">00225</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga1cf6b7edfe37a51209897ccc448ec0e6">sample_rate</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00226"/><link linkend="_group___d_r_i_v_e_r_s_1gae5416a4097b0cf39460df70094bc474d">00226</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gae5416a4097b0cf39460df70094bc474d">sensors_on</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00227"/><link linkend="_group___d_r_i_v_e_r_s_1ga41501694a84bdf70e9c660852b653273">00227</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga41501694a84bdf70e9c660852b653273">fifo_sensors</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00228"/><link linkend="_group___d_r_i_v_e_r_s_1ga6461e400e336d2ccbc8c7d95ace9461d">00228</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga6461e400e336d2ccbc8c7d95ace9461d">dmp_on</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00229"/>00229 };
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00230"/>00230
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00231"/>00231 <emphasis role="comment">/* Cached chip configuration data.</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00232"/>00232 <emphasis role="comment"> * TODO: A lot of these can be handled with a bitmask.</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00233"/>00233 <emphasis role="comment"> */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00234"/><link linkend="_structchip__cfg__s">00234</link> <emphasis role="keyword">struct </emphasis><link linkend="_structchip__cfg__s">chip_cfg_s</link> {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00235"/>00235     <emphasis role="comment">/* Matches gyro_cfg >> 3 & 0x03 */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00236"/><link linkend="_group___d_r_i_v_e_r_s_1gab45a727aeee17380828a3e20ccb375c2">00236</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gab45a727aeee17380828a3e20ccb375c2">gyro_fsr</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00237"/>00237     <emphasis role="comment">/* Matches accel_cfg >> 3 & 0x03 */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00238"/><link linkend="_group___d_r_i_v_e_r_s_1gaf66873be1446ed552812e32d40eced61">00238</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gaf66873be1446ed552812e32d40eced61">accel_fsr</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00239"/>00239     <emphasis role="comment">/* Enabled sensors. Uses same masks as fifo_en, NOT pwr_mgmt_2. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00240"/><link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">00240</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">sensors</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00241"/>00241     <emphasis role="comment">/* Matches config register. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00242"/><link linkend="_group___d_r_i_v_e_r_s_1ga16ec8ca8298f62ac01419775377270fb">00242</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga16ec8ca8298f62ac01419775377270fb">lpf</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00243"/><link linkend="_group___d_r_i_v_e_r_s_1gab7bd5165d6e62cb0d814cf3401958445">00243</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gab7bd5165d6e62cb0d814cf3401958445">clk_src</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00244"/>00244     <emphasis role="comment">/* Sample rate, NOT rate divider. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00245"/><link linkend="_group___d_r_i_v_e_r_s_1ga2660470fcf7b53e2e832a397cbe6c354">00245</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga2660470fcf7b53e2e832a397cbe6c354">sample_rate</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00246"/>00246     <emphasis role="comment">/* Matches fifo_en register. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00247"/><link linkend="_group___d_r_i_v_e_r_s_1ga88143c31b894bcd819c0e49b0ff267aa">00247</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga88143c31b894bcd819c0e49b0ff267aa">fifo_enable</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00248"/>00248     <emphasis role="comment">/* Matches int enable register. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00249"/><link linkend="_group___d_r_i_v_e_r_s_1gaa366c36057f31e6e0d4cf2ca4a1ef52f">00249</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gaa366c36057f31e6e0d4cf2ca4a1ef52f">int_enable</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00250"/>00250     <emphasis role="comment">/* 1 if devices on auxiliary I2C bus appear on the primary. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00251"/><link linkend="_group___d_r_i_v_e_r_s_1ga6d3a962d6435644c7ea68e7d65934636">00251</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga6d3a962d6435644c7ea68e7d65934636">bypass_mode</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00252"/>00252     <emphasis role="comment">/* 1 if half-sensitivity.</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00253"/>00253 <emphasis role="comment">     * NOTE: This doesn't belong here, but everything else in hw_s is const,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00254"/>00254 <emphasis role="comment">     * and this allows us to save some precious RAM.</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00255"/>00255 <emphasis role="comment">     */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00256"/><link linkend="_group___d_r_i_v_e_r_s_1gab72e3cead391dee41f28e041282d743f">00256</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gab72e3cead391dee41f28e041282d743f">accel_half</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00257"/>00257     <emphasis role="comment">/* 1 if device in low-power accel-only mode. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00258"/><link linkend="_group___d_r_i_v_e_r_s_1ga33e138d8a49744eb9b4ea0e9086cef1c">00258</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga33e138d8a49744eb9b4ea0e9086cef1c">lp_accel_mode</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00259"/>00259     <emphasis role="comment">/* 1 if interrupts are only triggered on motion events. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00260"/><link linkend="_group___d_r_i_v_e_r_s_1ga279cd5d5d78890357f2d42905d7471df">00260</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga279cd5d5d78890357f2d42905d7471df">int_motion_only</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00261"/><link linkend="_group___d_r_i_v_e_r_s_1gadf3b491a068e0225a080821516353bac">00261</link>     <emphasis role="keyword">struct </emphasis><link linkend="_structmotion__int__cache__s">motion_int_cache_s</link> <link linkend="_group___d_r_i_v_e_r_s_1gadf3b491a068e0225a080821516353bac">cache</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00262"/>00262     <emphasis role="comment">/* 1 for active low interrupts. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00263"/><link linkend="_group___d_r_i_v_e_r_s_1ga6f12e54ae8c7f2dd77954f3ab619bbb9">00263</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga6f12e54ae8c7f2dd77954f3ab619bbb9">active_low_int</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00264"/>00264     <emphasis role="comment">/* 1 for latched interrupts. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00265"/><link linkend="_group___d_r_i_v_e_r_s_1ga55ce40fc460a62829ec149edaccffe7c">00265</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga55ce40fc460a62829ec149edaccffe7c">latched_int</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00266"/>00266     <emphasis role="comment">/* 1 if DMP is enabled. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00267"/><link linkend="_group___d_r_i_v_e_r_s_1ga4783ed8aa79a3b5de798963819997c38">00267</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga4783ed8aa79a3b5de798963819997c38">dmp_on</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00268"/>00268     <emphasis role="comment">/* Ensures that DMP will only be loaded once. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00269"/><link linkend="_group___d_r_i_v_e_r_s_1ga1d2ff55e17aae1459dfad61d76054b1b">00269</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga1d2ff55e17aae1459dfad61d76054b1b">dmp_loaded</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00270"/>00270     <emphasis role="comment">/* Sampling rate used when DMP is enabled. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00271"/><link linkend="_group___d_r_i_v_e_r_s_1ga5f42b7e1e740f2fb64427417e9e2dab7">00271</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga5f42b7e1e740f2fb64427417e9e2dab7">dmp_sample_rate</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00272"/>00272 <emphasis role="preprocessor">#ifdef AK89xx_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00273"/>00273     <emphasis role="comment">/* Compass sample rate. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00274"/>00274     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> compass_sample_rate;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00275"/>00275     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> compass_addr;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00276"/>00276     <emphasis role="keywordtype">short</emphasis> mag_sens_adj[3];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00277"/>00277 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00278"/>00278 };
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00279"/>00279
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00280"/>00280 <emphasis role="comment">/* Information for self-test. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00281"/><link linkend="_structtest__s">00281</link> <emphasis role="keyword">struct </emphasis><link linkend="_structtest__s">test_s</link> {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00282"/><link linkend="_group___d_r_i_v_e_r_s_1ga330290a347407b0d92b1d77aa274993c">00282</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">long</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga330290a347407b0d92b1d77aa274993c">gyro_sens</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00283"/><link linkend="_group___d_r_i_v_e_r_s_1ga5f602885d6a544a9039b13a0cc7ac085">00283</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">long</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga5f602885d6a544a9039b13a0cc7ac085">accel_sens</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00284"/><link linkend="_group___d_r_i_v_e_r_s_1ga3bef0c9f009cea4cbe01d0ee91126d83">00284</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga3bef0c9f009cea4cbe01d0ee91126d83">reg_rate_div</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00285"/><link linkend="_group___d_r_i_v_e_r_s_1ga09f5a9ab86d36f3b83e7f4abdea73e39">00285</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga09f5a9ab86d36f3b83e7f4abdea73e39">reg_lpf</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00286"/><link linkend="_group___d_r_i_v_e_r_s_1gaa0dfe8b2c29358e9e045aaa8beff244d">00286</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gaa0dfe8b2c29358e9e045aaa8beff244d">reg_gyro_fsr</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00287"/><link linkend="_group___d_r_i_v_e_r_s_1ga3b54f67ea7f1dd47fd8aa48dda051032">00287</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga3b54f67ea7f1dd47fd8aa48dda051032">reg_accel_fsr</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00288"/><link linkend="_group___d_r_i_v_e_r_s_1gaf5d495939c8ca761ac2bbe7791dcd727">00288</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gaf5d495939c8ca761ac2bbe7791dcd727">wait_ms</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00289"/><link linkend="_group___d_r_i_v_e_r_s_1ga8af20793fdb7764bfa90f80bd74b87e7">00289</link>     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga8af20793fdb7764bfa90f80bd74b87e7">packet_thresh</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00290"/><link linkend="_group___d_r_i_v_e_r_s_1gafacfcf92f07cd846fb0aaf889a30c582">00290</link>     <emphasis role="keywordtype">float</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gafacfcf92f07cd846fb0aaf889a30c582">min_dps</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00291"/><link linkend="_group___d_r_i_v_e_r_s_1gae588d6c0105bcd8f9144f42eee6c4835">00291</link>     <emphasis role="keywordtype">float</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gae588d6c0105bcd8f9144f42eee6c4835">max_dps</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00292"/><link linkend="_group___d_r_i_v_e_r_s_1ga3b47b72fbf8c152cb4389e3cd866ded9">00292</link>     <emphasis role="keywordtype">float</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga3b47b72fbf8c152cb4389e3cd866ded9">max_gyro_var</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00293"/><link linkend="_group___d_r_i_v_e_r_s_1gae86aec181d0f1e4a29e9f9ae0735e8e1">00293</link>     <emphasis role="keywordtype">float</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gae86aec181d0f1e4a29e9f9ae0735e8e1">min_g</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00294"/><link linkend="_group___d_r_i_v_e_r_s_1ga9ebd3195ac2f460f82873b9e6c36eb2c">00294</link>     <emphasis role="keywordtype">float</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga9ebd3195ac2f460f82873b9e6c36eb2c">max_g</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00295"/><link linkend="_group___d_r_i_v_e_r_s_1ga7f6071fb91426f467d9223c712560ee6">00295</link>     <emphasis role="keywordtype">float</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga7f6071fb91426f467d9223c712560ee6">max_accel_var</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00296"/>00296 };
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00297"/>00297
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00298"/>00298 <emphasis role="comment">/* Gyro driver state variables. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00299"/><link linkend="_structgyro__state__s">00299</link> <emphasis role="keyword">struct </emphasis><link linkend="_structgyro__state__s">gyro_state_s</link> {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00300"/><link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">00300</link>     <emphasis role="keyword">const</emphasis> <emphasis role="keyword">struct </emphasis><link linkend="_structgyro__reg__s">gyro_reg_s</link> *<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00301"/><link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">00301</link>     <emphasis role="keyword">const</emphasis> <emphasis role="keyword">struct </emphasis><link linkend="_structhw__s">hw_s</link> *<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00302"/><link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">00302</link>     <emphasis role="keyword">struct </emphasis><link linkend="_structchip__cfg__s">chip_cfg_s</link> <link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00303"/><link linkend="_group___d_r_i_v_e_r_s_1ga5a1563d12b0aab5e65317621742f6f62">00303</link>     <emphasis role="keyword">const</emphasis> <emphasis role="keyword">struct </emphasis><link linkend="_structtest__s">test_s</link> *<link linkend="_group___d_r_i_v_e_r_s_1ga5a1563d12b0aab5e65317621742f6f62">test</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00304"/>00304 };
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00305"/>00305
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00306"/>00306 <emphasis role="comment">/* Filter configurations. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00307"/><link linkend="_group___d_r_i_v_e_r_s_1ga91c762a5bd71461f7911dc49ee7696e9">00307</link> <emphasis role="keyword">enum</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga91c762a5bd71461f7911dc49ee7696e9">lpf_e</link> {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00308"/><link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9a9f0263fbbdccd3c5a18fcb65be278d24">00308</link>     <link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9a9f0263fbbdccd3c5a18fcb65be278d24">INV_FILTER_256HZ_NOLPF2</link> = 0,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00309"/><link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9ab58e52e0b6be4cbaf0c7f32705a9fcec">00309</link>     <link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9ab58e52e0b6be4cbaf0c7f32705a9fcec">INV_FILTER_188HZ</link>,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00310"/><link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9a0f288da0c97b325a6cb57f1223f0cf98">00310</link>     <link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9a0f288da0c97b325a6cb57f1223f0cf98">INV_FILTER_98HZ</link>,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00311"/><link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9a995b18a52a5bd919aa9c1411a2292110">00311</link>     <link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9a995b18a52a5bd919aa9c1411a2292110">INV_FILTER_42HZ</link>,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00312"/><link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9aebecb86604e475ed8e2cb68340010ff1">00312</link>     <link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9aebecb86604e475ed8e2cb68340010ff1">INV_FILTER_20HZ</link>,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00313"/><link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9a327619f406c6b2f6a221793881013508">00313</link>     <link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9a327619f406c6b2f6a221793881013508">INV_FILTER_10HZ</link>,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00314"/><link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9abdaaf85666fd6a490ee01dcd8a315678">00314</link>     <link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9abdaaf85666fd6a490ee01dcd8a315678">INV_FILTER_5HZ</link>,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00315"/><link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9a76de97a6c2f8eb3c5d1a73d717513f5d">00315</link>     <link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9a76de97a6c2f8eb3c5d1a73d717513f5d">INV_FILTER_2100HZ_NOLPF</link>,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00316"/>00316     <link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9a053f39f04904f6103090bcba3002c4a3">NUM_FILTER</link>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00317"/><link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9a053f39f04904f6103090bcba3002c4a3">00317</link> };
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00318"/>00318
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00319"/>00319 <emphasis role="comment">/* Full scale ranges. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00320"/><link linkend="_group___d_r_i_v_e_r_s_1ga83acdc0eb37e8bfe0c2ae2348ded0a90">00320</link> <emphasis role="keyword">enum</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga83acdc0eb37e8bfe0c2ae2348ded0a90">gyro_fsr_e</link> {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00321"/><link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90a5b8251a49db5cb8a676076b0b308ae35">00321</link>     <link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90a5b8251a49db5cb8a676076b0b308ae35">INV_FSR_250DPS</link> = 0,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00322"/><link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90a50901470ff389927fd010081e2b8fd09">00322</link>     <link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90a50901470ff389927fd010081e2b8fd09">INV_FSR_500DPS</link>,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00323"/><link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90aee922e0daa4fbb404c3db6c49d897a13">00323</link>     <link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90aee922e0daa4fbb404c3db6c49d897a13">INV_FSR_1000DPS</link>,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00324"/><link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90ac0c37efc1c8acd6f70c0c5a768e5b8be">00324</link>     <link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90ac0c37efc1c8acd6f70c0c5a768e5b8be">INV_FSR_2000DPS</link>,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00325"/>00325     <link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90ab50b300433c5bc3cbc7ae8adb980c815">NUM_GYRO_FSR</link>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00326"/><link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90ab50b300433c5bc3cbc7ae8adb980c815">00326</link> };
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00327"/>00327
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00328"/>00328 <emphasis role="comment">/* Full scale ranges. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00329"/><link linkend="_group___d_r_i_v_e_r_s_1gaec8501b935143099e5f729dee221a81e">00329</link> <emphasis role="keyword">enum</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gaec8501b935143099e5f729dee221a81e">accel_fsr_e</link> {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00330"/><link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81eae27c6f69463dab7de81fac0c51ff8aa7">00330</link>     <link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81eae27c6f69463dab7de81fac0c51ff8aa7">INV_FSR_2G</link> = 0,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00331"/><link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81eaa91e3a89d0bbd01149fe71148595be6d">00331</link>     <link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81eaa91e3a89d0bbd01149fe71148595be6d">INV_FSR_4G</link>,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00332"/><link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81ea0a40371bdda397d234c53d0ee2f3be8b">00332</link>     <link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81ea0a40371bdda397d234c53d0ee2f3be8b">INV_FSR_8G</link>,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00333"/><link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81ea6712e8563c97c11b458ef721d4f5f9d5">00333</link>     <link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81ea6712e8563c97c11b458ef721d4f5f9d5">INV_FSR_16G</link>,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00334"/>00334     <link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81ea6d466b2f73b176f1dfc8a3f94ae8a4df">NUM_ACCEL_FSR</link>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00335"/><link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81ea6d466b2f73b176f1dfc8a3f94ae8a4df">00335</link> };
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00336"/>00336
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00337"/>00337 <emphasis role="comment">/* Clock sources. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00338"/><link linkend="_group___d_r_i_v_e_r_s_1ga75570f009627c6f4ddfb2d936d81e207">00338</link> <emphasis role="keyword">enum</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga75570f009627c6f4ddfb2d936d81e207">clock_sel_e</link> {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00339"/><link linkend="_group___d_r_i_v_e_r_s_1gga75570f009627c6f4ddfb2d936d81e207a92059acf8d0ff5b7e12580c15f88466f">00339</link>     <link linkend="_group___d_r_i_v_e_r_s_1gga75570f009627c6f4ddfb2d936d81e207a92059acf8d0ff5b7e12580c15f88466f">INV_CLK_INTERNAL</link> = 0,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00340"/><link linkend="_group___d_r_i_v_e_r_s_1gga75570f009627c6f4ddfb2d936d81e207a01b240917a78674d3e387110a6a8f94c">00340</link>     <link linkend="_group___d_r_i_v_e_r_s_1gga75570f009627c6f4ddfb2d936d81e207a01b240917a78674d3e387110a6a8f94c">INV_CLK_PLL</link>,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00341"/>00341     <link linkend="_group___d_r_i_v_e_r_s_1gga75570f009627c6f4ddfb2d936d81e207a7f075b0360037232fdf24f90de7be1d7">NUM_CLK</link>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00342"/><link linkend="_group___d_r_i_v_e_r_s_1gga75570f009627c6f4ddfb2d936d81e207a7f075b0360037232fdf24f90de7be1d7">00342</link> };
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00343"/>00343
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00344"/>00344 <emphasis role="comment">/* Low-power accel wakeup rates. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00345"/><link linkend="_group___d_r_i_v_e_r_s_1ga23c3fcde795e5aa2b141232d490c9ca7">00345</link> <emphasis role="keyword">enum</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga23c3fcde795e5aa2b141232d490c9ca7">lp_accel_rate_e</link> {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00346"/>00346 <emphasis role="preprocessor">#if defined MPU6050</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00347"/><link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7ab44c7d0127a9466747853533a537b567">00347</link>     <link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7ab44c7d0127a9466747853533a537b567">INV_LPA_1_25HZ</link>,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00348"/><link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7a474cac76bff369dd656cc973207a1ca5">00348</link>     <link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7a474cac76bff369dd656cc973207a1ca5">INV_LPA_5HZ</link>,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00349"/><link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7accaaf47c58dfe32cbf2ffa11fdb83108">00349</link>     <link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7accaaf47c58dfe32cbf2ffa11fdb83108">INV_LPA_20HZ</link>,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00350"/>00350     <link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7a798d2b86eafcf3fc7c7fe775f46cb4cb">INV_LPA_40HZ</link>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00351"/>00351 <emphasis role="preprocessor">#elif defined MPU6500</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00352"/>00352     INV_LPA_0_3125HZ,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00353"/>00353     INV_LPA_0_625HZ,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00354"/>00354     <link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7ab44c7d0127a9466747853533a537b567">INV_LPA_1_25HZ</link>,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00355"/>00355     INV_LPA_2_5HZ,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00356"/>00356     <link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7a474cac76bff369dd656cc973207a1ca5">INV_LPA_5HZ</link>,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00357"/>00357     INV_LPA_10HZ,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00358"/>00358     <link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7accaaf47c58dfe32cbf2ffa11fdb83108">INV_LPA_20HZ</link>,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00359"/>00359     <link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7a798d2b86eafcf3fc7c7fe775f46cb4cb">INV_LPA_40HZ</link>,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00360"/>00360     INV_LPA_80HZ,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00361"/>00361     INV_LPA_160HZ,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00362"/>00362     INV_LPA_320HZ,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00363"/>00363     INV_LPA_640HZ
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00364"/>00364 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00365"/><link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7a798d2b86eafcf3fc7c7fe775f46cb4cb">00365</link> };
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00366"/>00366
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00367"/><link linkend="_group___d_r_i_v_e_r_s_1gac52d7caf4efc485ef6faa1211bfe60dc">00367</link> <emphasis role="preprocessor">#define BIT_I2C_MST_VDDIO   (0x80)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00368"/><link linkend="_group___d_r_i_v_e_r_s_1gae3c4a18accb84992faaf2534a84a147c">00368</link> <emphasis role="preprocessor">#define BIT_FIFO_EN         (0x40)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00369"/><link linkend="_group___d_r_i_v_e_r_s_1ga02c3e9ddd63128f1c3cf50bf1e9b5fe6">00369</link> <emphasis role="preprocessor">#define BIT_DMP_EN          (0x80)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00370"/><link linkend="_group___d_r_i_v_e_r_s_1gaeae2cc64314ad05f3a93d2358a2369db">00370</link> <emphasis role="preprocessor">#define BIT_FIFO_RST        (0x04)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00371"/><link linkend="_group___d_r_i_v_e_r_s_1ga37d5ceb74c3568e4bab6dcdd0afaa95b">00371</link> <emphasis role="preprocessor">#define BIT_DMP_RST         (0x08)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00372"/><link linkend="_group___d_r_i_v_e_r_s_1gafb9b49ce5dd973b3c29ae72680924fa7">00372</link> <emphasis role="preprocessor">#define BIT_FIFO_OVERFLOW   (0x10)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00373"/><link linkend="_group___d_r_i_v_e_r_s_1ga45eec9dbc46778c356703dcf90b9e0c3">00373</link> <emphasis role="preprocessor">#define BIT_DATA_RDY_EN     (0x01)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00374"/><link linkend="_group___d_r_i_v_e_r_s_1ga4dc5309ed09fc683d8e5a247feaad69d">00374</link> <emphasis role="preprocessor">#define BIT_DMP_INT_EN      (0x02)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00375"/><link linkend="_group___d_r_i_v_e_r_s_1ga6a8f2f7f3dd17bc05d9c6286d15c7ada">00375</link> <emphasis role="preprocessor">#define BIT_MOT_INT_EN      (0x40)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00376"/><link linkend="_group___d_r_i_v_e_r_s_1ga2d9aff1be96b1fc021ca96f251c3e72b">00376</link> <emphasis role="preprocessor">#define BITS_FSR            (0x18)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00377"/><link linkend="_group___d_r_i_v_e_r_s_1ga4d83411e736da86163a61828816a200a">00377</link> <emphasis role="preprocessor">#define BITS_LPF            (0x07)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00378"/><link linkend="_group___d_r_i_v_e_r_s_1ga3c9c0234d4a71c9d35bb0da64ea867eb">00378</link> <emphasis role="preprocessor">#define BITS_HPF            (0x07)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00379"/><link linkend="_group___d_r_i_v_e_r_s_1ga1823f90ac353cf4cde25d297a8627dd4">00379</link> <emphasis role="preprocessor">#define BITS_CLK            (0x07)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00380"/><link linkend="_group___d_r_i_v_e_r_s_1ga3769fd3fa71deaef1e77ce14c26f679d">00380</link> <emphasis role="preprocessor">#define BIT_FIFO_SIZE_1024  (0x40)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00381"/><link linkend="_group___d_r_i_v_e_r_s_1ga0fa95b278851b0c05a9995f65ba2b895">00381</link> <emphasis role="preprocessor">#define BIT_FIFO_SIZE_2048  (0x80)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00382"/><link linkend="_group___d_r_i_v_e_r_s_1gac067df9d789eaae04585abfc5ffdb2b6">00382</link> <emphasis role="preprocessor">#define BIT_FIFO_SIZE_4096  (0xC0)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00383"/><link linkend="_group___d_r_i_v_e_r_s_1gaf4ce49fd1fc9b1461b5241f9ef4812f4">00383</link> <emphasis role="preprocessor">#define BIT_RESET           (0x80)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00384"/><link linkend="_group___d_r_i_v_e_r_s_1ga1fed8bd436e9b7dfccb1cae99ca89103">00384</link> <emphasis role="preprocessor">#define BIT_SLEEP           (0x40)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00385"/><link linkend="_group___d_r_i_v_e_r_s_1gac4b33689dd697c1cf2411638a017c009">00385</link> <emphasis role="preprocessor">#define BIT_S0_DELAY_EN     (0x01)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00386"/><link linkend="_group___d_r_i_v_e_r_s_1ga22e4452fe8abca7fe12a2dc45194e6df">00386</link> <emphasis role="preprocessor">#define BIT_S2_DELAY_EN     (0x04)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00387"/><link linkend="_group___d_r_i_v_e_r_s_1gabc5c2ee59baeb02a0f761740466f3c28">00387</link> <emphasis role="preprocessor">#define BITS_SLAVE_LENGTH   (0x0F)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00388"/><link linkend="_group___d_r_i_v_e_r_s_1ga5e8f3ccff1b3eeb95a938b207ca873ff">00388</link> <emphasis role="preprocessor">#define BIT_SLAVE_BYTE_SW   (0x40)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00389"/><link linkend="_group___d_r_i_v_e_r_s_1gaf616c3ecf97ffd7bde444f0b74e7453e">00389</link> <emphasis role="preprocessor">#define BIT_SLAVE_GROUP     (0x10)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00390"/><link linkend="_group___d_r_i_v_e_r_s_1gae9440f48b6d70d900366dc040a8714d7">00390</link> <emphasis role="preprocessor">#define BIT_SLAVE_EN        (0x80)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00391"/><link linkend="_group___d_r_i_v_e_r_s_1ga8ef1963ec6fb3df5586e50959cf00a70">00391</link> <emphasis role="preprocessor">#define BIT_I2C_READ        (0x80)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00392"/><link linkend="_group___d_r_i_v_e_r_s_1gab470b625fa05ff228b3fdb94802b1c0d">00392</link> <emphasis role="preprocessor">#define BITS_I2C_MASTER_DLY (0x1F)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00393"/><link linkend="_group___d_r_i_v_e_r_s_1gabcdedbd3098140aa14ad17bcaca8e176">00393</link> <emphasis role="preprocessor">#define BIT_AUX_IF_EN       (0x20)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00394"/><link linkend="_group___d_r_i_v_e_r_s_1ga8467782bedc44051c95643e303543655">00394</link> <emphasis role="preprocessor">#define BIT_ACTL            (0x80)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00395"/><link linkend="_group___d_r_i_v_e_r_s_1ga588b5a95724c4a68c6868faa78fd3a7f">00395</link> <emphasis role="preprocessor">#define BIT_LATCH_EN        (0x20)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00396"/><link linkend="_group___d_r_i_v_e_r_s_1ga1f50796ca0363292d9ac9cc1d29d9225">00396</link> <emphasis role="preprocessor">#define BIT_ANY_RD_CLR      (0x10)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00397"/><link linkend="_group___d_r_i_v_e_r_s_1gadd12a8d89e1a4c4e008b12a96dd4c75d">00397</link> <emphasis role="preprocessor">#define BIT_BYPASS_EN       (0x02)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00398"/><link linkend="_group___d_r_i_v_e_r_s_1ga75b1479e451b747afb3b24cbc4df99f7">00398</link> <emphasis role="preprocessor">#define BITS_WOM_EN         (0xC0)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00399"/><link linkend="_group___d_r_i_v_e_r_s_1ga63e6f23af37626aa1498d8c248f259e7">00399</link> <emphasis role="preprocessor">#define BIT_LPA_CYCLE       (0x20)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00400"/><link linkend="_group___d_r_i_v_e_r_s_1gacfc46ee2ea036d16b3df45c8fb241b5b">00400</link> <emphasis role="preprocessor">#define BIT_STBY_XA         (0x20)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00401"/><link linkend="_group___d_r_i_v_e_r_s_1ga49e6d38569bfc4b58ccc45dbb19001fa">00401</link> <emphasis role="preprocessor">#define BIT_STBY_YA         (0x10)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00402"/><link linkend="_group___d_r_i_v_e_r_s_1gafac8114288bae2db7ea7dbf0f6fb755c">00402</link> <emphasis role="preprocessor">#define BIT_STBY_ZA         (0x08)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00403"/><link linkend="_group___d_r_i_v_e_r_s_1ga82256fedeffe5b2443ab3ae34cf032d9">00403</link> <emphasis role="preprocessor">#define BIT_STBY_XG         (0x04)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00404"/><link linkend="_group___d_r_i_v_e_r_s_1gabf1c0a844906a5e887a659971a4af417">00404</link> <emphasis role="preprocessor">#define BIT_STBY_YG         (0x02)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00405"/><link linkend="_group___d_r_i_v_e_r_s_1ga30967a4efdf3c3f1e39814e72a4168b0">00405</link> <emphasis role="preprocessor">#define BIT_STBY_ZG         (0x01)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00406"/><link linkend="_group___d_r_i_v_e_r_s_1ga04a57159e34387dafe9b86b171c4654c">00406</link> <emphasis role="preprocessor">#define BIT_STBY_XYZA       (BIT_STBY_XA | BIT_STBY_YA | BIT_STBY_ZA)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00407"/><link linkend="_group___d_r_i_v_e_r_s_1ga4e2ef22b94b90f9b83394dfe1f688ce4">00407</link> <emphasis role="preprocessor">#define BIT_STBY_XYZG       (BIT_STBY_XG | BIT_STBY_YG | BIT_STBY_ZG)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00408"/>00408
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00409"/>00409 <emphasis role="preprocessor">#if defined AK8975_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00410"/>00410 <emphasis role="preprocessor">#define SUPPORTS_AK89xx_HIGH_SENS   (0x00)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00411"/>00411 <emphasis role="preprocessor">#define AK89xx_FSR                  (9830)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00412"/>00412 <emphasis role="preprocessor">#elif defined AK8963_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00413"/>00413 <emphasis role="preprocessor">#define SUPPORTS_AK89xx_HIGH_SENS   (0x10)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00414"/>00414 <emphasis role="preprocessor">#define AK89xx_FSR                  (4915)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00415"/>00415 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00416"/>00416
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00417"/>00417 <emphasis role="preprocessor">#ifdef AK89xx_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00418"/>00418 <emphasis role="preprocessor">#define AKM_REG_WHOAMI      (0x00)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00419"/>00419
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00420"/>00420 <emphasis role="preprocessor">#define AKM_REG_ST1         (0x02)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00421"/>00421 <emphasis role="preprocessor">#define AKM_REG_HXL         (0x03)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00422"/>00422 <emphasis role="preprocessor">#define AKM_REG_ST2         (0x09)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00423"/>00423
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00424"/>00424 <emphasis role="preprocessor">#define AKM_REG_CNTL        (0x0A)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00425"/>00425 <emphasis role="preprocessor">#define AKM_REG_ASTC        (0x0C)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00426"/>00426 <emphasis role="preprocessor">#define AKM_REG_ASAX        (0x10)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00427"/>00427 <emphasis role="preprocessor">#define AKM_REG_ASAY        (0x11)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00428"/>00428 <emphasis role="preprocessor">#define AKM_REG_ASAZ        (0x12)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00429"/>00429
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00430"/>00430 <emphasis role="preprocessor">#define AKM_DATA_READY      (0x01)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00431"/>00431 <emphasis role="preprocessor">#define AKM_DATA_OVERRUN    (0x02)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00432"/>00432 <emphasis role="preprocessor">#define AKM_OVERFLOW        (0x80)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00433"/>00433 <emphasis role="preprocessor">#define AKM_DATA_ERROR      (0x40)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00434"/>00434
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00435"/>00435 <emphasis role="preprocessor">#define AKM_BIT_SELF_TEST   (0x40)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00436"/>00436
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00437"/>00437 <emphasis role="preprocessor">#define AKM_POWER_DOWN          (0x00 | SUPPORTS_AK89xx_HIGH_SENS)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00438"/>00438 <emphasis role="preprocessor">#define AKM_SINGLE_MEASUREMENT  (0x01 | SUPPORTS_AK89xx_HIGH_SENS)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00439"/>00439 <emphasis role="preprocessor">#define AKM_FUSE_ROM_ACCESS     (0x0F | SUPPORTS_AK89xx_HIGH_SENS)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00440"/>00440 <emphasis role="preprocessor">#define AKM_MODE_SELF_TEST      (0x08 | SUPPORTS_AK89xx_HIGH_SENS)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00441"/>00441
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00442"/>00442 <emphasis role="preprocessor">#define AKM_WHOAMI      (0x48)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00443"/>00443 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00444"/>00444
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00445"/>00445 <emphasis role="preprocessor">#if defined MPU6050</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00446"/>00446 <emphasis role="comment">//const struct gyro_reg_s reg = {</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00447"/>00447 <emphasis role="comment">//    .who_am_i       = 0x75,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00448"/>00448 <emphasis role="comment">//    .rate_div       = 0x19,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00449"/>00449 <emphasis role="comment">//    .lpf            = 0x1A,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00450"/>00450 <emphasis role="comment">//    .prod_id        = 0x0C,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00451"/>00451 <emphasis role="comment">//    .user_ctrl      = 0x6A,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00452"/>00452 <emphasis role="comment">//    .fifo_en        = 0x23,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00453"/>00453 <emphasis role="comment">//    .gyro_cfg       = 0x1B,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00454"/>00454 <emphasis role="comment">//    .accel_cfg      = 0x1C,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00455"/>00455 <emphasis role="comment">//    .motion_thr     = 0x1F,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00456"/>00456 <emphasis role="comment">//    .motion_dur     = 0x20,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00457"/>00457 <emphasis role="comment">//    .fifo_count_h   = 0x72,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00458"/>00458 <emphasis role="comment">//    .fifo_r_w       = 0x74,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00459"/>00459 <emphasis role="comment">//    .raw_gyro       = 0x43,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00460"/>00460 <emphasis role="comment">//    .raw_accel      = 0x3B,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00461"/>00461 <emphasis role="comment">//    .temp           = 0x41,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00462"/>00462 <emphasis role="comment">//    .int_enable     = 0x38,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00463"/>00463 <emphasis role="comment">//    .dmp_int_status = 0x39,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00464"/>00464 <emphasis role="comment">//    .int_status     = 0x3A,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00465"/>00465 <emphasis role="comment">//    .pwr_mgmt_1     = 0x6B,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00466"/>00466 <emphasis role="comment">//    .pwr_mgmt_2     = 0x6C,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00467"/>00467 <emphasis role="comment">//    .int_pin_cfg    = 0x37,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00468"/>00468 <emphasis role="comment">//    .mem_r_w        = 0x6F,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00469"/>00469 <emphasis role="comment">//    .accel_offs     = 0x06,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00470"/>00470 <emphasis role="comment">//    .i2c_mst        = 0x24,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00471"/>00471 <emphasis role="comment">//    .bank_sel       = 0x6D,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00472"/>00472 <emphasis role="comment">//    .mem_start_addr = 0x6E,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00473"/>00473 <emphasis role="comment">//    .prgm_start_h   = 0x70</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00474"/>00474 <emphasis role="comment">//#ifdef AK89xx_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00475"/>00475 <emphasis role="comment">//    ,.raw_compass   = 0x49,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00476"/>00476 <emphasis role="comment">//    .yg_offs_tc     = 0x01,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00477"/>00477 <emphasis role="comment">//    .s0_addr        = 0x25,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00478"/>00478 <emphasis role="comment">//    .s0_reg         = 0x26,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00479"/>00479 <emphasis role="comment">//    .s0_ctrl        = 0x27,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00480"/>00480 <emphasis role="comment">//    .s1_addr        = 0x28,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00481"/>00481 <emphasis role="comment">//    .s1_reg         = 0x29,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00482"/>00482 <emphasis role="comment">//    .s1_ctrl        = 0x2A,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00483"/>00483 <emphasis role="comment">//    .s4_ctrl        = 0x34,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00484"/>00484 <emphasis role="comment">//    .s0_do          = 0x63,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00485"/>00485 <emphasis role="comment">//    .s1_do          = 0x64,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00486"/>00486 <emphasis role="comment">//    .i2c_delay_ctrl = 0x67</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00487"/>00487 <emphasis role="comment">//#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00488"/>00488 <emphasis role="comment">//};</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00489"/><link linkend="_group___d_r_i_v_e_r_s_1ga5448c351fc95ff052b110eee80e5f75c">00489</link> <emphasis role="keyword">const</emphasis> <emphasis role="keyword">struct </emphasis><link linkend="_structgyro__reg__s">gyro_reg_s</link> <link linkend="_group___d_r_i_v_e_r_s_1ga5448c351fc95ff052b110eee80e5f75c">reg</link> = {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00490"/>00490 0x75,  <emphasis role="comment">//who_am_i</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00491"/>00491 0x19,  <emphasis role="comment">//rate_div</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00492"/>00492 0x1A,  <emphasis role="comment">//lpf</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00493"/>00493 0x0C,  <emphasis role="comment">//prod_id</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00494"/>00494 0x6A,  <emphasis role="comment">//user_ctrl</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00495"/>00495 0x23,  <emphasis role="comment">//fifo_en</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00496"/>00496 0x1B,  <emphasis role="comment">//gyro_cfg</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00497"/>00497 0x1C,  <emphasis role="comment">//accel_cfg</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00498"/>00498 0x1F,  <emphasis role="comment">// motion_thr</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00499"/>00499 0x20,  <emphasis role="comment">// motion_dur</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00500"/>00500 0x72,  <emphasis role="comment">// fifo_count_h</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00501"/>00501 0x74,  <emphasis role="comment">// fifo_r_w</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00502"/>00502 0x43,  <emphasis role="comment">// raw_gyro</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00503"/>00503 0x3B,  <emphasis role="comment">// raw_accel</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00504"/>00504 0x41,  <emphasis role="comment">// temp</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00505"/>00505 0x38,  <emphasis role="comment">// int_enable</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00506"/>00506 0x39,  <emphasis role="comment">//  dmp_int_status</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00507"/>00507 0x3A,  <emphasis role="comment">//  int_status</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00508"/>00508 0x6B,  <emphasis role="comment">// pwr_mgmt_1</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00509"/>00509 0x6C,  <emphasis role="comment">// pwr_mgmt_2</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00510"/>00510 0x37,  <emphasis role="comment">// int_pin_cfg</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00511"/>00511 0x6F,  <emphasis role="comment">// mem_r_w</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00512"/>00512 0x06,  <emphasis role="comment">// accel_offs</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00513"/>00513 0x24,  <emphasis role="comment">// i2c_mst</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00514"/>00514 0x6D,  <emphasis role="comment">// bank_sel</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00515"/>00515 0x6E,  <emphasis role="comment">// mem_start_addr</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00516"/>00516 0x70   <emphasis role="comment">// prgm_start_h</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00517"/>00517 };
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00518"/>00518
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00519"/>00519 <emphasis role="comment">//const struct hw_s hw = {</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00520"/>00520 <emphasis role="comment">//    .addr           = 0x68,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00521"/>00521 <emphasis role="comment">//    .max_fifo       = 1024,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00522"/>00522 <emphasis role="comment">//    .num_reg        = 118,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00523"/>00523 <emphasis role="comment">//    .temp_sens      = 340,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00524"/>00524 <emphasis role="comment">//    .temp_offset    = -521,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00525"/>00525 <emphasis role="comment">//    .bank_size      = 256</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00526"/>00526 <emphasis role="comment">//#if defined AK89xx_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00527"/>00527 <emphasis role="comment">//    ,.compass_fsr    = AK89xx_FSR</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00528"/>00528 <emphasis role="comment">//#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00529"/>00529 <emphasis role="comment">//};</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00530"/><link linkend="_group___d_r_i_v_e_r_s_1ga7fefd0bb47e09b7e39e25e9795cd7edc">00530</link> <emphasis role="keyword">const</emphasis> <emphasis role="keyword">struct </emphasis><link linkend="_structhw__s">hw_s</link> <link linkend="_group___d_r_i_v_e_r_s_1ga7fefd0bb47e09b7e39e25e9795cd7edc">hw</link>={
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00531"/>00531   0x68,  <emphasis role="comment">//addr</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00532"/>00532   1024,  <emphasis role="comment">//max_fifo</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00533"/>00533   118,   <emphasis role="comment">//num_reg</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00534"/>00534   340,   <emphasis role="comment">//temp_sens</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00535"/>00535   -521,  <emphasis role="comment">//temp_offset</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00536"/>00536   256    <emphasis role="comment">//bank_size</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00537"/>00537 };
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00538"/>00538
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00539"/>00539 <emphasis role="comment">//const struct test_s test = {</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00540"/>00540 <emphasis role="comment">//    .gyro_sens      = 32768/250,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00541"/>00541 <emphasis role="comment">//    .accel_sens     = 32768/16,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00542"/>00542 <emphasis role="comment">//    .reg_rate_div   = 0,    /* 1kHz. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00543"/>00543 <emphasis role="comment">//    .reg_lpf        = 1,    /* 188Hz. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00544"/>00544 <emphasis role="comment">//    .reg_gyro_fsr   = 0,    /* 250dps. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00545"/>00545 <emphasis role="comment">//    .reg_accel_fsr  = 0x18, /* 16g. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00546"/>00546 <emphasis role="comment">//    .wait_ms        = 50,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00547"/>00547 <emphasis role="comment">//    .packet_thresh  = 5,    /* 5% */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00548"/>00548 <emphasis role="comment">//    .min_dps        = 10.f,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00549"/>00549 <emphasis role="comment">//    .max_dps        = 105.f,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00550"/>00550 <emphasis role="comment">//    .max_gyro_var   = 0.14f,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00551"/>00551 <emphasis role="comment">//    .min_g          = 0.3f,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00552"/>00552 <emphasis role="comment">//    .max_g          = 0.95f,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00553"/>00553 <emphasis role="comment">//    .max_accel_var  = 0.14f</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00554"/>00554 <emphasis role="comment">//};</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00555"/><link linkend="_group___d_r_i_v_e_r_s_1ga1e8f8b1ef7fb2c429e1ce7c2f9985530">00555</link> <emphasis role="keyword">const</emphasis> <emphasis role="keyword">struct </emphasis><link linkend="_structtest__s">test_s</link> <link linkend="_group___d_r_i_v_e_r_s_1ga1e8f8b1ef7fb2c429e1ce7c2f9985530">test</link>={
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00556"/>00556 32768/250,       <emphasis role="comment">//gyro_sens</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00557"/>00557 32768/16,        <emphasis role="comment">// accel_sens</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00558"/>00558 0,               <emphasis role="comment">// reg_rate_div</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00559"/>00559 1,              <emphasis role="comment">//  reg_lpf</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00560"/>00560 0,               <emphasis role="comment">// reg_gyro_fsr</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00561"/>00561 0x18,           <emphasis role="comment">//  reg_accel_fsr</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00562"/>00562 50,             <emphasis role="comment">//  wait_ms</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00563"/>00563 5,              <emphasis role="comment">//  packet_thresh</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00564"/>00564 10.0f,           <emphasis role="comment">// min_dps</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00565"/>00565 105.0f,          <emphasis role="comment">// max_dps</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00566"/>00566 0.14f,          <emphasis role="comment">//  max_gyro_var</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00567"/>00567 0.3f,          <emphasis role="comment">//   min_g</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00568"/>00568 0.95f,         <emphasis role="comment">//   max_g</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00569"/>00569 0.14f          <emphasis role="comment">//   max_accel_var</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00570"/>00570 };
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00571"/>00571
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00572"/>00572 <emphasis role="comment">//static struct gyro_state_s st = {</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00573"/>00573 <emphasis role="comment">//    .reg = &reg,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00574"/>00574 <emphasis role="comment">//    .hw = &hw,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00575"/>00575 <emphasis role="comment">//    .test = &test</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00576"/>00576 <emphasis role="comment">//};</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00577"/><link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">00577</link> <emphasis role="keyword">static</emphasis> <emphasis role="keyword">struct </emphasis><link linkend="_structgyro__state__s">gyro_state_s</link> <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>={
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00578"/>00578   &<link linkend="_group___d_r_i_v_e_r_s_1ga5448c351fc95ff052b110eee80e5f75c">reg</link>,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00579"/>00579   &<link linkend="_group___d_r_i_v_e_r_s_1ga7fefd0bb47e09b7e39e25e9795cd7edc">hw</link>,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00580"/>00580   {0},
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00581"/>00581   &<link linkend="_group___d_r_i_v_e_r_s_1ga1e8f8b1ef7fb2c429e1ce7c2f9985530">test</link>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00582"/>00582 };
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00583"/>00583
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00584"/>00584
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00585"/>00585 <emphasis role="preprocessor">#elif defined MPU6500</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00586"/>00586 <emphasis role="keyword">const</emphasis> <emphasis role="keyword">struct </emphasis><link linkend="_structgyro__reg__s">gyro_reg_s</link> <link linkend="_group___d_r_i_v_e_r_s_1ga5448c351fc95ff052b110eee80e5f75c">reg</link> = {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00587"/>00587     .<link linkend="_group___d_r_i_v_e_r_s_1ga51068a36efe9d2aedc9cb8fffacbf15b">who_am_i</link>       = 0x75,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00588"/>00588     .rate_div       = 0x19,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00589"/>00589     .lpf            = 0x1A,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00590"/>00590     .prod_id        = 0x0C,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00591"/>00591     .user_ctrl      = 0x6A,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00592"/>00592     .fifo_en        = 0x23,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00593"/>00593     .gyro_cfg       = 0x1B,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00594"/>00594     .accel_cfg      = 0x1C,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00595"/>00595     .accel_cfg2     = 0x1D,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00596"/>00596     .lp_accel_odr   = 0x1E,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00597"/>00597     .motion_thr     = 0x1F,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00598"/>00598     .motion_dur     = 0x20,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00599"/>00599     .fifo_count_h   = 0x72,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00600"/>00600     .fifo_r_w       = 0x74,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00601"/>00601     .raw_gyro       = 0x43,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00602"/>00602     .raw_accel      = 0x3B,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00603"/>00603     .temp           = 0x41,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00604"/>00604     .int_enable     = 0x38,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00605"/>00605     .dmp_int_status = 0x39,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00606"/>00606     .int_status     = 0x3A,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00607"/>00607     .accel_intel    = 0x69,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00608"/>00608     .pwr_mgmt_1     = 0x6B,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00609"/>00609     .pwr_mgmt_2     = 0x6C,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00610"/>00610     .int_pin_cfg    = 0x37,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00611"/>00611     .mem_r_w        = 0x6F,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00612"/>00612     .accel_offs     = 0x77,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00613"/>00613     .i2c_mst        = 0x24,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00614"/>00614     .bank_sel       = 0x6D,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00615"/>00615     .mem_start_addr = 0x6E,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00616"/>00616     .prgm_start_h   = 0x70
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00617"/>00617 <emphasis role="preprocessor">#ifdef AK89xx_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00618"/>00618     ,.raw_compass   = 0x49,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00619"/>00619     .s0_addr        = 0x25,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00620"/>00620     .s0_reg         = 0x26,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00621"/>00621     .s0_ctrl        = 0x27,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00622"/>00622     .s1_addr        = 0x28,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00623"/>00623     .s1_reg         = 0x29,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00624"/>00624     .s1_ctrl        = 0x2A,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00625"/>00625     .s4_ctrl        = 0x34,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00626"/>00626     .s0_do          = 0x63,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00627"/>00627     .s1_do          = 0x64,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00628"/>00628     .i2c_delay_ctrl = 0x67
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00629"/>00629 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00630"/>00630 };
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00631"/>00631 <emphasis role="keyword">const</emphasis> <emphasis role="keyword">struct </emphasis><link linkend="_structhw__s">hw_s</link> <link linkend="_group___d_r_i_v_e_r_s_1ga7fefd0bb47e09b7e39e25e9795cd7edc">hw</link> = {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00632"/>00632     .<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>           = 0x68,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00633"/>00633     .max_fifo       = 1024,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00634"/>00634     .num_reg        = 128,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00635"/>00635     .temp_sens      = 321,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00636"/>00636     .temp_offset    = 0,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00637"/>00637     .bank_size      = 256
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00638"/>00638 <emphasis role="preprocessor">#if defined AK89xx_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00639"/>00639     ,.compass_fsr    = AK89xx_FSR
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00640"/>00640 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00641"/>00641 };
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00642"/>00642
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00643"/>00643 <emphasis role="keyword">const</emphasis> <emphasis role="keyword">struct </emphasis><link linkend="_structtest__s">test_s</link> <link linkend="_group___d_r_i_v_e_r_s_1ga1e8f8b1ef7fb2c429e1ce7c2f9985530">test</link> = {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00644"/>00644     .<link linkend="_group___d_r_i_v_e_r_s_1ga330290a347407b0d92b1d77aa274993c">gyro_sens</link>      = 32768/250,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00645"/>00645     .accel_sens     = 32768/16,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00646"/>00646     .reg_rate_div   = 0,    <emphasis role="comment">/* 1kHz. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00647"/>00647     .reg_lpf        = 1,    <emphasis role="comment">/* 188Hz. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00648"/>00648     .reg_gyro_fsr   = 0,    <emphasis role="comment">/* 250dps. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00649"/>00649     .reg_accel_fsr  = 0x18, <emphasis role="comment">/* 16g. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00650"/>00650     .wait_ms        = 50,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00651"/>00651     .packet_thresh  = 5,    <emphasis role="comment">/* 5% */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00652"/>00652     .min_dps        = 10.f,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00653"/>00653     .max_dps        = 105.f,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00654"/>00654     .max_gyro_var   = 0.14f,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00655"/>00655     .min_g          = 0.3f,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00656"/>00656     .max_g          = 0.95f,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00657"/>00657     .max_accel_var  = 0.14f
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00658"/>00658 };
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00659"/>00659
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00660"/>00660 <emphasis role="keyword">static</emphasis> <emphasis role="keyword">struct </emphasis><link linkend="_structgyro__state__s">gyro_state_s</link> <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link> = {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00661"/>00661     .<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link> = &<link linkend="_group___d_r_i_v_e_r_s_1ga5448c351fc95ff052b110eee80e5f75c">reg</link>,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00662"/>00662     .hw = &<link linkend="_group___d_r_i_v_e_r_s_1ga7fefd0bb47e09b7e39e25e9795cd7edc">hw</link>,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00663"/>00663     .test = &<link linkend="_group___d_r_i_v_e_r_s_1ga1e8f8b1ef7fb2c429e1ce7c2f9985530">test</link>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00664"/>00664 };
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00665"/>00665 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00666"/>00666
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00667"/><link linkend="_group___d_r_i_v_e_r_s_1ga973c680573b37fc359fc68d0707da355">00667</link> <emphasis role="preprocessor">#define MAX_PACKET_LENGTH (12)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00668"/>00668
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00669"/>00669 <emphasis role="preprocessor">#ifdef AK89xx_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00670"/>00670 <emphasis role="keyword">static</emphasis> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga4764ce0ba4e07a4c774f69ab3b83d1f9">setup_compass</link>(<emphasis role="keywordtype">void</emphasis>);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00671"/>00671 <emphasis role="preprocessor">#define MAX_COMPASS_SAMPLE_RATE (100)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00672"/>00672 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00673"/>00673
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00681"/><link linkend="_group___d_r_i_v_e_r_s_1gafd5ebff6b0179e1dce0b68c2272cae07">00681</link> <emphasis role="keyword">static</emphasis> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gafd5ebff6b0179e1dce0b68c2272cae07">set_int_enable</link>(<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> enable)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00682"/>00682 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00683"/>00683     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> tmp;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00684"/>00684
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00685"/>00685     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga4783ed8aa79a3b5de798963819997c38">dmp_on</link>) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00686"/>00686         <emphasis role="keywordflow">if</emphasis> (enable)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00687"/>00687             tmp = <link linkend="_group___d_r_i_v_e_r_s_1ga4dc5309ed09fc683d8e5a247feaad69d">BIT_DMP_INT_EN</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00688"/>00688         <emphasis role="keywordflow">else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00689"/>00689             tmp = 0x00;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00690"/>00690         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga48b47844d4b0570e60aa6806faa59eae">int_enable</link>, 1, &tmp))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00691"/>00691             <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00692"/>00692         <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa366c36057f31e6e0d4cf2ca4a1ef52f">int_enable</link> = tmp;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00693"/>00693     } <emphasis role="keywordflow">else</emphasis> {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00694"/>00694         <emphasis role="keywordflow">if</emphasis> (!<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">sensors</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00695"/>00695             <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00696"/>00696         <emphasis role="keywordflow">if</emphasis> (enable && <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa366c36057f31e6e0d4cf2ca4a1ef52f">int_enable</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00697"/>00697             <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00698"/>00698         <emphasis role="keywordflow">if</emphasis> (enable)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00699"/>00699             tmp = <link linkend="_group___d_r_i_v_e_r_s_1ga45eec9dbc46778c356703dcf90b9e0c3">BIT_DATA_RDY_EN</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00700"/>00700         <emphasis role="keywordflow">else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00701"/>00701             tmp = 0x00;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00702"/>00702         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga48b47844d4b0570e60aa6806faa59eae">int_enable</link>, 1, &tmp))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00703"/>00703             <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00704"/>00704         <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa366c36057f31e6e0d4cf2ca4a1ef52f">int_enable</link> = tmp;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00705"/>00705     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00706"/>00706     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00707"/>00707 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00708"/>00708
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00713"/><link linkend="_group___d_r_i_v_e_r_s_1ga0e1201ecfd8453f1d89e4299528baaf6">00713</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga0e1201ecfd8453f1d89e4299528baaf6">mpu_reg_dump</link>(<emphasis role="keywordtype">void</emphasis>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00714"/>00714 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00715"/>00715     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> ii;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00716"/>00716     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> data;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00717"/>00717
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00718"/>00718     <emphasis role="keywordflow">for</emphasis> (ii = 0; ii < <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga1039fa66b110194727938cd86be8c3c5">num_reg</link>; ii++) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00719"/>00719         <emphasis role="keywordflow">if</emphasis> (ii == <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb6763dc5f368ea01ef7c733cea9dab4">fifo_r_w</link> || ii == <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gae17166b43fa12a960c0eced9a3c04bf0">mem_r_w</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00720"/>00720             <emphasis role="keywordflow">continue</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00721"/>00721         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga838d8f1c7b0d8cc83923b93bbafe1b33">i2c_read</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, ii, 1, &data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00722"/>00722             <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00723"/>00723         <link linkend="_group___d_r_i_v_e_r_s_1ga2905fba7885cd95057e1655cb4d16bda">log_i</link>(<emphasis role="stringliteral">"%#5x: %#5x\r\n"</emphasis>, ii, data);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00724"/>00724     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00725"/>00725     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00726"/>00726 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00727"/>00727
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00735"/><link linkend="_group___d_r_i_v_e_r_s_1ga5c35a3363337014e11769a0ea7c0dfa9">00735</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga5c35a3363337014e11769a0ea7c0dfa9">mpu_read_reg</link>(<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga5448c351fc95ff052b110eee80e5f75c">reg</link>, <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> *data)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00736"/>00736 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00737"/>00737     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga5448c351fc95ff052b110eee80e5f75c">reg</link> == <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb6763dc5f368ea01ef7c733cea9dab4">fifo_r_w</link> || <link linkend="_group___d_r_i_v_e_r_s_1ga5448c351fc95ff052b110eee80e5f75c">reg</link> == <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gae17166b43fa12a960c0eced9a3c04bf0">mem_r_w</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00738"/>00738         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00739"/>00739     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga5448c351fc95ff052b110eee80e5f75c">reg</link> >= <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga1039fa66b110194727938cd86be8c3c5">num_reg</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00740"/>00740         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00741"/>00741     <emphasis role="keywordflow">return</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga838d8f1c7b0d8cc83923b93bbafe1b33">i2c_read</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga5448c351fc95ff052b110eee80e5f75c">reg</link>, 1, data);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00742"/>00742 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00743"/>00743
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00757"/><link linkend="_group___d_r_i_v_e_r_s_1gac48a36b51e23bc4191ec13916bbb9d0b">00757</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gac48a36b51e23bc4191ec13916bbb9d0b">mpu_init</link>(<emphasis role="keywordtype">void</emphasis>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00758"/>00758 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00759"/>00759     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> data[6], rev;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00760"/>00760
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00761"/>00761     <emphasis role="comment">/* Reset device. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00762"/>00762     data[0] = <link linkend="_group___d_r_i_v_e_r_s_1gaf4ce49fd1fc9b1461b5241f9ef4812f4">BIT_RESET</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00763"/>00763     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gaa01fb0872030e8e2932f8d1d257ea86a">pwr_mgmt_1</link>, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00764"/>00764         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00765"/>00765     <link linkend="_group___d_r_i_v_e_r_s_1gae36aca5baf9b6b7d74992aef00686d67">delay_ms</link>(100);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00766"/>00766
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00767"/>00767     <emphasis role="comment">/* Wake up chip. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00768"/>00768     data[0] = 0x00;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00769"/>00769     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gaa01fb0872030e8e2932f8d1d257ea86a">pwr_mgmt_1</link>, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00770"/>00770         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00771"/>00771
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00772"/>00772 <emphasis role="preprocessor">#if defined MPU6050</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00773"/>00773     <emphasis role="comment">/* Check product revision. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00774"/>00774     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga838d8f1c7b0d8cc83923b93bbafe1b33">i2c_read</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gab745dd73e0c3ef01f30f96444358cb89">accel_offs</link>, 6, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00775"/>00775         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00776"/>00776     rev = ((data[5] & 0x01) << 2) | ((data[3] & 0x01) << 1) |
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00777"/>00777         (data[1] & 0x01);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00778"/>00778
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00779"/>00779     <emphasis role="keywordflow">if</emphasis> (rev) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00780"/>00780         <emphasis role="comment">/* Congrats, these parts are better. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00781"/>00781         <emphasis role="keywordflow">if</emphasis> (rev == 1)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00782"/>00782             <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gab72e3cead391dee41f28e041282d743f">accel_half</link> = 1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00783"/>00783         <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (rev == 2)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00784"/>00784             <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gab72e3cead391dee41f28e041282d743f">accel_half</link> = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00785"/>00785         <emphasis role="keywordflow">else</emphasis> {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00786"/>00786             <link linkend="_group___d_r_i_v_e_r_s_1gab354affc295f7d61fe8a355c9361cc5a">log_e</link>(<emphasis role="stringliteral">"Unsupported software product rev %d.\n"</emphasis>, rev);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00787"/>00787             <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00788"/>00788         }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00789"/>00789     } <emphasis role="keywordflow">else</emphasis> {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00790"/>00790         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga838d8f1c7b0d8cc83923b93bbafe1b33">i2c_read</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gaf418d8a6b0e262df54ab8a6a5228011c">prod_id</link>, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00791"/>00791             <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00792"/>00792         rev = data[0] & 0x0F;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00793"/>00793         <emphasis role="keywordflow">if</emphasis> (!rev) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00794"/>00794             <link linkend="_group___d_r_i_v_e_r_s_1gab354affc295f7d61fe8a355c9361cc5a">log_e</link>(<emphasis role="stringliteral">"Product ID read as 0 indicates device is either "</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00795"/>00795                 <emphasis role="stringliteral">"incompatible or an MPU3050.\n"</emphasis>);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00796"/>00796             <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00797"/>00797         } <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (rev == 4) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00798"/>00798             <link linkend="_group___d_r_i_v_e_r_s_1ga2905fba7885cd95057e1655cb4d16bda">log_i</link>(<emphasis role="stringliteral">"Half sensitivity part found.\n"</emphasis>);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00799"/>00799             <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gab72e3cead391dee41f28e041282d743f">accel_half</link> = 1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00800"/>00800         } <emphasis role="keywordflow">else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00801"/>00801             <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gab72e3cead391dee41f28e041282d743f">accel_half</link> = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00802"/>00802     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00803"/>00803 <emphasis role="preprocessor">#elif defined MPU6500</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00804"/>00804 <emphasis role="preprocessor">#define MPU6500_MEM_REV_ADDR    (0x17)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00805"/>00805     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3374bececb6743893c9eab27645c1182">mpu_read_mem</link>(MPU6500_MEM_REV_ADDR, 1, &rev))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00806"/>00806         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00807"/>00807     <emphasis role="keywordflow">if</emphasis> (rev == 0x1)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00808"/>00808         <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gab72e3cead391dee41f28e041282d743f">accel_half</link> = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00809"/>00809     <emphasis role="keywordflow">else</emphasis> {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00810"/>00810         <link linkend="_group___d_r_i_v_e_r_s_1gab354affc295f7d61fe8a355c9361cc5a">log_e</link>(<emphasis role="stringliteral">"Unsupported software product rev %d.\n"</emphasis>, rev);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00811"/>00811         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00812"/>00812     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00813"/>00813
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00814"/>00814     <emphasis role="comment">/* MPU6500 shares 4kB of memory between the DMP and the FIFO. Since the</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00815"/>00815 <emphasis role="comment">     * first 3kB are needed by the DMP, we'll use the last 1kB for the FIFO.</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00816"/>00816 <emphasis role="comment">     */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00817"/>00817     data[0] = <link linkend="_group___d_r_i_v_e_r_s_1ga3769fd3fa71deaef1e77ce14c26f679d">BIT_FIFO_SIZE_1024</link> | 0x8;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00818"/>00818     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>->accel_cfg2, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00819"/>00819         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00820"/>00820 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00821"/>00821
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00822"/>00822     <emphasis role="comment">/* Set to invalid values to ensure no I2C writes are skipped. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00823"/>00823     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">sensors</link> = 0xFF;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00824"/>00824     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gab45a727aeee17380828a3e20ccb375c2">gyro_fsr</link> = 0xFF;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00825"/>00825     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaf66873be1446ed552812e32d40eced61">accel_fsr</link> = 0xFF;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00826"/>00826     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga16ec8ca8298f62ac01419775377270fb">lpf</link> = 0xFF;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00827"/>00827     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga2660470fcf7b53e2e832a397cbe6c354">sample_rate</link> = 0xFFFF;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00828"/>00828     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga88143c31b894bcd819c0e49b0ff267aa">fifo_enable</link> = 0xFF;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00829"/>00829     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga6d3a962d6435644c7ea68e7d65934636">bypass_mode</link> = 0xFF;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00830"/>00830 <emphasis role="preprocessor">#ifdef AK89xx_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00831"/>00831     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.compass_sample_rate = 0xFFFF;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00832"/>00832 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00833"/>00833     <emphasis role="comment">/* mpu_set_sensors always preserves this setting. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00834"/>00834     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gab7bd5165d6e62cb0d814cf3401958445">clk_src</link> = <link linkend="_group___d_r_i_v_e_r_s_1gga75570f009627c6f4ddfb2d936d81e207a01b240917a78674d3e387110a6a8f94c">INV_CLK_PLL</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00835"/>00835     <emphasis role="comment">/* Handled in next call to mpu_set_bypass. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00836"/>00836     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga6f12e54ae8c7f2dd77954f3ab619bbb9">active_low_int</link> = 1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00837"/>00837     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga55ce40fc460a62829ec149edaccffe7c">latched_int</link> = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00838"/>00838     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga279cd5d5d78890357f2d42905d7471df">int_motion_only</link> = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00839"/>00839     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga33e138d8a49744eb9b4ea0e9086cef1c">lp_accel_mode</link> = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00840"/>00840     memset(&<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gadf3b491a068e0225a080821516353bac">cache</link>, 0, <emphasis role="keyword">sizeof</emphasis>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gadf3b491a068e0225a080821516353bac">cache</link>));
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00841"/>00841     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga4783ed8aa79a3b5de798963819997c38">dmp_on</link> = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00842"/>00842     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga1d2ff55e17aae1459dfad61d76054b1b">dmp_loaded</link> = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00843"/>00843     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga5f42b7e1e740f2fb64427417e9e2dab7">dmp_sample_rate</link> = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00844"/>00844
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00845"/>00845     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gad09e6031c8677adc0b8a39b6deea8e27">mpu_set_gyro_fsr</link>(2000))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00846"/>00846         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00847"/>00847     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga2713a96af104cfb2ae8e0ed4c3718119">mpu_set_accel_fsr</link>(2))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00848"/>00848         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00849"/>00849     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga5661a9dee25152166769910767a2a93d">mpu_set_lpf</link>(42))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00850"/>00850         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00851"/>00851     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga0144d666a67a82888b8580002afe8b55">mpu_set_sample_rate</link>(50))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00852"/>00852         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00853"/>00853     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gababbdda287e1f19323489f90a0889dd7">mpu_configure_fifo</link>(0))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00854"/>00854         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00855"/>00855
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00856"/>00856 <emphasis role="comment">//    if (int_param)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00857"/>00857 <emphasis role="comment">//        reg_int_cb(int_param);</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00858"/>00858
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00859"/>00859 <emphasis role="preprocessor">#ifdef AK89xx_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00860"/>00860     <link linkend="_group___d_r_i_v_e_r_s_1ga4764ce0ba4e07a4c774f69ab3b83d1f9">setup_compass</link>();
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00861"/>00861     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga78da3828de0ef9d080c4d03e7bc45e7b">mpu_set_compass_sample_rate</link>(10))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00862"/>00862         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00863"/>00863 <emphasis role="preprocessor">#else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00864"/>00864     <emphasis role="comment">/* Already disabled by setup_compass. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00865"/>00865     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga36f70f38371b48d81094d3b061233e15">mpu_set_bypass</link>(0))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00866"/>00866         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00867"/>00867 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00868"/>00868
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00869"/>00869     <link linkend="_group___d_r_i_v_e_r_s_1ga6e77e7cc1cf6be5e8fdf617c5b4586d1">mpu_set_sensors</link>(0);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00870"/>00870     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00871"/>00871 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00872"/>00872
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00888"/><link linkend="_group___d_r_i_v_e_r_s_1ga3a4fea75686ab7d2e68634e81ccac04c">00888</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga3a4fea75686ab7d2e68634e81ccac04c">mpu_lp_accel_mode</link>(<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> rate)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00889"/>00889 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00890"/>00890     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> tmp[2];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00891"/>00891
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00892"/>00892     <emphasis role="keywordflow">if</emphasis> (rate > 40)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00893"/>00893         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00894"/>00894
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00895"/>00895     <emphasis role="keywordflow">if</emphasis> (!rate) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00896"/>00896         <link linkend="_group___d_r_i_v_e_r_s_1ga653cb855300bff9285ce4b8dca6a503b">mpu_set_int_latched</link>(0);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00897"/>00897         tmp[0] = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00898"/>00898         tmp[1] = <link linkend="_group___d_r_i_v_e_r_s_1ga4e2ef22b94b90f9b83394dfe1f688ce4">BIT_STBY_XYZG</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00899"/>00899         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gaa01fb0872030e8e2932f8d1d257ea86a">pwr_mgmt_1</link>, 2, tmp))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00900"/>00900             <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00901"/>00901         <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga33e138d8a49744eb9b4ea0e9086cef1c">lp_accel_mode</link> = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00902"/>00902         <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00903"/>00903     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00904"/>00904     <emphasis role="comment">/* For LP accel, we automatically configure the hardware to produce latched</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00905"/>00905 <emphasis role="comment">     * interrupts. In LP accel mode, the hardware cycles into sleep mode before</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00906"/>00906 <emphasis role="comment">     * it gets a chance to deassert the interrupt pin; therefore, we shift this</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00907"/>00907 <emphasis role="comment">     * responsibility over to the MCU.</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00908"/>00908 <emphasis role="comment">     *</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00909"/>00909 <emphasis role="comment">     * Any register read will clear the interrupt.</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00910"/>00910 <emphasis role="comment">     */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00911"/>00911     <link linkend="_group___d_r_i_v_e_r_s_1ga653cb855300bff9285ce4b8dca6a503b">mpu_set_int_latched</link>(1);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00912"/>00912 <emphasis role="preprocessor">#if defined MPU6050</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00913"/>00913     tmp[0] = <link linkend="_group___d_r_i_v_e_r_s_1ga63e6f23af37626aa1498d8c248f259e7">BIT_LPA_CYCLE</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00914"/>00914     <emphasis role="keywordflow">if</emphasis> (rate == 1) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00915"/>00915         tmp[1] = <link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7ab44c7d0127a9466747853533a537b567">INV_LPA_1_25HZ</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00916"/>00916         <link linkend="_group___d_r_i_v_e_r_s_1ga5661a9dee25152166769910767a2a93d">mpu_set_lpf</link>(5);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00917"/>00917     } <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (rate <= 5) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00918"/>00918         tmp[1] = <link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7a474cac76bff369dd656cc973207a1ca5">INV_LPA_5HZ</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00919"/>00919         <link linkend="_group___d_r_i_v_e_r_s_1ga5661a9dee25152166769910767a2a93d">mpu_set_lpf</link>(5);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00920"/>00920     } <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (rate <= 20) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00921"/>00921         tmp[1] = <link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7accaaf47c58dfe32cbf2ffa11fdb83108">INV_LPA_20HZ</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00922"/>00922         <link linkend="_group___d_r_i_v_e_r_s_1ga5661a9dee25152166769910767a2a93d">mpu_set_lpf</link>(10);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00923"/>00923     } <emphasis role="keywordflow">else</emphasis> {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00924"/>00924         tmp[1] = <link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7a798d2b86eafcf3fc7c7fe775f46cb4cb">INV_LPA_40HZ</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00925"/>00925         <link linkend="_group___d_r_i_v_e_r_s_1ga5661a9dee25152166769910767a2a93d">mpu_set_lpf</link>(20);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00926"/>00926     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00927"/>00927     tmp[1] = (tmp[1] << 6) | <link linkend="_group___d_r_i_v_e_r_s_1ga4e2ef22b94b90f9b83394dfe1f688ce4">BIT_STBY_XYZG</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00928"/>00928     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gaa01fb0872030e8e2932f8d1d257ea86a">pwr_mgmt_1</link>, 2, tmp))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00929"/>00929         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00930"/>00930 <emphasis role="preprocessor">#elif defined MPU6500</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00931"/>00931     <emphasis role="comment">/* Set wake frequency. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00932"/>00932     <emphasis role="keywordflow">if</emphasis> (rate == 1)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00933"/>00933         tmp[0] = <link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7ab44c7d0127a9466747853533a537b567">INV_LPA_1_25HZ</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00934"/>00934     <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (rate == 2)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00935"/>00935         tmp[0] = INV_LPA_2_5HZ;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00936"/>00936     <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (rate <= 5)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00937"/>00937         tmp[0] = <link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7a474cac76bff369dd656cc973207a1ca5">INV_LPA_5HZ</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00938"/>00938     <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (rate <= 10)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00939"/>00939         tmp[0] = INV_LPA_10HZ;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00940"/>00940     <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (rate <= 20)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00941"/>00941         tmp[0] = <link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7accaaf47c58dfe32cbf2ffa11fdb83108">INV_LPA_20HZ</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00942"/>00942     <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (rate <= 40)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00943"/>00943         tmp[0] = <link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7a798d2b86eafcf3fc7c7fe775f46cb4cb">INV_LPA_40HZ</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00944"/>00944     <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (rate <= 80)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00945"/>00945         tmp[0] = INV_LPA_80HZ;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00946"/>00946     <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (rate <= 160)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00947"/>00947         tmp[0] = INV_LPA_160HZ;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00948"/>00948     <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (rate <= 320)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00949"/>00949         tmp[0] = INV_LPA_320HZ;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00950"/>00950     <emphasis role="keywordflow">else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00951"/>00951         tmp[0] = INV_LPA_640HZ;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00952"/>00952     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>->lp_accel_odr, 1, tmp))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00953"/>00953         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00954"/>00954     tmp[0] = <link linkend="_group___d_r_i_v_e_r_s_1ga63e6f23af37626aa1498d8c248f259e7">BIT_LPA_CYCLE</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00955"/>00955     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gaa01fb0872030e8e2932f8d1d257ea86a">pwr_mgmt_1</link>, 1, tmp))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00956"/>00956         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00957"/>00957 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00958"/>00958     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">sensors</link> = <link linkend="_group___d_r_i_v_e_r_s_1gaa03f025a17ed491e70b88274e89c75c5">INV_XYZ_ACCEL</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00959"/>00959     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gab7bd5165d6e62cb0d814cf3401958445">clk_src</link> = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00960"/>00960     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga33e138d8a49744eb9b4ea0e9086cef1c">lp_accel_mode</link> = 1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00961"/>00961     <link linkend="_group___d_r_i_v_e_r_s_1gababbdda287e1f19323489f90a0889dd7">mpu_configure_fifo</link>(0);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00962"/>00962
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00963"/>00963     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00964"/>00964 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00965"/>00965
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00972"/><link linkend="_group___d_r_i_v_e_r_s_1ga5555854590ad11495c0e30401294bae2">00972</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga5555854590ad11495c0e30401294bae2">mpu_get_gyro_reg</link>(<emphasis role="keywordtype">short</emphasis> *data, <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">long</emphasis> *timestamp)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00973"/>00973 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00974"/>00974     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> tmp[6];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00975"/>00975
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00976"/>00976     <emphasis role="keywordflow">if</emphasis> (!(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">sensors</link> & <link linkend="_group___d_r_i_v_e_r_s_1ga3fdc30f9c0a26c2c4e2bb88921f91629">INV_XYZ_GYRO</link>))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00977"/>00977         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00978"/>00978
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00979"/>00979     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga838d8f1c7b0d8cc83923b93bbafe1b33">i2c_read</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gab5c2246c44bb36b21596fe5acf7ec0d4">raw_gyro</link>, 6, tmp))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00980"/>00980         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00981"/>00981     data[0] = (tmp[0] << 8) | tmp[1];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00982"/>00982     data[1] = (tmp[2] << 8) | tmp[3];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00983"/>00983     data[2] = (tmp[4] << 8) | tmp[5];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00984"/>00984     <emphasis role="keywordflow">if</emphasis> (timestamp)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00985"/>00985         <link linkend="_group___d_r_i_v_e_r_s_1ga3e6b6bc6d1cd2956353a31bfadd3c332">get_ms</link>(timestamp);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00986"/>00986     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00987"/>00987 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00988"/>00988
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00995"/><link linkend="_group___d_r_i_v_e_r_s_1gae4ae960e5df78049ece2647772a3d809">00995</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gae4ae960e5df78049ece2647772a3d809">mpu_get_accel_reg</link>(<emphasis role="keywordtype">short</emphasis> *data, <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">long</emphasis> *timestamp)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00996"/>00996 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00997"/>00997     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> tmp[6];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00998"/>00998
|
||
<anchor xml:id="_inv__mpu_8c_source_1l00999"/>00999     <emphasis role="keywordflow">if</emphasis> (!(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">sensors</link> & <link linkend="_group___d_r_i_v_e_r_s_1gaa03f025a17ed491e70b88274e89c75c5">INV_XYZ_ACCEL</link>))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01000"/>01000         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01001"/>01001
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01002"/>01002     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga838d8f1c7b0d8cc83923b93bbafe1b33">i2c_read</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga9b7c162cea6a3deeaac41444c613b7bc">raw_accel</link>, 6, tmp))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01003"/>01003         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01004"/>01004     data[0] = (tmp[0] << 8) | tmp[1];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01005"/>01005     data[1] = (tmp[2] << 8) | tmp[3];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01006"/>01006     data[2] = (tmp[4] << 8) | tmp[5];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01007"/>01007     <emphasis role="keywordflow">if</emphasis> (timestamp)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01008"/>01008         <link linkend="_group___d_r_i_v_e_r_s_1ga3e6b6bc6d1cd2956353a31bfadd3c332">get_ms</link>(timestamp);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01009"/>01009     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01010"/>01010 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01011"/>01011
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01018"/><link linkend="_group___d_r_i_v_e_r_s_1gaa449b565a157b4b8ca0f491b7ed46018">01018</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gaa449b565a157b4b8ca0f491b7ed46018">mpu_get_temperature</link>(<emphasis role="keywordtype">long</emphasis> *data, <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">long</emphasis> *timestamp)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01019"/>01019 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01020"/>01020     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> tmp[2];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01021"/>01021     <emphasis role="keywordtype">short</emphasis> raw;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01022"/>01022
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01023"/>01023     <emphasis role="keywordflow">if</emphasis> (!(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">sensors</link>))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01024"/>01024         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01025"/>01025
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01026"/>01026     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga838d8f1c7b0d8cc83923b93bbafe1b33">i2c_read</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga47674fab0681811c1b733462944e0233">temp</link>, 2, tmp))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01027"/>01027         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01028"/>01028     raw = (tmp[0] << 8) | tmp[1];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01029"/>01029     <emphasis role="keywordflow">if</emphasis> (timestamp)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01030"/>01030         <link linkend="_group___d_r_i_v_e_r_s_1ga3e6b6bc6d1cd2956353a31bfadd3c332">get_ms</link>(timestamp);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01031"/>01031
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01032"/>01032     data[0] = (long)((35 + ((raw - (<emphasis role="keywordtype">float</emphasis>)<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga56f98c91a7c4d60ccea1ade1f3e88d04">temp_offset</link>) / <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gab2397f792a86b32b0957c24e3912bc63">temp_sens</link>)) * 65536L);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01033"/>01033     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01034"/>01034 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01035"/>01035
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01043"/><link linkend="_group___d_r_i_v_e_r_s_1ga4968cc2ec80f0da0d72436551c81f134">01043</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga4968cc2ec80f0da0d72436551c81f134">mpu_set_accel_bias</link>(<emphasis role="keyword">const</emphasis> <emphasis role="keywordtype">long</emphasis> *accel_bias)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01044"/>01044 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01045"/>01045     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> data[6];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01046"/>01046     <emphasis role="keywordtype">short</emphasis> accel_hw[3];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01047"/>01047     <emphasis role="keywordtype">short</emphasis> got_accel[3];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01048"/>01048     <emphasis role="keywordtype">short</emphasis> fg[3];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01049"/>01049
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01050"/>01050     <emphasis role="keywordflow">if</emphasis> (!accel_bias)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01051"/>01051         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01052"/>01052     <emphasis role="keywordflow">if</emphasis> (!accel_bias[0] && !accel_bias[1] && !accel_bias[2])
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01053"/>01053         <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01054"/>01054
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01055"/>01055     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga838d8f1c7b0d8cc83923b93bbafe1b33">i2c_read</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, 3, 3, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01056"/>01056         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01057"/>01057     fg[0] = ((data[0] >> 4) + 8) & 0xf;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01058"/>01058     fg[1] = ((data[1] >> 4) + 8) & 0xf;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01059"/>01059     fg[2] = ((data[2] >> 4) + 8) & 0xf;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01060"/>01060
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01061"/>01061     accel_hw[0] = (short)(accel_bias[0] * 2 / (64 + fg[0]));
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01062"/>01062     accel_hw[1] = (short)(accel_bias[1] * 2 / (64 + fg[1]));
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01063"/>01063     accel_hw[2] = (short)(accel_bias[2] * 2 / (64 + fg[2]));
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01064"/>01064
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01065"/>01065     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga838d8f1c7b0d8cc83923b93bbafe1b33">i2c_read</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, 0x06, 6, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01066"/>01066         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01067"/>01067
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01068"/>01068     got_accel[0] = ((short)data[0] << 8) | data[1];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01069"/>01069     got_accel[1] = ((short)data[2] << 8) | data[3];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01070"/>01070     got_accel[2] = ((short)data[4] << 8) | data[5];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01071"/>01071
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01072"/>01072     accel_hw[0] += got_accel[0];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01073"/>01073     accel_hw[1] += got_accel[1];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01074"/>01074     accel_hw[2] += got_accel[2];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01075"/>01075
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01076"/>01076     data[0] = (accel_hw[0] >> 8) & 0xff;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01077"/>01077     data[1] = (accel_hw[0]) & 0xff;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01078"/>01078     data[2] = (accel_hw[1] >> 8) & 0xff;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01079"/>01079     data[3] = (accel_hw[1]) & 0xff;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01080"/>01080     data[4] = (accel_hw[2] >> 8) & 0xff;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01081"/>01081     data[5] = (accel_hw[2]) & 0xff;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01082"/>01082
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01083"/>01083     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, 0x06, 6, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01084"/>01084         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01085"/>01085     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01086"/>01086 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01087"/>01087
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01092"/><link linkend="_group___d_r_i_v_e_r_s_1gaf23e9f57c0059be6ec57862f0584de10">01092</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gaf23e9f57c0059be6ec57862f0584de10">mpu_reset_fifo</link>(<emphasis role="keywordtype">void</emphasis>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01093"/>01093 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01094"/>01094     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> data;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01095"/>01095
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01096"/>01096     <emphasis role="keywordflow">if</emphasis> (!(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">sensors</link>))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01097"/>01097         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01098"/>01098
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01099"/>01099     data = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01100"/>01100     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga48b47844d4b0570e60aa6806faa59eae">int_enable</link>, 1, &data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01101"/>01101         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01102"/>01102     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga6a392b7ecae843c734db3d832f11af49">fifo_en</link>, 1, &data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01103"/>01103         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01104"/>01104     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga12505a7d8cd7c976e5571f27a6160d23">user_ctrl</link>, 1, &data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01105"/>01105         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01106"/>01106
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01107"/>01107     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga4783ed8aa79a3b5de798963819997c38">dmp_on</link>) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01108"/>01108         data = <link linkend="_group___d_r_i_v_e_r_s_1gaeae2cc64314ad05f3a93d2358a2369db">BIT_FIFO_RST</link> | <link linkend="_group___d_r_i_v_e_r_s_1ga37d5ceb74c3568e4bab6dcdd0afaa95b">BIT_DMP_RST</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01109"/>01109         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga12505a7d8cd7c976e5571f27a6160d23">user_ctrl</link>, 1, &data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01110"/>01110             <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01111"/>01111         <link linkend="_group___d_r_i_v_e_r_s_1gae36aca5baf9b6b7d74992aef00686d67">delay_ms</link>(50);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01112"/>01112         data = <link linkend="_group___d_r_i_v_e_r_s_1ga02c3e9ddd63128f1c3cf50bf1e9b5fe6">BIT_DMP_EN</link> | <link linkend="_group___d_r_i_v_e_r_s_1gae3c4a18accb84992faaf2534a84a147c">BIT_FIFO_EN</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01113"/>01113         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">sensors</link> & <link linkend="_group___d_r_i_v_e_r_s_1ga7fc9c1dbdcb2ac8cc2a4128a5799482a">INV_XYZ_COMPASS</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01114"/>01114             data |= <link linkend="_group___d_r_i_v_e_r_s_1gabcdedbd3098140aa14ad17bcaca8e176">BIT_AUX_IF_EN</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01115"/>01115         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga12505a7d8cd7c976e5571f27a6160d23">user_ctrl</link>, 1, &data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01116"/>01116             <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01117"/>01117         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa366c36057f31e6e0d4cf2ca4a1ef52f">int_enable</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01118"/>01118             data = <link linkend="_group___d_r_i_v_e_r_s_1ga4dc5309ed09fc683d8e5a247feaad69d">BIT_DMP_INT_EN</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01119"/>01119         <emphasis role="keywordflow">else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01120"/>01120             data = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01121"/>01121         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga48b47844d4b0570e60aa6806faa59eae">int_enable</link>, 1, &data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01122"/>01122             <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01123"/>01123         data = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01124"/>01124         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga6a392b7ecae843c734db3d832f11af49">fifo_en</link>, 1, &data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01125"/>01125             <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01126"/>01126     } <emphasis role="keywordflow">else</emphasis> {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01127"/>01127         data = <link linkend="_group___d_r_i_v_e_r_s_1gaeae2cc64314ad05f3a93d2358a2369db">BIT_FIFO_RST</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01128"/>01128         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga12505a7d8cd7c976e5571f27a6160d23">user_ctrl</link>, 1, &data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01129"/>01129             <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01130"/>01130         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga6d3a962d6435644c7ea68e7d65934636">bypass_mode</link> || !(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">sensors</link> & <link linkend="_group___d_r_i_v_e_r_s_1ga7fc9c1dbdcb2ac8cc2a4128a5799482a">INV_XYZ_COMPASS</link>))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01131"/>01131             data = <link linkend="_group___d_r_i_v_e_r_s_1gae3c4a18accb84992faaf2534a84a147c">BIT_FIFO_EN</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01132"/>01132         <emphasis role="keywordflow">else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01133"/>01133             data = <link linkend="_group___d_r_i_v_e_r_s_1gae3c4a18accb84992faaf2534a84a147c">BIT_FIFO_EN</link> | <link linkend="_group___d_r_i_v_e_r_s_1gabcdedbd3098140aa14ad17bcaca8e176">BIT_AUX_IF_EN</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01134"/>01134         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga12505a7d8cd7c976e5571f27a6160d23">user_ctrl</link>, 1, &data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01135"/>01135             <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01136"/>01136         <link linkend="_group___d_r_i_v_e_r_s_1gae36aca5baf9b6b7d74992aef00686d67">delay_ms</link>(50);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01137"/>01137         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa366c36057f31e6e0d4cf2ca4a1ef52f">int_enable</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01138"/>01138             data = <link linkend="_group___d_r_i_v_e_r_s_1ga45eec9dbc46778c356703dcf90b9e0c3">BIT_DATA_RDY_EN</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01139"/>01139         <emphasis role="keywordflow">else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01140"/>01140             data = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01141"/>01141         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga48b47844d4b0570e60aa6806faa59eae">int_enable</link>, 1, &data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01142"/>01142             <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01143"/>01143         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga6a392b7ecae843c734db3d832f11af49">fifo_en</link>, 1, &<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga88143c31b894bcd819c0e49b0ff267aa">fifo_enable</link>))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01144"/>01144             <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01145"/>01145     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01146"/>01146     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01147"/>01147 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01148"/>01148
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01154"/><link linkend="_group___d_r_i_v_e_r_s_1gaf973c32c73ba912ff512aab948fc31ca">01154</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gaf973c32c73ba912ff512aab948fc31ca">mpu_get_gyro_fsr</link>(<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> *fsr)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01155"/>01155 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01156"/>01156     <emphasis role="keywordflow">switch</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gab45a727aeee17380828a3e20ccb375c2">gyro_fsr</link>) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01157"/>01157     <emphasis role="keywordflow">case</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90a5b8251a49db5cb8a676076b0b308ae35">INV_FSR_250DPS</link>:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01158"/>01158         fsr[0] = 250;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01159"/>01159         <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01160"/>01160     <emphasis role="keywordflow">case</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90a50901470ff389927fd010081e2b8fd09">INV_FSR_500DPS</link>:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01161"/>01161         fsr[0] = 500;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01162"/>01162         <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01163"/>01163     <emphasis role="keywordflow">case</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90aee922e0daa4fbb404c3db6c49d897a13">INV_FSR_1000DPS</link>:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01164"/>01164         fsr[0] = 1000;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01165"/>01165         <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01166"/>01166     <emphasis role="keywordflow">case</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90ac0c37efc1c8acd6f70c0c5a768e5b8be">INV_FSR_2000DPS</link>:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01167"/>01167         fsr[0] = 2000;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01168"/>01168         <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01169"/>01169     <emphasis role="keywordflow">default</emphasis>:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01170"/>01170         fsr[0] = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01171"/>01171         <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01172"/>01172     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01173"/>01173     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01174"/>01174 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01175"/>01175
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01181"/><link linkend="_group___d_r_i_v_e_r_s_1gad09e6031c8677adc0b8a39b6deea8e27">01181</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gad09e6031c8677adc0b8a39b6deea8e27">mpu_set_gyro_fsr</link>(<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> fsr)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01182"/>01182 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01183"/>01183     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> data;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01184"/>01184
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01185"/>01185     <emphasis role="keywordflow">if</emphasis> (!(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">sensors</link>))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01186"/>01186         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01187"/>01187
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01188"/>01188     <emphasis role="keywordflow">switch</emphasis> (fsr) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01189"/>01189     <emphasis role="keywordflow">case</emphasis> 250:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01190"/>01190         data = <link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90a5b8251a49db5cb8a676076b0b308ae35">INV_FSR_250DPS</link> << 3;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01191"/>01191         <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01192"/>01192     <emphasis role="keywordflow">case</emphasis> 500:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01193"/>01193         data = <link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90a50901470ff389927fd010081e2b8fd09">INV_FSR_500DPS</link> << 3;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01194"/>01194         <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01195"/>01195     <emphasis role="keywordflow">case</emphasis> 1000:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01196"/>01196         data = <link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90aee922e0daa4fbb404c3db6c49d897a13">INV_FSR_1000DPS</link> << 3;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01197"/>01197         <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01198"/>01198     <emphasis role="keywordflow">case</emphasis> 2000:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01199"/>01199         data = <link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90ac0c37efc1c8acd6f70c0c5a768e5b8be">INV_FSR_2000DPS</link> << 3;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01200"/>01200         <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01201"/>01201     <emphasis role="keywordflow">default</emphasis>:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01202"/>01202         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01203"/>01203     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01204"/>01204
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01205"/>01205     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gab45a727aeee17380828a3e20ccb375c2">gyro_fsr</link> == (data >> 3))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01206"/>01206         <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01207"/>01207     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gada0b973f74cc874552f079fd58c435a6">gyro_cfg</link>, 1, &data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01208"/>01208         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01209"/>01209     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gab45a727aeee17380828a3e20ccb375c2">gyro_fsr</link> = data >> 3;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01210"/>01210     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01211"/>01211 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01212"/>01212
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01218"/><link linkend="_group___d_r_i_v_e_r_s_1gab6087a15ee23db23b6aec41590329a60">01218</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gab6087a15ee23db23b6aec41590329a60">mpu_get_accel_fsr</link>(<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> *fsr)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01219"/>01219 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01220"/>01220     <emphasis role="keywordflow">switch</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaf66873be1446ed552812e32d40eced61">accel_fsr</link>) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01221"/>01221     <emphasis role="keywordflow">case</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81eae27c6f69463dab7de81fac0c51ff8aa7">INV_FSR_2G</link>:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01222"/>01222         fsr[0] = 2;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01223"/>01223         <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01224"/>01224     <emphasis role="keywordflow">case</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81eaa91e3a89d0bbd01149fe71148595be6d">INV_FSR_4G</link>:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01225"/>01225         fsr[0] = 4;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01226"/>01226         <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01227"/>01227     <emphasis role="keywordflow">case</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81ea0a40371bdda397d234c53d0ee2f3be8b">INV_FSR_8G</link>:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01228"/>01228         fsr[0] = 8;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01229"/>01229         <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01230"/>01230     <emphasis role="keywordflow">case</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81ea6712e8563c97c11b458ef721d4f5f9d5">INV_FSR_16G</link>:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01231"/>01231         fsr[0] = 16;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01232"/>01232         <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01233"/>01233     <emphasis role="keywordflow">default</emphasis>:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01234"/>01234         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01235"/>01235     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01236"/>01236     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gab72e3cead391dee41f28e041282d743f">accel_half</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01237"/>01237         fsr[0] <<= 1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01238"/>01238     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01239"/>01239 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01240"/>01240
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01246"/><link linkend="_group___d_r_i_v_e_r_s_1ga2713a96af104cfb2ae8e0ed4c3718119">01246</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga2713a96af104cfb2ae8e0ed4c3718119">mpu_set_accel_fsr</link>(<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> fsr)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01247"/>01247 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01248"/>01248     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> data;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01249"/>01249
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01250"/>01250     <emphasis role="keywordflow">if</emphasis> (!(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">sensors</link>))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01251"/>01251         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01252"/>01252
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01253"/>01253     <emphasis role="keywordflow">switch</emphasis> (fsr) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01254"/>01254     <emphasis role="keywordflow">case</emphasis> 2:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01255"/>01255         data = <link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81eae27c6f69463dab7de81fac0c51ff8aa7">INV_FSR_2G</link> << 3;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01256"/>01256         <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01257"/>01257     <emphasis role="keywordflow">case</emphasis> 4:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01258"/>01258         data = <link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81eaa91e3a89d0bbd01149fe71148595be6d">INV_FSR_4G</link> << 3;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01259"/>01259         <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01260"/>01260     <emphasis role="keywordflow">case</emphasis> 8:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01261"/>01261         data = <link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81ea0a40371bdda397d234c53d0ee2f3be8b">INV_FSR_8G</link> << 3;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01262"/>01262         <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01263"/>01263     <emphasis role="keywordflow">case</emphasis> 16:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01264"/>01264         data = <link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81ea6712e8563c97c11b458ef721d4f5f9d5">INV_FSR_16G</link> << 3;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01265"/>01265         <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01266"/>01266     <emphasis role="keywordflow">default</emphasis>:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01267"/>01267         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01268"/>01268     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01269"/>01269
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01270"/>01270     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaf66873be1446ed552812e32d40eced61">accel_fsr</link> == (data >> 3))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01271"/>01271         <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01272"/>01272     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gae93a446c54cc00bc7f11209d7af0025e">accel_cfg</link>, 1, &data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01273"/>01273         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01274"/>01274     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaf66873be1446ed552812e32d40eced61">accel_fsr</link> = data >> 3;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01275"/>01275     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01276"/>01276 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01277"/>01277
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01283"/><link linkend="_group___d_r_i_v_e_r_s_1gaa95c7e216dcb2d888e9796001ca555f8">01283</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gaa95c7e216dcb2d888e9796001ca555f8">mpu_get_lpf</link>(<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> *lpf)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01284"/>01284 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01285"/>01285     <emphasis role="keywordflow">switch</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga16ec8ca8298f62ac01419775377270fb">lpf</link>) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01286"/>01286     <emphasis role="keywordflow">case</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9ab58e52e0b6be4cbaf0c7f32705a9fcec">INV_FILTER_188HZ</link>:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01287"/>01287         lpf[0] = 188;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01288"/>01288         <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01289"/>01289     <emphasis role="keywordflow">case</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9a0f288da0c97b325a6cb57f1223f0cf98">INV_FILTER_98HZ</link>:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01290"/>01290         lpf[0] = 98;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01291"/>01291         <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01292"/>01292     <emphasis role="keywordflow">case</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9a995b18a52a5bd919aa9c1411a2292110">INV_FILTER_42HZ</link>:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01293"/>01293         lpf[0] = 42;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01294"/>01294         <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01295"/>01295     <emphasis role="keywordflow">case</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9aebecb86604e475ed8e2cb68340010ff1">INV_FILTER_20HZ</link>:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01296"/>01296         lpf[0] = 20;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01297"/>01297         <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01298"/>01298     <emphasis role="keywordflow">case</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9a327619f406c6b2f6a221793881013508">INV_FILTER_10HZ</link>:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01299"/>01299         lpf[0] = 10;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01300"/>01300         <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01301"/>01301     <emphasis role="keywordflow">case</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9abdaaf85666fd6a490ee01dcd8a315678">INV_FILTER_5HZ</link>:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01302"/>01302         lpf[0] = 5;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01303"/>01303         <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01304"/>01304     <emphasis role="keywordflow">case</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9a9f0263fbbdccd3c5a18fcb65be278d24">INV_FILTER_256HZ_NOLPF2</link>:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01305"/>01305     <emphasis role="keywordflow">case</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9a76de97a6c2f8eb3c5d1a73d717513f5d">INV_FILTER_2100HZ_NOLPF</link>:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01306"/>01306     <emphasis role="keywordflow">default</emphasis>:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01307"/>01307         lpf[0] = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01308"/>01308         <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01309"/>01309     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01310"/>01310     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01311"/>01311 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01312"/>01312
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01319"/><link linkend="_group___d_r_i_v_e_r_s_1ga5661a9dee25152166769910767a2a93d">01319</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga5661a9dee25152166769910767a2a93d">mpu_set_lpf</link>(<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> lpf)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01320"/>01320 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01321"/>01321     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> data;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01322"/>01322
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01323"/>01323     <emphasis role="keywordflow">if</emphasis> (!(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">sensors</link>))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01324"/>01324         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01325"/>01325
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01326"/>01326     <emphasis role="keywordflow">if</emphasis> (lpf >= 188)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01327"/>01327         data = <link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9ab58e52e0b6be4cbaf0c7f32705a9fcec">INV_FILTER_188HZ</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01328"/>01328     <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (lpf >= 98)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01329"/>01329         data = <link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9a0f288da0c97b325a6cb57f1223f0cf98">INV_FILTER_98HZ</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01330"/>01330     <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (lpf >= 42)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01331"/>01331         data = <link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9a995b18a52a5bd919aa9c1411a2292110">INV_FILTER_42HZ</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01332"/>01332     <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (lpf >= 20)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01333"/>01333         data = <link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9aebecb86604e475ed8e2cb68340010ff1">INV_FILTER_20HZ</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01334"/>01334     <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (lpf >= 10)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01335"/>01335         data = <link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9a327619f406c6b2f6a221793881013508">INV_FILTER_10HZ</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01336"/>01336     <emphasis role="keywordflow">else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01337"/>01337         data = <link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9abdaaf85666fd6a490ee01dcd8a315678">INV_FILTER_5HZ</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01338"/>01338
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01339"/>01339     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga16ec8ca8298f62ac01419775377270fb">lpf</link> == data)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01340"/>01340         <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01341"/>01341     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga22eeac0bd77e7d99b3e15dda52f1bd08">lpf</link>, 1, &data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01342"/>01342         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01343"/>01343     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga16ec8ca8298f62ac01419775377270fb">lpf</link> = data;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01344"/>01344     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01345"/>01345 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01346"/>01346
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01352"/><link linkend="_group___d_r_i_v_e_r_s_1ga2487dd551b701c1c7ed4d6335f02b2f1">01352</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga2487dd551b701c1c7ed4d6335f02b2f1">mpu_get_sample_rate</link>(<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> *rate)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01353"/>01353 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01354"/>01354     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga4783ed8aa79a3b5de798963819997c38">dmp_on</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01355"/>01355         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01356"/>01356     <emphasis role="keywordflow">else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01357"/>01357         rate[0] = <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga2660470fcf7b53e2e832a397cbe6c354">sample_rate</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01358"/>01358     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01359"/>01359 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01360"/>01360
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01367"/><link linkend="_group___d_r_i_v_e_r_s_1ga0144d666a67a82888b8580002afe8b55">01367</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga0144d666a67a82888b8580002afe8b55">mpu_set_sample_rate</link>(<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> rate)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01368"/>01368 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01369"/>01369     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> data;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01370"/>01370
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01371"/>01371     <emphasis role="keywordflow">if</emphasis> (!(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">sensors</link>))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01372"/>01372         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01373"/>01373
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01374"/>01374     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga4783ed8aa79a3b5de798963819997c38">dmp_on</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01375"/>01375         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01376"/>01376     <emphasis role="keywordflow">else</emphasis> {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01377"/>01377         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga33e138d8a49744eb9b4ea0e9086cef1c">lp_accel_mode</link>) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01378"/>01378             <emphasis role="keywordflow">if</emphasis> (rate && (rate <= 40)) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01379"/>01379                 <emphasis role="comment">/* Just stay in low-power accel mode. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01380"/>01380                 <link linkend="_group___d_r_i_v_e_r_s_1ga3a4fea75686ab7d2e68634e81ccac04c">mpu_lp_accel_mode</link>(rate);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01381"/>01381                 <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01382"/>01382             }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01383"/>01383             <emphasis role="comment">/* Requested rate exceeds the allowed frequencies in LP accel mode,</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01384"/>01384 <emphasis role="comment">             * switch back to full-power mode.</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01385"/>01385 <emphasis role="comment">             */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01386"/>01386             <link linkend="_group___d_r_i_v_e_r_s_1ga3a4fea75686ab7d2e68634e81ccac04c">mpu_lp_accel_mode</link>(0);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01387"/>01387         }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01388"/>01388         <emphasis role="keywordflow">if</emphasis> (rate < 4)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01389"/>01389             rate = 4;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01390"/>01390         <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (rate > 1000)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01391"/>01391             rate = 1000;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01392"/>01392
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01393"/>01393         data = 1000 / rate - 1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01394"/>01394         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga27dd9db31f16ca170520b3009255e6d0">rate_div</link>, 1, &data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01395"/>01395             <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01396"/>01396
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01397"/>01397         <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga2660470fcf7b53e2e832a397cbe6c354">sample_rate</link> = 1000 / (1 + data);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01398"/>01398
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01399"/>01399 <emphasis role="preprocessor">#ifdef AK89xx_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01400"/>01400         <link linkend="_group___d_r_i_v_e_r_s_1ga78da3828de0ef9d080c4d03e7bc45e7b">mpu_set_compass_sample_rate</link>(<link linkend="_group___d_r_i_v_e_r_s_1gac6afabdc09a49a433ee19d8a9486056d">min</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.compass_sample_rate, MAX_COMPASS_SAMPLE_RATE));
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01401"/>01401 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01402"/>01402
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01403"/>01403         <emphasis role="comment">/* Automatically set LPF to 1/2 sampling rate. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01404"/>01404         <link linkend="_group___d_r_i_v_e_r_s_1ga5661a9dee25152166769910767a2a93d">mpu_set_lpf</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga2660470fcf7b53e2e832a397cbe6c354">sample_rate</link> >> 1);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01405"/>01405         <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01406"/>01406     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01407"/>01407 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01408"/>01408
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01414"/><link linkend="_group___d_r_i_v_e_r_s_1gab5a45cd7783f6937788c0decb0b18b16">01414</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gab5a45cd7783f6937788c0decb0b18b16">mpu_get_compass_sample_rate</link>(<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> *rate)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01415"/>01415 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01416"/>01416 <emphasis role="preprocessor">#ifdef AK89xx_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01417"/>01417     rate[0] = <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.compass_sample_rate;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01418"/>01418     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01419"/>01419 <emphasis role="preprocessor">#else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01420"/>01420     rate[0] = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01421"/>01421     <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01422"/>01422 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01423"/>01423 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01424"/>01424
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01436"/><link linkend="_group___d_r_i_v_e_r_s_1ga78da3828de0ef9d080c4d03e7bc45e7b">01436</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga78da3828de0ef9d080c4d03e7bc45e7b">mpu_set_compass_sample_rate</link>(<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> rate)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01437"/>01437 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01438"/>01438 <emphasis role="preprocessor">#ifdef AK89xx_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01439"/>01439     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> div;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01440"/>01440     <emphasis role="keywordflow">if</emphasis> (!rate || rate > <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga2660470fcf7b53e2e832a397cbe6c354">sample_rate</link> || rate > MAX_COMPASS_SAMPLE_RATE)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01441"/>01441         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01442"/>01442
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01443"/>01443     div = <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga2660470fcf7b53e2e832a397cbe6c354">sample_rate</link> / rate - 1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01444"/>01444     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>->s4_ctrl, 1, &div))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01445"/>01445         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01446"/>01446     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.compass_sample_rate = <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga2660470fcf7b53e2e832a397cbe6c354">sample_rate</link> / (div + 1);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01447"/>01447     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01448"/>01448 <emphasis role="preprocessor">#else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01449"/>01449     <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01450"/>01450 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01451"/>01451 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01452"/>01452
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01458"/><link linkend="_group___d_r_i_v_e_r_s_1ga023c0cc94aa8f162dc33b15048a49421">01458</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga023c0cc94aa8f162dc33b15048a49421">mpu_get_gyro_sens</link>(<emphasis role="keywordtype">float</emphasis> *sens)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01459"/>01459 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01460"/>01460     <emphasis role="keywordflow">switch</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gab45a727aeee17380828a3e20ccb375c2">gyro_fsr</link>) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01461"/>01461     <emphasis role="keywordflow">case</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90a5b8251a49db5cb8a676076b0b308ae35">INV_FSR_250DPS</link>:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01462"/>01462         sens[0] = 131.f;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01463"/>01463         <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01464"/>01464     <emphasis role="keywordflow">case</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90a50901470ff389927fd010081e2b8fd09">INV_FSR_500DPS</link>:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01465"/>01465         sens[0] = 65.5f;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01466"/>01466         <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01467"/>01467     <emphasis role="keywordflow">case</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90aee922e0daa4fbb404c3db6c49d897a13">INV_FSR_1000DPS</link>:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01468"/>01468         sens[0] = 32.8f;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01469"/>01469         <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01470"/>01470     <emphasis role="keywordflow">case</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90ac0c37efc1c8acd6f70c0c5a768e5b8be">INV_FSR_2000DPS</link>:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01471"/>01471         sens[0] = 16.4f;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01472"/>01472         <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01473"/>01473     <emphasis role="keywordflow">default</emphasis>:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01474"/>01474         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01475"/>01475     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01476"/>01476     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01477"/>01477 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01478"/>01478
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01484"/><link linkend="_group___d_r_i_v_e_r_s_1ga620408949052b96e856cad920f856583">01484</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga620408949052b96e856cad920f856583">mpu_get_accel_sens</link>(<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> *sens)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01485"/>01485 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01486"/>01486     <emphasis role="keywordflow">switch</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaf66873be1446ed552812e32d40eced61">accel_fsr</link>) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01487"/>01487     <emphasis role="keywordflow">case</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81eae27c6f69463dab7de81fac0c51ff8aa7">INV_FSR_2G</link>:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01488"/>01488         sens[0] = 16384;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01489"/>01489         <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01490"/>01490     <emphasis role="keywordflow">case</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81eaa91e3a89d0bbd01149fe71148595be6d">INV_FSR_4G</link>:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01491"/>01491         sens[0] = 8092;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01492"/>01492         <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01493"/>01493     <emphasis role="keywordflow">case</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81ea0a40371bdda397d234c53d0ee2f3be8b">INV_FSR_8G</link>:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01494"/>01494         sens[0] = 4096;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01495"/>01495         <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01496"/>01496     <emphasis role="keywordflow">case</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81ea6712e8563c97c11b458ef721d4f5f9d5">INV_FSR_16G</link>:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01497"/>01497         sens[0] = 2048;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01498"/>01498         <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01499"/>01499     <emphasis role="keywordflow">default</emphasis>:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01500"/>01500         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01501"/>01501     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01502"/>01502     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gab72e3cead391dee41f28e041282d743f">accel_half</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01503"/>01503         sens[0] >>= 1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01504"/>01504     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01505"/>01505 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01506"/>01506
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01516"/><link linkend="_group___d_r_i_v_e_r_s_1ga093f11eb10b2639a4b9fe344ea348c54">01516</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga093f11eb10b2639a4b9fe344ea348c54">mpu_get_fifo_config</link>(<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> *sensors)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01517"/>01517 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01518"/>01518     sensors[0] = <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga88143c31b894bcd819c0e49b0ff267aa">fifo_enable</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01519"/>01519     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01520"/>01520 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01521"/>01521
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01531"/><link linkend="_group___d_r_i_v_e_r_s_1gababbdda287e1f19323489f90a0889dd7">01531</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gababbdda287e1f19323489f90a0889dd7">mpu_configure_fifo</link>(<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> sensors)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01532"/>01532 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01533"/>01533     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> prev;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01534"/>01534     <emphasis role="keywordtype">int</emphasis> result = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01535"/>01535
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01536"/>01536     <emphasis role="comment">/* Compass data isn't going into the FIFO. Stop trying. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01537"/>01537     sensors &= ~INV_XYZ_COMPASS;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01538"/>01538
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01539"/>01539     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga4783ed8aa79a3b5de798963819997c38">dmp_on</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01540"/>01540         <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01541"/>01541     <emphasis role="keywordflow">else</emphasis> {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01542"/>01542         <emphasis role="keywordflow">if</emphasis> (!(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">sensors</link>))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01543"/>01543             <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01544"/>01544         prev = <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga88143c31b894bcd819c0e49b0ff267aa">fifo_enable</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01545"/>01545         <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga88143c31b894bcd819c0e49b0ff267aa">fifo_enable</link> = sensors & <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">sensors</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01546"/>01546         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga88143c31b894bcd819c0e49b0ff267aa">fifo_enable</link> != sensors)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01547"/>01547             <emphasis role="comment">/* You're not getting what you asked for. Some sensors are</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01548"/>01548 <emphasis role="comment">             * asleep.</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01549"/>01549 <emphasis role="comment">             */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01550"/>01550             result = -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01551"/>01551         <emphasis role="keywordflow">else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01552"/>01552             result = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01553"/>01553         <emphasis role="keywordflow">if</emphasis> (sensors || <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga33e138d8a49744eb9b4ea0e9086cef1c">lp_accel_mode</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01554"/>01554             <link linkend="_group___d_r_i_v_e_r_s_1gafd5ebff6b0179e1dce0b68c2272cae07">set_int_enable</link>(1);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01555"/>01555         <emphasis role="keywordflow">else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01556"/>01556             <link linkend="_group___d_r_i_v_e_r_s_1gafd5ebff6b0179e1dce0b68c2272cae07">set_int_enable</link>(0);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01557"/>01557         <emphasis role="keywordflow">if</emphasis> (sensors) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01558"/>01558             <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaf23e9f57c0059be6ec57862f0584de10">mpu_reset_fifo</link>()) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01559"/>01559                 <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga88143c31b894bcd819c0e49b0ff267aa">fifo_enable</link> = prev;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01560"/>01560                 <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01561"/>01561             }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01562"/>01562         }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01563"/>01563     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01564"/>01564
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01565"/>01565     <emphasis role="keywordflow">return</emphasis> result;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01566"/>01566 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01567"/>01567
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01573"/><link linkend="_group___d_r_i_v_e_r_s_1gaec8fa7a067988d174516bb735a4a0bc9">01573</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gaec8fa7a067988d174516bb735a4a0bc9">mpu_get_power_state</link>(<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> *power_on)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01574"/>01574 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01575"/>01575     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">sensors</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01576"/>01576         power_on[0] = 1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01577"/>01577     <emphasis role="keywordflow">else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01578"/>01578         power_on[0] = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01579"/>01579     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01580"/>01580 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01581"/>01581
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01592"/><link linkend="_group___d_r_i_v_e_r_s_1ga6e77e7cc1cf6be5e8fdf617c5b4586d1">01592</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga6e77e7cc1cf6be5e8fdf617c5b4586d1">mpu_set_sensors</link>(<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> sensors)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01593"/>01593 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01594"/>01594     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> data;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01595"/>01595 <emphasis role="preprocessor">#ifdef AK89xx_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01596"/>01596     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> user_ctrl;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01597"/>01597 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01598"/>01598
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01599"/>01599     <emphasis role="keywordflow">if</emphasis> (sensors & <link linkend="_group___d_r_i_v_e_r_s_1ga3fdc30f9c0a26c2c4e2bb88921f91629">INV_XYZ_GYRO</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01600"/>01600         data = <link linkend="_group___d_r_i_v_e_r_s_1gga75570f009627c6f4ddfb2d936d81e207a01b240917a78674d3e387110a6a8f94c">INV_CLK_PLL</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01601"/>01601     <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (sensors)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01602"/>01602         data = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01603"/>01603     <emphasis role="keywordflow">else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01604"/>01604         data = <link linkend="_group___d_r_i_v_e_r_s_1ga1fed8bd436e9b7dfccb1cae99ca89103">BIT_SLEEP</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01605"/>01605     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gaa01fb0872030e8e2932f8d1d257ea86a">pwr_mgmt_1</link>, 1, &data)) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01606"/>01606         <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">sensors</link> = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01607"/>01607         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01608"/>01608     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01609"/>01609     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gab7bd5165d6e62cb0d814cf3401958445">clk_src</link> = data & ~BIT_SLEEP;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01610"/>01610
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01611"/>01611     data = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01612"/>01612     <emphasis role="keywordflow">if</emphasis> (!(sensors & <link linkend="_group___d_r_i_v_e_r_s_1gabf02bf28541421d59f8be764f2b95407">INV_X_GYRO</link>))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01613"/>01613         data |= <link linkend="_group___d_r_i_v_e_r_s_1ga82256fedeffe5b2443ab3ae34cf032d9">BIT_STBY_XG</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01614"/>01614     <emphasis role="keywordflow">if</emphasis> (!(sensors & <link linkend="_group___d_r_i_v_e_r_s_1gacdd8ff833a34dba08ca2aa145eb92b44">INV_Y_GYRO</link>))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01615"/>01615         data |= <link linkend="_group___d_r_i_v_e_r_s_1gabf1c0a844906a5e887a659971a4af417">BIT_STBY_YG</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01616"/>01616     <emphasis role="keywordflow">if</emphasis> (!(sensors & <link linkend="_group___d_r_i_v_e_r_s_1ga50205b5cc6089b33b2561c854eb8b0fd">INV_Z_GYRO</link>))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01617"/>01617         data |= <link linkend="_group___d_r_i_v_e_r_s_1ga30967a4efdf3c3f1e39814e72a4168b0">BIT_STBY_ZG</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01618"/>01618     <emphasis role="keywordflow">if</emphasis> (!(sensors & <link linkend="_group___d_r_i_v_e_r_s_1gaa03f025a17ed491e70b88274e89c75c5">INV_XYZ_ACCEL</link>))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01619"/>01619         data |= <link linkend="_group___d_r_i_v_e_r_s_1ga04a57159e34387dafe9b86b171c4654c">BIT_STBY_XYZA</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01620"/>01620     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga3e378b0c77e9529ee93ac6eba11e1031">pwr_mgmt_2</link>, 1, &data)) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01621"/>01621         <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">sensors</link> = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01622"/>01622         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01623"/>01623     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01624"/>01624
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01625"/>01625     <emphasis role="keywordflow">if</emphasis> (sensors && (sensors != <link linkend="_group___d_r_i_v_e_r_s_1gaa03f025a17ed491e70b88274e89c75c5">INV_XYZ_ACCEL</link>))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01626"/>01626         <emphasis role="comment">/* Latched interrupts only used in LP accel mode. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01627"/>01627         <link linkend="_group___d_r_i_v_e_r_s_1ga653cb855300bff9285ce4b8dca6a503b">mpu_set_int_latched</link>(0);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01628"/>01628
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01629"/>01629 <emphasis role="preprocessor">#ifdef AK89xx_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01630"/>01630 <emphasis role="preprocessor">#ifdef AK89xx_BYPASS</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01631"/>01631     <emphasis role="keywordflow">if</emphasis> (sensors & <link linkend="_group___d_r_i_v_e_r_s_1ga7fc9c1dbdcb2ac8cc2a4128a5799482a">INV_XYZ_COMPASS</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01632"/>01632         <link linkend="_group___d_r_i_v_e_r_s_1ga36f70f38371b48d81094d3b061233e15">mpu_set_bypass</link>(1);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01633"/>01633     <emphasis role="keywordflow">else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01634"/>01634         <link linkend="_group___d_r_i_v_e_r_s_1ga36f70f38371b48d81094d3b061233e15">mpu_set_bypass</link>(0);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01635"/>01635 <emphasis role="preprocessor">#else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01636"/>01636     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga838d8f1c7b0d8cc83923b93bbafe1b33">i2c_read</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga12505a7d8cd7c976e5571f27a6160d23">user_ctrl</link>, 1, &user_ctrl))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01637"/>01637         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01638"/>01638     <emphasis role="comment">/* Handle AKM power management. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01639"/>01639     <emphasis role="keywordflow">if</emphasis> (sensors & <link linkend="_group___d_r_i_v_e_r_s_1ga7fc9c1dbdcb2ac8cc2a4128a5799482a">INV_XYZ_COMPASS</link>) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01640"/>01640         data = AKM_SINGLE_MEASUREMENT;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01641"/>01641         user_ctrl |= <link linkend="_group___d_r_i_v_e_r_s_1gabcdedbd3098140aa14ad17bcaca8e176">BIT_AUX_IF_EN</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01642"/>01642     } <emphasis role="keywordflow">else</emphasis> {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01643"/>01643         data = AKM_POWER_DOWN;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01644"/>01644         user_ctrl &= ~BIT_AUX_IF_EN;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01645"/>01645     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01646"/>01646     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga4783ed8aa79a3b5de798963819997c38">dmp_on</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01647"/>01647         user_ctrl |= <link linkend="_group___d_r_i_v_e_r_s_1ga02c3e9ddd63128f1c3cf50bf1e9b5fe6">BIT_DMP_EN</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01648"/>01648     <emphasis role="keywordflow">else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01649"/>01649         user_ctrl &= ~BIT_DMP_EN;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01650"/>01650     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>->s1_do, 1, &data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01651"/>01651         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01652"/>01652     <emphasis role="comment">/* Enable/disable I2C master mode. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01653"/>01653     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga12505a7d8cd7c976e5571f27a6160d23">user_ctrl</link>, 1, &user_ctrl))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01654"/>01654         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01655"/>01655 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01656"/>01656 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01657"/>01657
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01658"/>01658     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">sensors</link> = sensors;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01659"/>01659     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga33e138d8a49744eb9b4ea0e9086cef1c">lp_accel_mode</link> = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01660"/>01660     <link linkend="_group___d_r_i_v_e_r_s_1gae36aca5baf9b6b7d74992aef00686d67">delay_ms</link>(50);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01661"/>01661     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01662"/>01662 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01663"/>01663
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01669"/><link linkend="_group___d_r_i_v_e_r_s_1ga0afd02d8c76d3278b488ef7038c26e3e">01669</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga0afd02d8c76d3278b488ef7038c26e3e">mpu_get_int_status</link>(<emphasis role="keywordtype">short</emphasis> *status)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01670"/>01670 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01671"/>01671     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> tmp[2];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01672"/>01672     <emphasis role="keywordflow">if</emphasis> (!<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">sensors</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01673"/>01673         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01674"/>01674     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga838d8f1c7b0d8cc83923b93bbafe1b33">i2c_read</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gaea6ad456241786750b3f211bc92032eb">dmp_int_status</link>, 2, tmp))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01675"/>01675         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01676"/>01676     status[0] = (tmp[0] << 8) | tmp[1];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01677"/>01677     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01678"/>01678 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01679"/>01679
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01698"/><link linkend="_group___d_r_i_v_e_r_s_1ga2da20453aafbbba4a0f6fb9fbdd25572">01698</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga2da20453aafbbba4a0f6fb9fbdd25572">mpu_read_fifo</link>(<emphasis role="keywordtype">short</emphasis> *gyro, <emphasis role="keywordtype">short</emphasis> *accel, <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">long</emphasis> *timestamp,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01699"/>01699         <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> *sensors, <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> *more)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01700"/>01700 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01701"/>01701     <emphasis role="comment">/* Assumes maximum packet size is gyro (6) + accel (6). */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01702"/>01702     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> data[<link linkend="_group___d_r_i_v_e_r_s_1ga973c680573b37fc359fc68d0707da355">MAX_PACKET_LENGTH</link>];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01703"/>01703     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> packet_size = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01704"/>01704     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> fifo_count, index = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01705"/>01705
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01706"/>01706     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga4783ed8aa79a3b5de798963819997c38">dmp_on</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01707"/>01707         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01708"/>01708
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01709"/>01709     sensors[0] = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01710"/>01710     <emphasis role="keywordflow">if</emphasis> (!<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">sensors</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01711"/>01711         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01712"/>01712     <emphasis role="keywordflow">if</emphasis> (!<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga88143c31b894bcd819c0e49b0ff267aa">fifo_enable</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01713"/>01713         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01714"/>01714
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01715"/>01715     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga88143c31b894bcd819c0e49b0ff267aa">fifo_enable</link> & <link linkend="_group___d_r_i_v_e_r_s_1gabf02bf28541421d59f8be764f2b95407">INV_X_GYRO</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01716"/>01716         packet_size += 2;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01717"/>01717     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga88143c31b894bcd819c0e49b0ff267aa">fifo_enable</link> & <link linkend="_group___d_r_i_v_e_r_s_1gacdd8ff833a34dba08ca2aa145eb92b44">INV_Y_GYRO</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01718"/>01718         packet_size += 2;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01719"/>01719     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga88143c31b894bcd819c0e49b0ff267aa">fifo_enable</link> & <link linkend="_group___d_r_i_v_e_r_s_1ga50205b5cc6089b33b2561c854eb8b0fd">INV_Z_GYRO</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01720"/>01720         packet_size += 2;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01721"/>01721     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga88143c31b894bcd819c0e49b0ff267aa">fifo_enable</link> & <link linkend="_group___d_r_i_v_e_r_s_1gaa03f025a17ed491e70b88274e89c75c5">INV_XYZ_ACCEL</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01722"/>01722         packet_size += 6;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01723"/>01723
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01724"/>01724     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga838d8f1c7b0d8cc83923b93bbafe1b33">i2c_read</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gab7503974d62cf9c2d688579fcd1abd48">fifo_count_h</link>, 2, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01725"/>01725         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01726"/>01726     fifo_count = (data[0] << 8) | data[1];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01727"/>01727     <emphasis role="keywordflow">if</emphasis> (fifo_count < packet_size)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01728"/>01728         <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01729"/>01729 <emphasis role="comment">//    log_i("FIFO count: %hd\n", fifo_count);</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01730"/>01730     <emphasis role="keywordflow">if</emphasis> (fifo_count > (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga5f77e9f55285abb4d214b80281f69c1f">max_fifo</link> >> 1)) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01731"/>01731         <emphasis role="comment">/* FIFO is 50% full, better check overflow bit. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01732"/>01732         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga838d8f1c7b0d8cc83923b93bbafe1b33">i2c_read</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga837724080c34ff5a190751427febaf91">int_status</link>, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01733"/>01733             <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01734"/>01734         <emphasis role="keywordflow">if</emphasis> (data[0] & <link linkend="_group___d_r_i_v_e_r_s_1gafb9b49ce5dd973b3c29ae72680924fa7">BIT_FIFO_OVERFLOW</link>) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01735"/>01735             <link linkend="_group___d_r_i_v_e_r_s_1gaf23e9f57c0059be6ec57862f0584de10">mpu_reset_fifo</link>();
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01736"/>01736             <emphasis role="keywordflow">return</emphasis> -2;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01737"/>01737         }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01738"/>01738     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01739"/>01739     <link linkend="_group___d_r_i_v_e_r_s_1ga3e6b6bc6d1cd2956353a31bfadd3c332">get_ms</link>((<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">long</emphasis>*)timestamp);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01740"/>01740
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01741"/>01741     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga838d8f1c7b0d8cc83923b93bbafe1b33">i2c_read</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb6763dc5f368ea01ef7c733cea9dab4">fifo_r_w</link>, packet_size, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01742"/>01742         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01743"/>01743     more[0] = fifo_count / packet_size - 1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01744"/>01744     sensors[0] = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01745"/>01745
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01746"/>01746     <emphasis role="keywordflow">if</emphasis> ((index != packet_size) && <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga88143c31b894bcd819c0e49b0ff267aa">fifo_enable</link> & <link linkend="_group___d_r_i_v_e_r_s_1gaa03f025a17ed491e70b88274e89c75c5">INV_XYZ_ACCEL</link>) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01747"/>01747         accel[0] = (data[index+0] << 8) | data[index+1];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01748"/>01748         accel[1] = (data[index+2] << 8) | data[index+3];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01749"/>01749         accel[2] = (data[index+4] << 8) | data[index+5];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01750"/>01750         sensors[0] |= <link linkend="_group___d_r_i_v_e_r_s_1gaa03f025a17ed491e70b88274e89c75c5">INV_XYZ_ACCEL</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01751"/>01751         index += 6;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01752"/>01752     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01753"/>01753     <emphasis role="keywordflow">if</emphasis> ((index != packet_size) && <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga88143c31b894bcd819c0e49b0ff267aa">fifo_enable</link> & <link linkend="_group___d_r_i_v_e_r_s_1gabf02bf28541421d59f8be764f2b95407">INV_X_GYRO</link>) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01754"/>01754         gyro[0] = (data[index+0] << 8) | data[index+1];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01755"/>01755         sensors[0] |= <link linkend="_group___d_r_i_v_e_r_s_1gabf02bf28541421d59f8be764f2b95407">INV_X_GYRO</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01756"/>01756         index += 2;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01757"/>01757     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01758"/>01758     <emphasis role="keywordflow">if</emphasis> ((index != packet_size) && <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga88143c31b894bcd819c0e49b0ff267aa">fifo_enable</link> & <link linkend="_group___d_r_i_v_e_r_s_1gacdd8ff833a34dba08ca2aa145eb92b44">INV_Y_GYRO</link>) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01759"/>01759         gyro[1] = (data[index+0] << 8) | data[index+1];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01760"/>01760         sensors[0] |= <link linkend="_group___d_r_i_v_e_r_s_1gacdd8ff833a34dba08ca2aa145eb92b44">INV_Y_GYRO</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01761"/>01761         index += 2;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01762"/>01762     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01763"/>01763     <emphasis role="keywordflow">if</emphasis> ((index != packet_size) && <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga88143c31b894bcd819c0e49b0ff267aa">fifo_enable</link> & <link linkend="_group___d_r_i_v_e_r_s_1ga50205b5cc6089b33b2561c854eb8b0fd">INV_Z_GYRO</link>) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01764"/>01764         gyro[2] = (data[index+0] << 8) | data[index+1];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01765"/>01765         sensors[0] |= <link linkend="_group___d_r_i_v_e_r_s_1ga50205b5cc6089b33b2561c854eb8b0fd">INV_Z_GYRO</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01766"/>01766         index += 2;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01767"/>01767     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01768"/>01768
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01769"/>01769     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01770"/>01770 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01771"/>01771
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01779"/><link linkend="_group___d_r_i_v_e_r_s_1ga13593044949b460e9f571eb57e9a0788">01779</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga13593044949b460e9f571eb57e9a0788">mpu_read_fifo_stream</link>(<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> length, <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> *data,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01780"/>01780     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> *more)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01781"/>01781 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01782"/>01782     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> tmp[2];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01783"/>01783     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> fifo_count;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01784"/>01784     <emphasis role="keywordflow">if</emphasis> (!<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga4783ed8aa79a3b5de798963819997c38">dmp_on</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01785"/>01785         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01786"/>01786     <emphasis role="keywordflow">if</emphasis> (!<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">sensors</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01787"/>01787         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01788"/>01788
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01789"/>01789     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga838d8f1c7b0d8cc83923b93bbafe1b33">i2c_read</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gab7503974d62cf9c2d688579fcd1abd48">fifo_count_h</link>, 2, tmp))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01790"/>01790         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01791"/>01791     fifo_count = (tmp[0] << 8) | tmp[1];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01792"/>01792     <emphasis role="keywordflow">if</emphasis> (fifo_count < length) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01793"/>01793         more[0] = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01794"/>01794         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01795"/>01795     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01796"/>01796     <emphasis role="keywordflow">if</emphasis> (fifo_count > (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga5f77e9f55285abb4d214b80281f69c1f">max_fifo</link> >> 1)) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01797"/>01797         <emphasis role="comment">/* FIFO is 50% full, better check overflow bit. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01798"/>01798         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga838d8f1c7b0d8cc83923b93bbafe1b33">i2c_read</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga837724080c34ff5a190751427febaf91">int_status</link>, 1, tmp))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01799"/>01799             <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01800"/>01800         <emphasis role="keywordflow">if</emphasis> (tmp[0] & <link linkend="_group___d_r_i_v_e_r_s_1gafb9b49ce5dd973b3c29ae72680924fa7">BIT_FIFO_OVERFLOW</link>) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01801"/>01801             <link linkend="_group___d_r_i_v_e_r_s_1gaf23e9f57c0059be6ec57862f0584de10">mpu_reset_fifo</link>();
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01802"/>01802             <emphasis role="keywordflow">return</emphasis> -2;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01803"/>01803         }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01804"/>01804     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01805"/>01805
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01806"/>01806     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga838d8f1c7b0d8cc83923b93bbafe1b33">i2c_read</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb6763dc5f368ea01ef7c733cea9dab4">fifo_r_w</link>, length, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01807"/>01807         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01808"/>01808     more[0] = fifo_count / length - 1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01809"/>01809     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01810"/>01810 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01811"/>01811
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01817"/><link linkend="_group___d_r_i_v_e_r_s_1ga36f70f38371b48d81094d3b061233e15">01817</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga36f70f38371b48d81094d3b061233e15">mpu_set_bypass</link>(<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> bypass_on)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01818"/>01818 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01819"/>01819     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> tmp;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01820"/>01820
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01821"/>01821     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga6d3a962d6435644c7ea68e7d65934636">bypass_mode</link> == bypass_on)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01822"/>01822         <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01823"/>01823
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01824"/>01824     <emphasis role="keywordflow">if</emphasis> (bypass_on) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01825"/>01825         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga838d8f1c7b0d8cc83923b93bbafe1b33">i2c_read</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga12505a7d8cd7c976e5571f27a6160d23">user_ctrl</link>, 1, &tmp))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01826"/>01826             <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01827"/>01827         tmp &= ~BIT_AUX_IF_EN;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01828"/>01828         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga12505a7d8cd7c976e5571f27a6160d23">user_ctrl</link>, 1, &tmp))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01829"/>01829             <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01830"/>01830         <link linkend="_group___d_r_i_v_e_r_s_1gae36aca5baf9b6b7d74992aef00686d67">delay_ms</link>(3);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01831"/>01831         tmp = <link linkend="_group___d_r_i_v_e_r_s_1gadd12a8d89e1a4c4e008b12a96dd4c75d">BIT_BYPASS_EN</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01832"/>01832         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga6f12e54ae8c7f2dd77954f3ab619bbb9">active_low_int</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01833"/>01833             tmp |= <link linkend="_group___d_r_i_v_e_r_s_1ga8467782bedc44051c95643e303543655">BIT_ACTL</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01834"/>01834         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga55ce40fc460a62829ec149edaccffe7c">latched_int</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01835"/>01835             tmp |= <link linkend="_group___d_r_i_v_e_r_s_1ga588b5a95724c4a68c6868faa78fd3a7f">BIT_LATCH_EN</link> | <link linkend="_group___d_r_i_v_e_r_s_1ga1f50796ca0363292d9ac9cc1d29d9225">BIT_ANY_RD_CLR</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01836"/>01836         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gaae7bdbff2a1029245890b555b2d8d519">int_pin_cfg</link>, 1, &tmp))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01837"/>01837             <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01838"/>01838     } <emphasis role="keywordflow">else</emphasis> {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01839"/>01839         <emphasis role="comment">/* Enable I2C master mode if compass is being used. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01840"/>01840         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga838d8f1c7b0d8cc83923b93bbafe1b33">i2c_read</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga12505a7d8cd7c976e5571f27a6160d23">user_ctrl</link>, 1, &tmp))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01841"/>01841             <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01842"/>01842         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">sensors</link> & <link linkend="_group___d_r_i_v_e_r_s_1ga7fc9c1dbdcb2ac8cc2a4128a5799482a">INV_XYZ_COMPASS</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01843"/>01843             tmp |= <link linkend="_group___d_r_i_v_e_r_s_1gabcdedbd3098140aa14ad17bcaca8e176">BIT_AUX_IF_EN</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01844"/>01844         <emphasis role="keywordflow">else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01845"/>01845             tmp &= ~BIT_AUX_IF_EN;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01846"/>01846         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga12505a7d8cd7c976e5571f27a6160d23">user_ctrl</link>, 1, &tmp))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01847"/>01847             <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01848"/>01848         <link linkend="_group___d_r_i_v_e_r_s_1gae36aca5baf9b6b7d74992aef00686d67">delay_ms</link>(3);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01849"/>01849         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga6f12e54ae8c7f2dd77954f3ab619bbb9">active_low_int</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01850"/>01850             tmp = <link linkend="_group___d_r_i_v_e_r_s_1ga8467782bedc44051c95643e303543655">BIT_ACTL</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01851"/>01851         <emphasis role="keywordflow">else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01852"/>01852             tmp = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01853"/>01853         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga55ce40fc460a62829ec149edaccffe7c">latched_int</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01854"/>01854             tmp |= <link linkend="_group___d_r_i_v_e_r_s_1ga588b5a95724c4a68c6868faa78fd3a7f">BIT_LATCH_EN</link> | <link linkend="_group___d_r_i_v_e_r_s_1ga1f50796ca0363292d9ac9cc1d29d9225">BIT_ANY_RD_CLR</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01855"/>01855         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gaae7bdbff2a1029245890b555b2d8d519">int_pin_cfg</link>, 1, &tmp))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01856"/>01856             <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01857"/>01857     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01858"/>01858     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga6d3a962d6435644c7ea68e7d65934636">bypass_mode</link> = bypass_on;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01859"/>01859     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01860"/>01860 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01861"/>01861
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01867"/><link linkend="_group___d_r_i_v_e_r_s_1gacc92fb1489ef32a04bcb6b0ebde4d657">01867</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gacc92fb1489ef32a04bcb6b0ebde4d657">mpu_set_int_level</link>(<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> active_low)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01868"/>01868 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01869"/>01869     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga6f12e54ae8c7f2dd77954f3ab619bbb9">active_low_int</link> = active_low;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01870"/>01870     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01871"/>01871 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01872"/>01872
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01879"/><link linkend="_group___d_r_i_v_e_r_s_1ga653cb855300bff9285ce4b8dca6a503b">01879</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga653cb855300bff9285ce4b8dca6a503b">mpu_set_int_latched</link>(<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> enable)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01880"/>01880 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01881"/>01881     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> tmp;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01882"/>01882     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga55ce40fc460a62829ec149edaccffe7c">latched_int</link> == enable)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01883"/>01883         <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01884"/>01884
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01885"/>01885     <emphasis role="keywordflow">if</emphasis> (enable)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01886"/>01886         tmp = <link linkend="_group___d_r_i_v_e_r_s_1ga588b5a95724c4a68c6868faa78fd3a7f">BIT_LATCH_EN</link> | <link linkend="_group___d_r_i_v_e_r_s_1ga1f50796ca0363292d9ac9cc1d29d9225">BIT_ANY_RD_CLR</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01887"/>01887     <emphasis role="keywordflow">else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01888"/>01888         tmp = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01889"/>01889     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga6d3a962d6435644c7ea68e7d65934636">bypass_mode</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01890"/>01890         tmp |= <link linkend="_group___d_r_i_v_e_r_s_1gadd12a8d89e1a4c4e008b12a96dd4c75d">BIT_BYPASS_EN</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01891"/>01891     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga6f12e54ae8c7f2dd77954f3ab619bbb9">active_low_int</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01892"/>01892         tmp |= <link linkend="_group___d_r_i_v_e_r_s_1ga8467782bedc44051c95643e303543655">BIT_ACTL</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01893"/>01893     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gaae7bdbff2a1029245890b555b2d8d519">int_pin_cfg</link>, 1, &tmp))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01894"/>01894         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01895"/>01895     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga55ce40fc460a62829ec149edaccffe7c">latched_int</link> = enable;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01896"/>01896     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01897"/>01897 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01898"/>01898
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01899"/>01899 <emphasis role="preprocessor">#ifdef MPU6050</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01900"/><link linkend="_group___d_r_i_v_e_r_s_1gab7ebbe13328466605a20f6ce1a106de8">01900</link> <emphasis role="keyword">static</emphasis> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gab7ebbe13328466605a20f6ce1a106de8">get_accel_prod_shift</link>(<emphasis role="keywordtype">float</emphasis> *st_shift)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01901"/>01901 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01902"/>01902     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> tmp[4], shift_code[3], ii;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01903"/>01903
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01904"/>01904     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga838d8f1c7b0d8cc83923b93bbafe1b33">i2c_read</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, 0x0D, 4, tmp))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01905"/>01905         <emphasis role="keywordflow">return</emphasis> 0x07;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01906"/>01906
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01907"/>01907     shift_code[0] = ((tmp[0] & 0xE0) >> 3) | ((tmp[3] & 0x30) >> 4);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01908"/>01908     shift_code[1] = ((tmp[1] & 0xE0) >> 3) | ((tmp[3] & 0x0C) >> 2);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01909"/>01909     shift_code[2] = ((tmp[2] & 0xE0) >> 3) | (tmp[3] & 0x03);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01910"/>01910     <emphasis role="keywordflow">for</emphasis> (ii = 0; ii < 3; ii++) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01911"/>01911         <emphasis role="keywordflow">if</emphasis> (!shift_code[ii]) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01912"/>01912             st_shift[ii] = 0.f;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01913"/>01913             <emphasis role="keywordflow">continue</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01914"/>01914         }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01915"/>01915         <emphasis role="comment">/* Equivalent to..</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01916"/>01916 <emphasis role="comment">         * st_shift[ii] = 0.34f * powf(0.92f/0.34f, (shift_code[ii]-1) / 30.f)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01917"/>01917 <emphasis role="comment">         */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01918"/>01918         st_shift[ii] = 0.34f;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01919"/>01919         <emphasis role="keywordflow">while</emphasis> (--shift_code[ii])
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01920"/>01920             st_shift[ii] *= 1.034f;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01921"/>01921     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01922"/>01922     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01923"/>01923 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01924"/>01924
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01925"/><link linkend="_group___d_r_i_v_e_r_s_1gaab48ddb3bd05cea3f0fc85a68db9934d">01925</link> <emphasis role="keyword">static</emphasis> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gaab48ddb3bd05cea3f0fc85a68db9934d">accel_self_test</link>(<emphasis role="keywordtype">long</emphasis> *bias_regular, <emphasis role="keywordtype">long</emphasis> *bias_st)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01926"/>01926 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01927"/>01927     <emphasis role="keywordtype">int</emphasis> jj, result = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01928"/>01928     <emphasis role="keywordtype">float</emphasis> st_shift[3], st_shift_cust, st_shift_var;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01929"/>01929
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01930"/>01930     <link linkend="_group___d_r_i_v_e_r_s_1gab7ebbe13328466605a20f6ce1a106de8">get_accel_prod_shift</link>(st_shift);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01931"/>01931     <emphasis role="keywordflow">for</emphasis>(jj = 0; jj < 3; jj++) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01932"/>01932         st_shift_cust = labs(bias_regular[jj] - bias_st[jj]) / 65536.f;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01933"/>01933         <emphasis role="keywordflow">if</emphasis> (st_shift[jj]) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01934"/>01934             st_shift_var = st_shift_cust / st_shift[jj] - 1.f;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01935"/>01935             <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga95bcc5f260df5ce993730008a1dcb45a">fabs</link>(st_shift_var) > <link linkend="_group___d_r_i_v_e_r_s_1ga1e8f8b1ef7fb2c429e1ce7c2f9985530">test</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga7f6071fb91426f467d9223c712560ee6">max_accel_var</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01936"/>01936                 result |= 1 << jj;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01937"/>01937         } <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> ((st_shift_cust < <link linkend="_group___d_r_i_v_e_r_s_1ga1e8f8b1ef7fb2c429e1ce7c2f9985530">test</link>.<link linkend="_group___d_r_i_v_e_r_s_1gae86aec181d0f1e4a29e9f9ae0735e8e1">min_g</link>) ||
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01938"/>01938             (st_shift_cust > <link linkend="_group___d_r_i_v_e_r_s_1ga1e8f8b1ef7fb2c429e1ce7c2f9985530">test</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga9ebd3195ac2f460f82873b9e6c36eb2c">max_g</link>))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01939"/>01939             result |= 1 << jj;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01940"/>01940     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01941"/>01941
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01942"/>01942     <emphasis role="keywordflow">return</emphasis> result;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01943"/>01943 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01944"/>01944
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01945"/><link linkend="_group___d_r_i_v_e_r_s_1ga267d6f443d5be8b2a7a06aa007116f7a">01945</link> <emphasis role="keyword">static</emphasis> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga267d6f443d5be8b2a7a06aa007116f7a">gyro_self_test</link>(<emphasis role="keywordtype">long</emphasis> *bias_regular, <emphasis role="keywordtype">long</emphasis> *bias_st)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01946"/>01946 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01947"/>01947     <emphasis role="keywordtype">int</emphasis> jj, result = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01948"/>01948     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> tmp[3];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01949"/>01949     <emphasis role="keywordtype">float</emphasis> st_shift, st_shift_cust, st_shift_var;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01950"/>01950
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01951"/>01951     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga838d8f1c7b0d8cc83923b93bbafe1b33">i2c_read</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, 0x0D, 3, tmp))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01952"/>01952         <emphasis role="keywordflow">return</emphasis> 0x07;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01953"/>01953
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01954"/>01954     tmp[0] &= 0x1F;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01955"/>01955     tmp[1] &= 0x1F;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01956"/>01956     tmp[2] &= 0x1F;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01957"/>01957
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01958"/>01958     <emphasis role="keywordflow">for</emphasis> (jj = 0; jj < 3; jj++) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01959"/>01959         st_shift_cust = labs(bias_regular[jj] - bias_st[jj]) / 65536.f;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01960"/>01960         <emphasis role="keywordflow">if</emphasis> (tmp[jj]) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01961"/>01961             st_shift = 3275.f / <link linkend="_group___d_r_i_v_e_r_s_1ga1e8f8b1ef7fb2c429e1ce7c2f9985530">test</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga330290a347407b0d92b1d77aa274993c">gyro_sens</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01962"/>01962             <emphasis role="keywordflow">while</emphasis> (--tmp[jj])
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01963"/>01963                 st_shift *= 1.046f;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01964"/>01964             st_shift_var = st_shift_cust / st_shift - 1.f;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01965"/>01965             <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga95bcc5f260df5ce993730008a1dcb45a">fabs</link>(st_shift_var) > <link linkend="_group___d_r_i_v_e_r_s_1ga1e8f8b1ef7fb2c429e1ce7c2f9985530">test</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga3b47b72fbf8c152cb4389e3cd866ded9">max_gyro_var</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01966"/>01966                 result |= 1 << jj;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01967"/>01967         } <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> ((st_shift_cust < <link linkend="_group___d_r_i_v_e_r_s_1ga1e8f8b1ef7fb2c429e1ce7c2f9985530">test</link>.<link linkend="_group___d_r_i_v_e_r_s_1gafacfcf92f07cd846fb0aaf889a30c582">min_dps</link>) ||
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01968"/>01968             (st_shift_cust > <link linkend="_group___d_r_i_v_e_r_s_1ga1e8f8b1ef7fb2c429e1ce7c2f9985530">test</link>.<link linkend="_group___d_r_i_v_e_r_s_1gae588d6c0105bcd8f9144f42eee6c4835">max_dps</link>))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01969"/>01969             result |= 1 << jj;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01970"/>01970     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01971"/>01971     <emphasis role="keywordflow">return</emphasis> result;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01972"/>01972 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01973"/>01973
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01974"/>01974 <emphasis role="preprocessor">#ifdef AK89xx_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01975"/>01975 <emphasis role="keyword">static</emphasis> <emphasis role="keywordtype">int</emphasis> compass_self_test(<emphasis role="keywordtype">void</emphasis>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01976"/>01976 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01977"/>01977     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> tmp[6];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01978"/>01978     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> tries = 10;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01979"/>01979     <emphasis role="keywordtype">int</emphasis> result = 0x07;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01980"/>01980     <emphasis role="keywordtype">short</emphasis> data;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01981"/>01981
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01982"/>01982     <link linkend="_group___d_r_i_v_e_r_s_1ga36f70f38371b48d81094d3b061233e15">mpu_set_bypass</link>(1);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01983"/>01983
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01984"/>01984     tmp[0] = AKM_POWER_DOWN;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01985"/>01985     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.compass_addr, AKM_REG_CNTL, 1, tmp))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01986"/>01986         <emphasis role="keywordflow">return</emphasis> 0x07;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01987"/>01987     tmp[0] = AKM_BIT_SELF_TEST;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01988"/>01988     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.compass_addr, AKM_REG_ASTC, 1, tmp))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01989"/>01989         <emphasis role="keywordflow">goto</emphasis> AKM_restore;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01990"/>01990     tmp[0] = AKM_MODE_SELF_TEST;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01991"/>01991     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.compass_addr, AKM_REG_CNTL, 1, tmp))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01992"/>01992         <emphasis role="keywordflow">goto</emphasis> AKM_restore;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01993"/>01993
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01994"/>01994     <emphasis role="keywordflow">do</emphasis> {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01995"/>01995         <link linkend="_group___d_r_i_v_e_r_s_1gae36aca5baf9b6b7d74992aef00686d67">delay_ms</link>(10);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01996"/>01996         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga838d8f1c7b0d8cc83923b93bbafe1b33">i2c_read</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.compass_addr, AKM_REG_ST1, 1, tmp))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01997"/>01997             <emphasis role="keywordflow">goto</emphasis> AKM_restore;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01998"/>01998         <emphasis role="keywordflow">if</emphasis> (tmp[0] & AKM_DATA_READY)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l01999"/>01999             <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02000"/>02000     } <emphasis role="keywordflow">while</emphasis> (tries--);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02001"/>02001     <emphasis role="keywordflow">if</emphasis> (!(tmp[0] & AKM_DATA_READY))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02002"/>02002         <emphasis role="keywordflow">goto</emphasis> AKM_restore;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02003"/>02003
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02004"/>02004     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga838d8f1c7b0d8cc83923b93bbafe1b33">i2c_read</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.compass_addr, AKM_REG_HXL, 6, tmp))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02005"/>02005         <emphasis role="keywordflow">goto</emphasis> AKM_restore;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02006"/>02006
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02007"/>02007     result = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02008"/>02008     data = (short)(tmp[1] << 8) | tmp[0];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02009"/>02009     <emphasis role="keywordflow">if</emphasis> ((data > 100) || (data < -100))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02010"/>02010         result |= 0x01;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02011"/>02011     data = (short)(tmp[3] << 8) | tmp[2];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02012"/>02012     <emphasis role="keywordflow">if</emphasis> ((data > 100) || (data < -100))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02013"/>02013         result |= 0x02;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02014"/>02014     data = (short)(tmp[5] << 8) | tmp[4];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02015"/>02015     <emphasis role="keywordflow">if</emphasis> ((data > -300) || (data < -1000))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02016"/>02016         result |= 0x04;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02017"/>02017
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02018"/>02018 AKM_restore:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02019"/>02019     tmp[0] = 0 | SUPPORTS_AK89xx_HIGH_SENS;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02020"/>02020     <link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.compass_addr, AKM_REG_ASTC, 1, tmp);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02021"/>02021     tmp[0] = SUPPORTS_AK89xx_HIGH_SENS;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02022"/>02022     <link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.compass_addr, AKM_REG_CNTL, 1, tmp);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02023"/>02023     <link linkend="_group___d_r_i_v_e_r_s_1ga36f70f38371b48d81094d3b061233e15">mpu_set_bypass</link>(0);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02024"/>02024     <emphasis role="keywordflow">return</emphasis> result;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02025"/>02025 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02026"/>02026 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02027"/>02027 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02028"/>02028
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02029"/><link linkend="_group___d_r_i_v_e_r_s_1ga8d087842b07e9710be2267adea4b497a">02029</link> <emphasis role="keyword">static</emphasis> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga8d087842b07e9710be2267adea4b497a">get_st_biases</link>(<emphasis role="keywordtype">long</emphasis> *gyro, <emphasis role="keywordtype">long</emphasis> *accel, <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> hw_test)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02030"/>02030 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02031"/>02031     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> data[<link linkend="_group___d_r_i_v_e_r_s_1ga973c680573b37fc359fc68d0707da355">MAX_PACKET_LENGTH</link>];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02032"/>02032     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> packet_count, ii;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02033"/>02033     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> fifo_count;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02034"/>02034
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02035"/>02035     data[0] = 0x01;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02036"/>02036     data[1] = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02037"/>02037     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gaa01fb0872030e8e2932f8d1d257ea86a">pwr_mgmt_1</link>, 2, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02038"/>02038         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02039"/>02039     <link linkend="_group___d_r_i_v_e_r_s_1gae36aca5baf9b6b7d74992aef00686d67">delay_ms</link>(200);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02040"/>02040     data[0] = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02041"/>02041     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga48b47844d4b0570e60aa6806faa59eae">int_enable</link>, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02042"/>02042         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02043"/>02043     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga6a392b7ecae843c734db3d832f11af49">fifo_en</link>, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02044"/>02044         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02045"/>02045     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gaa01fb0872030e8e2932f8d1d257ea86a">pwr_mgmt_1</link>, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02046"/>02046         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02047"/>02047     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga2bf6dc826bcb17168013f303c904544b">i2c_mst</link>, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02048"/>02048         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02049"/>02049     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga12505a7d8cd7c976e5571f27a6160d23">user_ctrl</link>, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02050"/>02050         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02051"/>02051     data[0] = <link linkend="_group___d_r_i_v_e_r_s_1gaeae2cc64314ad05f3a93d2358a2369db">BIT_FIFO_RST</link> | <link linkend="_group___d_r_i_v_e_r_s_1ga37d5ceb74c3568e4bab6dcdd0afaa95b">BIT_DMP_RST</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02052"/>02052     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga12505a7d8cd7c976e5571f27a6160d23">user_ctrl</link>, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02053"/>02053         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02054"/>02054     <link linkend="_group___d_r_i_v_e_r_s_1gae36aca5baf9b6b7d74992aef00686d67">delay_ms</link>(15);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02055"/>02055     data[0] = <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga5a1563d12b0aab5e65317621742f6f62">test</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga09f5a9ab86d36f3b83e7f4abdea73e39">reg_lpf</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02056"/>02056     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga22eeac0bd77e7d99b3e15dda52f1bd08">lpf</link>, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02057"/>02057         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02058"/>02058     data[0] = <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga5a1563d12b0aab5e65317621742f6f62">test</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga3bef0c9f009cea4cbe01d0ee91126d83">reg_rate_div</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02059"/>02059     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga27dd9db31f16ca170520b3009255e6d0">rate_div</link>, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02060"/>02060         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02061"/>02061     <emphasis role="keywordflow">if</emphasis> (hw_test)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02062"/>02062         data[0] = <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga5a1563d12b0aab5e65317621742f6f62">test</link>-><link linkend="_group___d_r_i_v_e_r_s_1gaa0dfe8b2c29358e9e045aaa8beff244d">reg_gyro_fsr</link> | 0xE0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02063"/>02063     <emphasis role="keywordflow">else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02064"/>02064         data[0] = <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga5a1563d12b0aab5e65317621742f6f62">test</link>-><link linkend="_group___d_r_i_v_e_r_s_1gaa0dfe8b2c29358e9e045aaa8beff244d">reg_gyro_fsr</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02065"/>02065     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gada0b973f74cc874552f079fd58c435a6">gyro_cfg</link>, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02066"/>02066         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02067"/>02067
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02068"/>02068     <emphasis role="keywordflow">if</emphasis> (hw_test)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02069"/>02069         data[0] = <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga5a1563d12b0aab5e65317621742f6f62">test</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga3b54f67ea7f1dd47fd8aa48dda051032">reg_accel_fsr</link> | 0xE0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02070"/>02070     <emphasis role="keywordflow">else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02071"/>02071         data[0] = <link linkend="_group___d_r_i_v_e_r_s_1ga1e8f8b1ef7fb2c429e1ce7c2f9985530">test</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga3b54f67ea7f1dd47fd8aa48dda051032">reg_accel_fsr</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02072"/>02072     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gae93a446c54cc00bc7f11209d7af0025e">accel_cfg</link>, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02073"/>02073         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02074"/>02074     <emphasis role="keywordflow">if</emphasis> (hw_test)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02075"/>02075         <link linkend="_group___d_r_i_v_e_r_s_1gae36aca5baf9b6b7d74992aef00686d67">delay_ms</link>(200);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02076"/>02076
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02077"/>02077     <emphasis role="comment">/* Fill FIFO for test.wait_ms milliseconds. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02078"/>02078     data[0] = <link linkend="_group___d_r_i_v_e_r_s_1gae3c4a18accb84992faaf2534a84a147c">BIT_FIFO_EN</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02079"/>02079     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga12505a7d8cd7c976e5571f27a6160d23">user_ctrl</link>, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02080"/>02080         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02081"/>02081
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02082"/>02082     data[0] = <link linkend="_group___d_r_i_v_e_r_s_1ga3fdc30f9c0a26c2c4e2bb88921f91629">INV_XYZ_GYRO</link> | <link linkend="_group___d_r_i_v_e_r_s_1gaa03f025a17ed491e70b88274e89c75c5">INV_XYZ_ACCEL</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02083"/>02083     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga6a392b7ecae843c734db3d832f11af49">fifo_en</link>, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02084"/>02084         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02085"/>02085     <link linkend="_group___d_r_i_v_e_r_s_1gae36aca5baf9b6b7d74992aef00686d67">delay_ms</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga1e8f8b1ef7fb2c429e1ce7c2f9985530">test</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaf5d495939c8ca761ac2bbe7791dcd727">wait_ms</link>);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02086"/>02086     data[0] = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02087"/>02087     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga6a392b7ecae843c734db3d832f11af49">fifo_en</link>, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02088"/>02088         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02089"/>02089
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02090"/>02090     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga838d8f1c7b0d8cc83923b93bbafe1b33">i2c_read</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gab7503974d62cf9c2d688579fcd1abd48">fifo_count_h</link>, 2, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02091"/>02091         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02092"/>02092
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02093"/>02093     fifo_count = (data[0] << 8) | data[1];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02094"/>02094     packet_count = fifo_count / <link linkend="_group___d_r_i_v_e_r_s_1ga973c680573b37fc359fc68d0707da355">MAX_PACKET_LENGTH</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02095"/>02095     gyro[0] = gyro[1] = gyro[2] = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02096"/>02096     accel[0] = accel[1] = accel[2] = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02097"/>02097
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02098"/>02098     <emphasis role="keywordflow">for</emphasis> (ii = 0; ii < packet_count; ii++) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02099"/>02099         <emphasis role="keywordtype">short</emphasis> accel_cur[3], gyro_cur[3];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02100"/>02100         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga838d8f1c7b0d8cc83923b93bbafe1b33">i2c_read</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb6763dc5f368ea01ef7c733cea9dab4">fifo_r_w</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga973c680573b37fc359fc68d0707da355">MAX_PACKET_LENGTH</link>, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02101"/>02101             <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02102"/>02102         accel_cur[0] = ((short)data[0] << 8) | data[1];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02103"/>02103         accel_cur[1] = ((short)data[2] << 8) | data[3];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02104"/>02104         accel_cur[2] = ((short)data[4] << 8) | data[5];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02105"/>02105         accel[0] += (long)accel_cur[0];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02106"/>02106         accel[1] += (long)accel_cur[1];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02107"/>02107         accel[2] += (long)accel_cur[2];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02108"/>02108         gyro_cur[0] = (((short)data[6] << 8) | data[7]);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02109"/>02109         gyro_cur[1] = (((short)data[8] << 8) | data[9]);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02110"/>02110         gyro_cur[2] = (((short)data[10] << 8) | data[11]);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02111"/>02111         gyro[0] += (long)gyro_cur[0];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02112"/>02112         gyro[1] += (long)gyro_cur[1];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02113"/>02113         gyro[2] += (long)gyro_cur[2];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02114"/>02114     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02115"/>02115 <emphasis role="preprocessor">#ifdef EMPL_NO_64BIT</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02116"/>02116     gyro[0] = (long)(((<emphasis role="keywordtype">float</emphasis>)gyro[0]*65536.f) / <link linkend="_group___d_r_i_v_e_r_s_1ga1e8f8b1ef7fb2c429e1ce7c2f9985530">test</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga330290a347407b0d92b1d77aa274993c">gyro_sens</link> / packet_count);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02117"/>02117     gyro[1] = (long)(((<emphasis role="keywordtype">float</emphasis>)gyro[1]*65536.f) / <link linkend="_group___d_r_i_v_e_r_s_1ga1e8f8b1ef7fb2c429e1ce7c2f9985530">test</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga330290a347407b0d92b1d77aa274993c">gyro_sens</link> / packet_count);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02118"/>02118     gyro[2] = (long)(((<emphasis role="keywordtype">float</emphasis>)gyro[2]*65536.f) / <link linkend="_group___d_r_i_v_e_r_s_1ga1e8f8b1ef7fb2c429e1ce7c2f9985530">test</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga330290a347407b0d92b1d77aa274993c">gyro_sens</link> / packet_count);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02119"/>02119     <emphasis role="keywordflow">if</emphasis> (has_accel) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02120"/>02120         accel[0] = (long)(((<emphasis role="keywordtype">float</emphasis>)accel[0]*65536.f) / <link linkend="_group___d_r_i_v_e_r_s_1ga1e8f8b1ef7fb2c429e1ce7c2f9985530">test</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga5f602885d6a544a9039b13a0cc7ac085">accel_sens</link> /
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02121"/>02121             packet_count);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02122"/>02122         accel[1] = (long)(((<emphasis role="keywordtype">float</emphasis>)accel[1]*65536.f) / <link linkend="_group___d_r_i_v_e_r_s_1ga1e8f8b1ef7fb2c429e1ce7c2f9985530">test</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga5f602885d6a544a9039b13a0cc7ac085">accel_sens</link> /
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02123"/>02123             packet_count);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02124"/>02124         accel[2] = (long)(((<emphasis role="keywordtype">float</emphasis>)accel[2]*65536.f) / <link linkend="_group___d_r_i_v_e_r_s_1ga1e8f8b1ef7fb2c429e1ce7c2f9985530">test</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga5f602885d6a544a9039b13a0cc7ac085">accel_sens</link> /
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02125"/>02125             packet_count);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02126"/>02126         <emphasis role="comment">/* Don't remove gravity! */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02127"/>02127         accel[2] -= 65536L;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02128"/>02128     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02129"/>02129 <emphasis role="preprocessor">#else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02130"/>02130     gyro[0] = (long)(((<emphasis role="keywordtype">long</emphasis> <emphasis role="keywordtype">long</emphasis>)gyro[0]<<16) / <link linkend="_group___d_r_i_v_e_r_s_1ga1e8f8b1ef7fb2c429e1ce7c2f9985530">test</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga330290a347407b0d92b1d77aa274993c">gyro_sens</link> / packet_count);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02131"/>02131     gyro[1] = (long)(((<emphasis role="keywordtype">long</emphasis> <emphasis role="keywordtype">long</emphasis>)gyro[1]<<16) / <link linkend="_group___d_r_i_v_e_r_s_1ga1e8f8b1ef7fb2c429e1ce7c2f9985530">test</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga330290a347407b0d92b1d77aa274993c">gyro_sens</link> / packet_count);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02132"/>02132     gyro[2] = (long)(((<emphasis role="keywordtype">long</emphasis> <emphasis role="keywordtype">long</emphasis>)gyro[2]<<16) / <link linkend="_group___d_r_i_v_e_r_s_1ga1e8f8b1ef7fb2c429e1ce7c2f9985530">test</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga330290a347407b0d92b1d77aa274993c">gyro_sens</link> / packet_count);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02133"/>02133     accel[0] = (long)(((<emphasis role="keywordtype">long</emphasis> <emphasis role="keywordtype">long</emphasis>)accel[0]<<16) / <link linkend="_group___d_r_i_v_e_r_s_1ga1e8f8b1ef7fb2c429e1ce7c2f9985530">test</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga5f602885d6a544a9039b13a0cc7ac085">accel_sens</link> /
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02134"/>02134         packet_count);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02135"/>02135     accel[1] = (long)(((<emphasis role="keywordtype">long</emphasis> <emphasis role="keywordtype">long</emphasis>)accel[1]<<16) / <link linkend="_group___d_r_i_v_e_r_s_1ga1e8f8b1ef7fb2c429e1ce7c2f9985530">test</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga5f602885d6a544a9039b13a0cc7ac085">accel_sens</link> /
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02136"/>02136         packet_count);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02137"/>02137     accel[2] = (long)(((<emphasis role="keywordtype">long</emphasis> <emphasis role="keywordtype">long</emphasis>)accel[2]<<16) / <link linkend="_group___d_r_i_v_e_r_s_1ga1e8f8b1ef7fb2c429e1ce7c2f9985530">test</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga5f602885d6a544a9039b13a0cc7ac085">accel_sens</link> /
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02138"/>02138         packet_count);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02139"/>02139     <emphasis role="comment">/* Don't remove gravity! */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02140"/>02140     <emphasis role="keywordflow">if</emphasis> (accel[2] > 0L)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02141"/>02141         accel[2] -= 65536L;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02142"/>02142     <emphasis role="keywordflow">else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02143"/>02143         accel[2] += 65536L;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02144"/>02144 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02145"/>02145
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02146"/>02146     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02147"/>02147 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02148"/>02148
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02169"/><link linkend="_group___d_r_i_v_e_r_s_1ga3773dc98eb1ba15da0091ae75abcf62f">02169</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga3773dc98eb1ba15da0091ae75abcf62f">mpu_run_self_test</link>(<emphasis role="keywordtype">long</emphasis> *gyro, <emphasis role="keywordtype">long</emphasis> *accel)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02170"/>02170 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02171"/>02171 <emphasis role="preprocessor">#ifdef MPU6050</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02172"/>02172     <emphasis role="keyword">const</emphasis> <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> tries = 2;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02173"/>02173     <emphasis role="keywordtype">long</emphasis> gyro_st[3], accel_st[3];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02174"/>02174     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> accel_result, gyro_result;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02175"/>02175 <emphasis role="preprocessor">#ifdef AK89xx_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02176"/>02176     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> compass_result;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02177"/>02177 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02178"/>02178     <emphasis role="keywordtype">int</emphasis> ii;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02179"/>02179 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02180"/>02180     <emphasis role="keywordtype">int</emphasis> result;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02181"/>02181     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> accel_fsr, fifo_sensors, sensors_on;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02182"/>02182     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> gyro_fsr, sample_rate, lpf;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02183"/>02183     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> dmp_was_on;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02184"/>02184
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02185"/>02185     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga4783ed8aa79a3b5de798963819997c38">dmp_on</link>) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02186"/>02186         <link linkend="_group___d_r_i_v_e_r_s_1ga68ed20e6c9663cd7c50469329af8715f">mpu_set_dmp_state</link>(0);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02187"/>02187         dmp_was_on = 1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02188"/>02188     } <emphasis role="keywordflow">else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02189"/>02189         dmp_was_on = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02190"/>02190
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02191"/>02191     <emphasis role="comment">/* Get initial settings. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02192"/>02192     <link linkend="_group___d_r_i_v_e_r_s_1gaf973c32c73ba912ff512aab948fc31ca">mpu_get_gyro_fsr</link>(&gyro_fsr);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02193"/>02193     <link linkend="_group___d_r_i_v_e_r_s_1gab6087a15ee23db23b6aec41590329a60">mpu_get_accel_fsr</link>(&accel_fsr);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02194"/>02194     <link linkend="_group___d_r_i_v_e_r_s_1gaa95c7e216dcb2d888e9796001ca555f8">mpu_get_lpf</link>(&lpf);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02195"/>02195     <link linkend="_group___d_r_i_v_e_r_s_1ga2487dd551b701c1c7ed4d6335f02b2f1">mpu_get_sample_rate</link>(&sample_rate);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02196"/>02196     sensors_on = <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">sensors</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02197"/>02197     <link linkend="_group___d_r_i_v_e_r_s_1ga093f11eb10b2639a4b9fe344ea348c54">mpu_get_fifo_config</link>(&fifo_sensors);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02198"/>02198
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02199"/>02199     <emphasis role="comment">/* For older chips, the self-test will be different. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02200"/>02200 <emphasis role="preprocessor">#if defined MPU6050</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02201"/>02201     <emphasis role="keywordflow">for</emphasis> (ii = 0; ii < tries; ii++)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02202"/>02202         <emphasis role="keywordflow">if</emphasis> (!<link linkend="_group___d_r_i_v_e_r_s_1ga8d087842b07e9710be2267adea4b497a">get_st_biases</link>(gyro, accel, 0))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02203"/>02203             <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02204"/>02204     <emphasis role="keywordflow">if</emphasis> (ii == tries) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02205"/>02205         <emphasis role="comment">/* If we reach this point, we most likely encountered an I2C error.</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02206"/>02206 <emphasis role="comment">         * We'll just report an error for all three sensors.</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02207"/>02207 <emphasis role="comment">         */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02208"/>02208         result = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02209"/>02209         <emphasis role="keywordflow">goto</emphasis> restore;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02210"/>02210     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02211"/>02211     <emphasis role="keywordflow">for</emphasis> (ii = 0; ii < tries; ii++)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02212"/>02212         <emphasis role="keywordflow">if</emphasis> (!<link linkend="_group___d_r_i_v_e_r_s_1ga8d087842b07e9710be2267adea4b497a">get_st_biases</link>(gyro_st, accel_st, 1))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02213"/>02213             <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02214"/>02214     <emphasis role="keywordflow">if</emphasis> (ii == tries) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02215"/>02215         <emphasis role="comment">/* Again, probably an I2C error. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02216"/>02216         result = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02217"/>02217         <emphasis role="keywordflow">goto</emphasis> restore;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02218"/>02218     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02219"/>02219     accel_result = <link linkend="_group___d_r_i_v_e_r_s_1gaab48ddb3bd05cea3f0fc85a68db9934d">accel_self_test</link>(accel, accel_st);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02220"/>02220     gyro_result = <link linkend="_group___d_r_i_v_e_r_s_1ga267d6f443d5be8b2a7a06aa007116f7a">gyro_self_test</link>(gyro, gyro_st);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02221"/>02221
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02222"/>02222     result = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02223"/>02223     <emphasis role="keywordflow">if</emphasis> (!gyro_result)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02224"/>02224         result |= 0x01;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02225"/>02225     <emphasis role="keywordflow">if</emphasis> (!accel_result)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02226"/>02226         result |= 0x02;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02227"/>02227
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02228"/>02228 <emphasis role="preprocessor">#ifdef AK89xx_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02229"/>02229     compass_result = compass_self_test();
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02230"/>02230     <emphasis role="keywordflow">if</emphasis> (!compass_result)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02231"/>02231         result |= 0x04;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02232"/>02232 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02233"/>02233 restore:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02234"/>02234 <emphasis role="preprocessor">#elif defined MPU6500</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02235"/>02235     <emphasis role="comment">/* For now, this function will return a "pass" result for all three sensors</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02236"/>02236 <emphasis role="comment">     * for compatibility with current test applications.</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02237"/>02237 <emphasis role="comment">     */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02238"/>02238     <link linkend="_group___d_r_i_v_e_r_s_1ga8d087842b07e9710be2267adea4b497a">get_st_biases</link>(gyro, accel, 0);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02239"/>02239     result = 0x7;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02240"/>02240 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02241"/>02241     <emphasis role="comment">/* Set to invalid values to ensure no I2C writes are skipped. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02242"/>02242     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gab45a727aeee17380828a3e20ccb375c2">gyro_fsr</link> = 0xFF;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02243"/>02243     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaf66873be1446ed552812e32d40eced61">accel_fsr</link> = 0xFF;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02244"/>02244     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga16ec8ca8298f62ac01419775377270fb">lpf</link> = 0xFF;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02245"/>02245     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga2660470fcf7b53e2e832a397cbe6c354">sample_rate</link> = 0xFFFF;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02246"/>02246     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">sensors</link> = 0xFF;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02247"/>02247     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga88143c31b894bcd819c0e49b0ff267aa">fifo_enable</link> = 0xFF;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02248"/>02248     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gab7bd5165d6e62cb0d814cf3401958445">clk_src</link> = <link linkend="_group___d_r_i_v_e_r_s_1gga75570f009627c6f4ddfb2d936d81e207a01b240917a78674d3e387110a6a8f94c">INV_CLK_PLL</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02249"/>02249     <link linkend="_group___d_r_i_v_e_r_s_1gad09e6031c8677adc0b8a39b6deea8e27">mpu_set_gyro_fsr</link>(gyro_fsr);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02250"/>02250     <link linkend="_group___d_r_i_v_e_r_s_1ga2713a96af104cfb2ae8e0ed4c3718119">mpu_set_accel_fsr</link>(accel_fsr);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02251"/>02251     <link linkend="_group___d_r_i_v_e_r_s_1ga5661a9dee25152166769910767a2a93d">mpu_set_lpf</link>(lpf);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02252"/>02252     <link linkend="_group___d_r_i_v_e_r_s_1ga0144d666a67a82888b8580002afe8b55">mpu_set_sample_rate</link>(sample_rate);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02253"/>02253     <link linkend="_group___d_r_i_v_e_r_s_1ga6e77e7cc1cf6be5e8fdf617c5b4586d1">mpu_set_sensors</link>(sensors_on);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02254"/>02254     <link linkend="_group___d_r_i_v_e_r_s_1gababbdda287e1f19323489f90a0889dd7">mpu_configure_fifo</link>(fifo_sensors);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02255"/>02255
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02256"/>02256     <emphasis role="keywordflow">if</emphasis> (dmp_was_on)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02257"/>02257         <link linkend="_group___d_r_i_v_e_r_s_1ga68ed20e6c9663cd7c50469329af8715f">mpu_set_dmp_state</link>(1);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02258"/>02258
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02259"/>02259     <emphasis role="keywordflow">return</emphasis> result;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02260"/>02260 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02261"/>02261
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02271"/><link linkend="_group___d_r_i_v_e_r_s_1gafea59910bc3dd30ba3356b1c75213a5f">02271</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gafea59910bc3dd30ba3356b1c75213a5f">mpu_write_mem</link>(<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> mem_addr, <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> length,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02272"/>02272         <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> *data)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02273"/>02273 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02274"/>02274     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> tmp[2];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02275"/>02275
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02276"/>02276     <emphasis role="keywordflow">if</emphasis> (!data)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02277"/>02277         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02278"/>02278     <emphasis role="keywordflow">if</emphasis> (!<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">sensors</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02279"/>02279         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02280"/>02280
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02281"/>02281     tmp[0] = (<emphasis role="keywordtype">unsigned</emphasis> char)(mem_addr >> 8);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02282"/>02282     tmp[1] = (<emphasis role="keywordtype">unsigned</emphasis> char)(mem_addr & 0xFF);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02283"/>02283
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02284"/>02284     <emphasis role="comment">/* Check bank boundaries. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02285"/>02285     <emphasis role="keywordflow">if</emphasis> (tmp[1] + length > <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gaef4a2014cd6e3d5faeb8f713ee3606ed">bank_size</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02286"/>02286         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02287"/>02287
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02288"/>02288     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gaf1b74c33fa828ea4dc172bfbaaf47216">bank_sel</link>, 2, tmp))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02289"/>02289         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02290"/>02290     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gae17166b43fa12a960c0eced9a3c04bf0">mem_r_w</link>, length, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02291"/>02291         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02292"/>02292     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02293"/>02293 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02294"/>02294
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02304"/><link linkend="_group___d_r_i_v_e_r_s_1ga3374bececb6743893c9eab27645c1182">02304</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga3374bececb6743893c9eab27645c1182">mpu_read_mem</link>(<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> mem_addr, <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> length,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02305"/>02305         <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> *data)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02306"/>02306 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02307"/>02307     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> tmp[2];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02308"/>02308
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02309"/>02309     <emphasis role="keywordflow">if</emphasis> (!data)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02310"/>02310         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02311"/>02311     <emphasis role="keywordflow">if</emphasis> (!<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">sensors</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02312"/>02312         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02313"/>02313
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02314"/>02314     tmp[0] = (<emphasis role="keywordtype">unsigned</emphasis> char)(mem_addr >> 8);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02315"/>02315     tmp[1] = (<emphasis role="keywordtype">unsigned</emphasis> char)(mem_addr & 0xFF);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02316"/>02316
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02317"/>02317     <emphasis role="comment">/* Check bank boundaries. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02318"/>02318     <emphasis role="keywordflow">if</emphasis> (tmp[1] + length > <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gaef4a2014cd6e3d5faeb8f713ee3606ed">bank_size</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02319"/>02319         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02320"/>02320
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02321"/>02321     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gaf1b74c33fa828ea4dc172bfbaaf47216">bank_sel</link>, 2, tmp))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02322"/>02322         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02323"/>02323     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga838d8f1c7b0d8cc83923b93bbafe1b33">i2c_read</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gae17166b43fa12a960c0eced9a3c04bf0">mem_r_w</link>, length, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02324"/>02324         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02325"/>02325     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02326"/>02326 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02327"/>02327
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02336"/><link linkend="_group___d_r_i_v_e_r_s_1ga8fbdfe1a50285d4ab438e29c2efc70f5">02336</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga8fbdfe1a50285d4ab438e29c2efc70f5">mpu_load_firmware</link>(<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> length, <emphasis role="keyword">const</emphasis> <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> *firmware,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02337"/>02337     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> start_addr, <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> sample_rate)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02338"/>02338 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02339"/>02339     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> ii;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02340"/>02340     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> this_write;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02341"/>02341     <emphasis role="comment">/* Must divide evenly into st.hw->bank_size to avoid bank crossings. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02342"/>02342 <emphasis role="preprocessor">#define LOAD_CHUNK  (16)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02343"/>02343     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> cur[<link linkend="_inv__mpu_8c_1a7750730ae7e5c713b619e347d44185fe">LOAD_CHUNK</link>], tmp[2];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02344"/>02344
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02345"/>02345     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga1d2ff55e17aae1459dfad61d76054b1b">dmp_loaded</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02346"/>02346         <emphasis role="comment">/* DMP should only be loaded once. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02347"/>02347         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02348"/>02348
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02349"/>02349     <emphasis role="keywordflow">if</emphasis> (!firmware)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02350"/>02350         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02351"/>02351     <emphasis role="keywordflow">for</emphasis> (ii = 0; ii < length; ii += this_write) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02352"/>02352         this_write = <link linkend="_group___d_r_i_v_e_r_s_1gac6afabdc09a49a433ee19d8a9486056d">min</link>(<link linkend="_inv__mpu_8c_1a7750730ae7e5c713b619e347d44185fe">LOAD_CHUNK</link>, length - ii);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02353"/>02353         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gafea59910bc3dd30ba3356b1c75213a5f">mpu_write_mem</link>(ii, this_write, (<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis>*)&firmware[ii]))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02354"/>02354             <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02355"/>02355         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3374bececb6743893c9eab27645c1182">mpu_read_mem</link>(ii, this_write, cur))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02356"/>02356             <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02357"/>02357         <emphasis role="keywordflow">if</emphasis> (memcmp(firmware+ii, cur, this_write))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02358"/>02358             <emphasis role="keywordflow">return</emphasis> -2;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02359"/>02359     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02360"/>02360
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02361"/>02361     <emphasis role="comment">/* Set program start address. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02362"/>02362     tmp[0] = start_addr >> 8;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02363"/>02363     tmp[1] = start_addr & 0xFF;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02364"/>02364     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gaac4aac12b0e82272affd408b24dc9c95">prgm_start_h</link>, 2, tmp))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02365"/>02365         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02366"/>02366
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02367"/>02367     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga1d2ff55e17aae1459dfad61d76054b1b">dmp_loaded</link> = 1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02368"/>02368     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga5f42b7e1e740f2fb64427417e9e2dab7">dmp_sample_rate</link> = sample_rate;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02369"/>02369     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02370"/>02370 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02371"/>02371
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02377"/><link linkend="_group___d_r_i_v_e_r_s_1ga68ed20e6c9663cd7c50469329af8715f">02377</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga68ed20e6c9663cd7c50469329af8715f">mpu_set_dmp_state</link>(<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> enable)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02378"/>02378 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02379"/>02379     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> tmp;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02380"/>02380     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga4783ed8aa79a3b5de798963819997c38">dmp_on</link> == enable)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02381"/>02381         <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02382"/>02382
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02383"/>02383     <emphasis role="keywordflow">if</emphasis> (enable) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02384"/>02384         <emphasis role="keywordflow">if</emphasis> (!<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga1d2ff55e17aae1459dfad61d76054b1b">dmp_loaded</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02385"/>02385             <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02386"/>02386         <emphasis role="comment">/* Disable data ready interrupt. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02387"/>02387         <link linkend="_group___d_r_i_v_e_r_s_1gafd5ebff6b0179e1dce0b68c2272cae07">set_int_enable</link>(0);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02388"/>02388         <emphasis role="comment">/* Disable bypass mode. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02389"/>02389         <link linkend="_group___d_r_i_v_e_r_s_1ga36f70f38371b48d81094d3b061233e15">mpu_set_bypass</link>(0);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02390"/>02390         <emphasis role="comment">/* Keep constant sample rate, FIFO rate controlled by DMP. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02391"/>02391         <link linkend="_group___d_r_i_v_e_r_s_1ga0144d666a67a82888b8580002afe8b55">mpu_set_sample_rate</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga5f42b7e1e740f2fb64427417e9e2dab7">dmp_sample_rate</link>);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02392"/>02392         <emphasis role="comment">/* Remove FIFO elements. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02393"/>02393         tmp = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02394"/>02394         <link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, 0x23, 1, &tmp);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02395"/>02395         <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga4783ed8aa79a3b5de798963819997c38">dmp_on</link> = 1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02396"/>02396         <emphasis role="comment">/* Enable DMP interrupt. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02397"/>02397         <link linkend="_group___d_r_i_v_e_r_s_1gafd5ebff6b0179e1dce0b68c2272cae07">set_int_enable</link>(1);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02398"/>02398         <link linkend="_group___d_r_i_v_e_r_s_1gaf23e9f57c0059be6ec57862f0584de10">mpu_reset_fifo</link>();
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02399"/>02399     } <emphasis role="keywordflow">else</emphasis> {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02400"/>02400         <emphasis role="comment">/* Disable DMP interrupt. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02401"/>02401         <link linkend="_group___d_r_i_v_e_r_s_1gafd5ebff6b0179e1dce0b68c2272cae07">set_int_enable</link>(0);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02402"/>02402         <emphasis role="comment">/* Restore FIFO settings. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02403"/>02403         tmp = <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga88143c31b894bcd819c0e49b0ff267aa">fifo_enable</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02404"/>02404         <link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, 0x23, 1, &tmp);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02405"/>02405         <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga4783ed8aa79a3b5de798963819997c38">dmp_on</link> = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02406"/>02406         <link linkend="_group___d_r_i_v_e_r_s_1gaf23e9f57c0059be6ec57862f0584de10">mpu_reset_fifo</link>();
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02407"/>02407     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02408"/>02408     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02409"/>02409 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02410"/>02410
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02416"/><link linkend="_group___d_r_i_v_e_r_s_1gafe0f60ed0d7f8fd2dcd55d45b95a2363">02416</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gafe0f60ed0d7f8fd2dcd55d45b95a2363">mpu_get_dmp_state</link>(<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> *enabled)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02417"/>02417 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02418"/>02418     enabled[0] = <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga4783ed8aa79a3b5de798963819997c38">dmp_on</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02419"/>02419     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02420"/>02420 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02421"/>02421
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02422"/>02422
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02423"/>02423 <emphasis role="comment">/* This initialization is similar to the one in ak8975.c. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02424"/><link linkend="_group___d_r_i_v_e_r_s_1ga4764ce0ba4e07a4c774f69ab3b83d1f9">02424</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga4764ce0ba4e07a4c774f69ab3b83d1f9">setup_compass</link>(<emphasis role="keywordtype">void</emphasis>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02425"/>02425 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02426"/>02426 <emphasis role="preprocessor">#ifdef AK89xx_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02427"/>02427     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> data[4], akm_addr;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02428"/>02428
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02429"/>02429     <link linkend="_group___d_r_i_v_e_r_s_1ga36f70f38371b48d81094d3b061233e15">mpu_set_bypass</link>(1);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02430"/>02430
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02431"/>02431     <emphasis role="comment">/* Find compass. Possible addresses range from 0x0C to 0x0F. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02432"/>02432     <emphasis role="keywordflow">for</emphasis> (akm_addr = 0x0C; akm_addr <= 0x0F; akm_addr++) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02433"/>02433         <emphasis role="keywordtype">int</emphasis> result;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02434"/>02434         result = <link linkend="_group___d_r_i_v_e_r_s_1ga838d8f1c7b0d8cc83923b93bbafe1b33">i2c_read</link>(akm_addr, AKM_REG_WHOAMI, 1, data);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02435"/>02435         <emphasis role="keywordflow">if</emphasis> (!result && (data[0] == AKM_WHOAMI))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02436"/>02436             <emphasis role="keywordflow">break</emphasis>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02437"/>02437     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02438"/>02438
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02439"/>02439     <emphasis role="keywordflow">if</emphasis> (akm_addr > 0x0F) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02440"/>02440         <emphasis role="comment">/* TODO: Handle this case in all compass-related functions. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02441"/>02441         <link linkend="_group___d_r_i_v_e_r_s_1gab354affc295f7d61fe8a355c9361cc5a">log_e</link>(<emphasis role="stringliteral">"Compass not found.\n"</emphasis>);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02442"/>02442         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02443"/>02443     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02444"/>02444
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02445"/>02445     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.compass_addr = akm_addr;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02446"/>02446
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02447"/>02447     data[0] = AKM_POWER_DOWN;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02448"/>02448     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.compass_addr, AKM_REG_CNTL, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02449"/>02449         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02450"/>02450     <link linkend="_group___d_r_i_v_e_r_s_1gae36aca5baf9b6b7d74992aef00686d67">delay_ms</link>(1);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02451"/>02451
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02452"/>02452     data[0] = AKM_FUSE_ROM_ACCESS;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02453"/>02453     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.compass_addr, AKM_REG_CNTL, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02454"/>02454         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02455"/>02455     <link linkend="_group___d_r_i_v_e_r_s_1gae36aca5baf9b6b7d74992aef00686d67">delay_ms</link>(1);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02456"/>02456
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02457"/>02457     <emphasis role="comment">/* Get sensitivity adjustment data from fuse ROM. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02458"/>02458     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga838d8f1c7b0d8cc83923b93bbafe1b33">i2c_read</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.compass_addr, AKM_REG_ASAX, 3, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02459"/>02459         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02460"/>02460     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.mag_sens_adj[0] = (long)data[0] + 128;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02461"/>02461     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.mag_sens_adj[1] = (long)data[1] + 128;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02462"/>02462     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.mag_sens_adj[2] = (long)data[2] + 128;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02463"/>02463
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02464"/>02464     data[0] = AKM_POWER_DOWN;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02465"/>02465     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.compass_addr, AKM_REG_CNTL, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02466"/>02466         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02467"/>02467     <link linkend="_group___d_r_i_v_e_r_s_1gae36aca5baf9b6b7d74992aef00686d67">delay_ms</link>(1);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02468"/>02468
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02469"/>02469     <link linkend="_group___d_r_i_v_e_r_s_1ga36f70f38371b48d81094d3b061233e15">mpu_set_bypass</link>(0);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02470"/>02470
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02471"/>02471     <emphasis role="comment">/* Set up master mode, master clock, and ES bit. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02472"/>02472     data[0] = 0x40;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02473"/>02473     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga2bf6dc826bcb17168013f303c904544b">i2c_mst</link>, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02474"/>02474         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02475"/>02475
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02476"/>02476     <emphasis role="comment">/* Slave 0 reads from AKM data registers. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02477"/>02477     data[0] = <link linkend="_group___d_r_i_v_e_r_s_1ga8ef1963ec6fb3df5586e50959cf00a70">BIT_I2C_READ</link> | <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.compass_addr;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02478"/>02478     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>->s0_addr, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02479"/>02479         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02480"/>02480
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02481"/>02481     <emphasis role="comment">/* Compass reads start at this register. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02482"/>02482     data[0] = AKM_REG_ST1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02483"/>02483     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>->s0_reg, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02484"/>02484         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02485"/>02485
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02486"/>02486     <emphasis role="comment">/* Enable slave 0, 8-byte reads. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02487"/>02487     data[0] = <link linkend="_group___d_r_i_v_e_r_s_1gae9440f48b6d70d900366dc040a8714d7">BIT_SLAVE_EN</link> | 8;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02488"/>02488     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>->s0_ctrl, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02489"/>02489         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02490"/>02490
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02491"/>02491     <emphasis role="comment">/* Slave 1 changes AKM measurement mode. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02492"/>02492     data[0] = <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.compass_addr;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02493"/>02493     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>->s1_addr, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02494"/>02494         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02495"/>02495
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02496"/>02496     <emphasis role="comment">/* AKM measurement mode register. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02497"/>02497     data[0] = AKM_REG_CNTL;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02498"/>02498     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>->s1_reg, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02499"/>02499         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02500"/>02500
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02501"/>02501     <emphasis role="comment">/* Enable slave 1, 1-byte writes. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02502"/>02502     data[0] = <link linkend="_group___d_r_i_v_e_r_s_1gae9440f48b6d70d900366dc040a8714d7">BIT_SLAVE_EN</link> | 1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02503"/>02503     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>->s1_ctrl, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02504"/>02504         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02505"/>02505
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02506"/>02506     <emphasis role="comment">/* Set slave 1 data. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02507"/>02507     data[0] = AKM_SINGLE_MEASUREMENT;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02508"/>02508     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>->s1_do, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02509"/>02509         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02510"/>02510
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02511"/>02511     <emphasis role="comment">/* Trigger slave 0 and slave 1 actions at each sample. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02512"/>02512     data[0] = 0x03;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02513"/>02513     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>->i2c_delay_ctrl, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02514"/>02514         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02515"/>02515
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02516"/>02516 <emphasis role="preprocessor">#ifdef MPU9150</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02517"/>02517     <emphasis role="comment">/* For the MPU9150, the auxiliary I2C bus needs to be set to VDD. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02518"/>02518     data[0] = <link linkend="_group___d_r_i_v_e_r_s_1gac52d7caf4efc485ef6faa1211bfe60dc">BIT_I2C_MST_VDDIO</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02519"/>02519     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>->yg_offs_tc, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02520"/>02520         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02521"/>02521 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02522"/>02522
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02523"/>02523     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02524"/>02524 <emphasis role="preprocessor">#else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02525"/>02525     <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02526"/>02526 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02527"/>02527 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02528"/>02528
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02535"/><link linkend="_group___d_r_i_v_e_r_s_1ga65e6b0ce980b8c0255d7be9b55c88c08">02535</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga65e6b0ce980b8c0255d7be9b55c88c08">mpu_get_compass_reg</link>(<emphasis role="keywordtype">short</emphasis> *data, <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">long</emphasis> *timestamp)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02536"/>02536 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02537"/>02537 <emphasis role="preprocessor">#ifdef AK89xx_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02538"/>02538     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> tmp[9];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02539"/>02539
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02540"/>02540     <emphasis role="keywordflow">if</emphasis> (!(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">sensors</link> & <link linkend="_group___d_r_i_v_e_r_s_1ga7fc9c1dbdcb2ac8cc2a4128a5799482a">INV_XYZ_COMPASS</link>))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02541"/>02541         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02542"/>02542
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02543"/>02543 <emphasis role="preprocessor">#ifdef AK89xx_BYPASS</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02544"/>02544     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga838d8f1c7b0d8cc83923b93bbafe1b33">i2c_read</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.compass_addr, AKM_REG_ST1, 8, tmp))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02545"/>02545         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02546"/>02546     tmp[8] = AKM_SINGLE_MEASUREMENT;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02547"/>02547     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.compass_addr, AKM_REG_CNTL, 1, tmp+8))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02548"/>02548         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02549"/>02549 <emphasis role="preprocessor">#else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02550"/>02550     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga838d8f1c7b0d8cc83923b93bbafe1b33">i2c_read</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>->raw_compass, 8, tmp))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02551"/>02551         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02552"/>02552 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02553"/>02553
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02554"/>02554 <emphasis role="preprocessor">#if defined AK8975_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02555"/>02555     <emphasis role="comment">/* AK8975 doesn't have the overrun error bit. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02556"/>02556     <emphasis role="keywordflow">if</emphasis> (!(tmp[0] & AKM_DATA_READY))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02557"/>02557         <emphasis role="keywordflow">return</emphasis> -2;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02558"/>02558     <emphasis role="keywordflow">if</emphasis> ((tmp[7] & AKM_OVERFLOW) || (tmp[7] & AKM_DATA_ERROR))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02559"/>02559         <emphasis role="keywordflow">return</emphasis> -3;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02560"/>02560 <emphasis role="preprocessor">#elif defined AK8963_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02561"/>02561     <emphasis role="comment">/* AK8963 doesn't have the data read error bit. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02562"/>02562     <emphasis role="keywordflow">if</emphasis> (!(tmp[0] & AKM_DATA_READY) || (tmp[0] & AKM_DATA_OVERRUN))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02563"/>02563         <emphasis role="keywordflow">return</emphasis> -2;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02564"/>02564     <emphasis role="keywordflow">if</emphasis> (tmp[7] & AKM_OVERFLOW)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02565"/>02565         <emphasis role="keywordflow">return</emphasis> -3;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02566"/>02566 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02567"/>02567     data[0] = (tmp[2] << 8) | tmp[1];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02568"/>02568     data[1] = (tmp[4] << 8) | tmp[3];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02569"/>02569     data[2] = (tmp[6] << 8) | tmp[5];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02570"/>02570
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02571"/>02571     data[0] = ((long)data[0] * <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.mag_sens_adj[0]) >> 8;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02572"/>02572     data[1] = ((long)data[1] * <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.mag_sens_adj[1]) >> 8;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02573"/>02573     data[2] = ((long)data[2] * <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.mag_sens_adj[2]) >> 8;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02574"/>02574
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02575"/>02575     <emphasis role="keywordflow">if</emphasis> (timestamp)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02576"/>02576         <link linkend="_group___d_r_i_v_e_r_s_1ga3e6b6bc6d1cd2956353a31bfadd3c332">get_ms</link>(timestamp);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02577"/>02577     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02578"/>02578 <emphasis role="preprocessor">#else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02579"/>02579     <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02580"/>02580 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02581"/>02581 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02582"/>02582
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02588"/><link linkend="_group___d_r_i_v_e_r_s_1gade8589573d09e0f14b84130428f286df">02588</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gade8589573d09e0f14b84130428f286df">mpu_get_compass_fsr</link>(<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> *fsr)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02589"/>02589 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02590"/>02590 <emphasis role="preprocessor">#ifdef AK89xx_SECONDARY</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02591"/>02591     fsr[0] = <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>->compass_fsr;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02592"/>02592     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02593"/>02593 <emphasis role="preprocessor">#else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02594"/>02594     <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02595"/>02595 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02596"/>02596 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02597"/>02597
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02642"/><link linkend="_group___d_r_i_v_e_r_s_1ga7d0b3259346898ccd1ba6ef78bf7df97">02642</link> <emphasis role="keywordtype">int</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga7d0b3259346898ccd1ba6ef78bf7df97">mpu_lp_motion_interrupt</link>(<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> thresh, <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> time,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02643"/>02643     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> lpa_freq)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02644"/>02644 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02645"/>02645     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> data[3];
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02646"/>02646
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02647"/>02647     <emphasis role="keywordflow">if</emphasis> (lpa_freq) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02648"/>02648         <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> thresh_hw;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02649"/>02649
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02650"/>02650 <emphasis role="preprocessor">#if defined MPU6050</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02651"/>02651         <emphasis role="comment">/* TODO: Make these const/#defines. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02652"/>02652         <emphasis role="comment">/* 1LSb = 32mg. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02653"/>02653         <emphasis role="keywordflow">if</emphasis> (thresh > 8160)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02654"/>02654             thresh_hw = 255;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02655"/>02655         <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (thresh < 32)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02656"/>02656             thresh_hw = 1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02657"/>02657         <emphasis role="keywordflow">else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02658"/>02658             thresh_hw = thresh >> 5;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02659"/>02659 <emphasis role="preprocessor">#elif defined MPU6500</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02660"/>02660         <emphasis role="comment">/* 1LSb = 4mg. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02661"/>02661         <emphasis role="keywordflow">if</emphasis> (thresh > 1020)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02662"/>02662             thresh_hw = 255;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02663"/>02663         <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (thresh < 4)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02664"/>02664             thresh_hw = 1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02665"/>02665         <emphasis role="keywordflow">else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02666"/>02666             thresh_hw = thresh >> 2;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02667"/>02667 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02668"/>02668
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02669"/>02669         <emphasis role="keywordflow">if</emphasis> (!time)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02670"/>02670             <emphasis role="comment">/* Minimum duration must be 1ms. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02671"/>02671             time = 1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02672"/>02672
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02673"/>02673 <emphasis role="preprocessor">#if defined MPU6050</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02674"/>02674         <emphasis role="keywordflow">if</emphasis> (lpa_freq > 40)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02675"/>02675 <emphasis role="preprocessor">#elif defined MPU6500</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02676"/>02676         <emphasis role="keywordflow">if</emphasis> (lpa_freq > 640)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02677"/>02677 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02678"/>02678             <emphasis role="comment">/* At this point, the chip has not been re-configured, so the</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02679"/>02679 <emphasis role="comment">             * function can safely exit.</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02680"/>02680 <emphasis role="comment">             */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02681"/>02681             <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02682"/>02682
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02683"/>02683         <emphasis role="keywordflow">if</emphasis> (!<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga279cd5d5d78890357f2d42905d7471df">int_motion_only</link>) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02684"/>02684             <emphasis role="comment">/* Store current settings for later. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02685"/>02685             <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga4783ed8aa79a3b5de798963819997c38">dmp_on</link>) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02686"/>02686                 <link linkend="_group___d_r_i_v_e_r_s_1ga68ed20e6c9663cd7c50469329af8715f">mpu_set_dmp_state</link>(0);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02687"/>02687                 <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gadf3b491a068e0225a080821516353bac">cache</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga6461e400e336d2ccbc8c7d95ace9461d">dmp_on</link> = 1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02688"/>02688             } <emphasis role="keywordflow">else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02689"/>02689                 <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gadf3b491a068e0225a080821516353bac">cache</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga6461e400e336d2ccbc8c7d95ace9461d">dmp_on</link> = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02690"/>02690             <link linkend="_group___d_r_i_v_e_r_s_1gaf973c32c73ba912ff512aab948fc31ca">mpu_get_gyro_fsr</link>(&<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gadf3b491a068e0225a080821516353bac">cache</link>.<link linkend="_group___d_r_i_v_e_r_s_1gae9614e4c92be9fc08f2aec7f34853fbc">gyro_fsr</link>);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02691"/>02691             <link linkend="_group___d_r_i_v_e_r_s_1gab6087a15ee23db23b6aec41590329a60">mpu_get_accel_fsr</link>(&<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gadf3b491a068e0225a080821516353bac">cache</link>.<link linkend="_group___d_r_i_v_e_r_s_1gacfb901facda5ef8a02d47726db98e58e">accel_fsr</link>);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02692"/>02692             <link linkend="_group___d_r_i_v_e_r_s_1gaa95c7e216dcb2d888e9796001ca555f8">mpu_get_lpf</link>(&<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gadf3b491a068e0225a080821516353bac">cache</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac1a1eb41631eb71481d6d247d9c67d4a">lpf</link>);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02693"/>02693             <link linkend="_group___d_r_i_v_e_r_s_1ga2487dd551b701c1c7ed4d6335f02b2f1">mpu_get_sample_rate</link>(&<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gadf3b491a068e0225a080821516353bac">cache</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga1cf6b7edfe37a51209897ccc448ec0e6">sample_rate</link>);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02694"/>02694             <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gadf3b491a068e0225a080821516353bac">cache</link>.<link linkend="_group___d_r_i_v_e_r_s_1gae5416a4097b0cf39460df70094bc474d">sensors_on</link> = <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">sensors</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02695"/>02695             <link linkend="_group___d_r_i_v_e_r_s_1ga093f11eb10b2639a4b9fe344ea348c54">mpu_get_fifo_config</link>(&<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gadf3b491a068e0225a080821516353bac">cache</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga41501694a84bdf70e9c660852b653273">fifo_sensors</link>);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02696"/>02696         }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02697"/>02697
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02698"/>02698 <emphasis role="preprocessor">#ifdef MPU6050</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02699"/>02699         <emphasis role="comment">/* Disable hardware interrupts for now. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02700"/>02700         <link linkend="_group___d_r_i_v_e_r_s_1gafd5ebff6b0179e1dce0b68c2272cae07">set_int_enable</link>(0);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02701"/>02701
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02702"/>02702         <emphasis role="comment">/* Enter full-power accel-only mode. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02703"/>02703         <link linkend="_group___d_r_i_v_e_r_s_1ga3a4fea75686ab7d2e68634e81ccac04c">mpu_lp_accel_mode</link>(0);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02704"/>02704
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02705"/>02705         <emphasis role="comment">/* Override current LPF (and HPF) settings to obtain a valid accel</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02706"/>02706 <emphasis role="comment">         * reading.</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02707"/>02707 <emphasis role="comment">         */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02708"/>02708         data[0] = <link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9a9f0263fbbdccd3c5a18fcb65be278d24">INV_FILTER_256HZ_NOLPF2</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02709"/>02709         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga22eeac0bd77e7d99b3e15dda52f1bd08">lpf</link>, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02710"/>02710             <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02711"/>02711
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02712"/>02712         <emphasis role="comment">/* NOTE: Digital high pass filter should be configured here. Since this</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02713"/>02713 <emphasis role="comment">         * driver doesn't modify those bits anywhere, they should already be</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02714"/>02714 <emphasis role="comment">         * cleared by default.</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02715"/>02715 <emphasis role="comment">         */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02716"/>02716
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02717"/>02717         <emphasis role="comment">/* Configure the device to send motion interrupts. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02718"/>02718         <emphasis role="comment">/* Enable motion interrupt. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02719"/>02719         data[0] = <link linkend="_group___d_r_i_v_e_r_s_1ga6a8f2f7f3dd17bc05d9c6286d15c7ada">BIT_MOT_INT_EN</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02720"/>02720         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga48b47844d4b0570e60aa6806faa59eae">int_enable</link>, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02721"/>02721             <emphasis role="keywordflow">goto</emphasis> lp_int_restore;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02722"/>02722
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02723"/>02723         <emphasis role="comment">/* Set motion interrupt parameters. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02724"/>02724         data[0] = thresh_hw;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02725"/>02725         data[1] = time;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02726"/>02726         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gab2065a062ea7d6179cd8407b2ab4d146">motion_thr</link>, 2, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02727"/>02727             <emphasis role="keywordflow">goto</emphasis> lp_int_restore;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02728"/>02728
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02729"/>02729         <emphasis role="comment">/* Force hardware to "lock" current accel sample. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02730"/>02730         <link linkend="_group___d_r_i_v_e_r_s_1gae36aca5baf9b6b7d74992aef00686d67">delay_ms</link>(5);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02731"/>02731         data[0] = (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaf66873be1446ed552812e32d40eced61">accel_fsr</link> << 3) | <link linkend="_group___d_r_i_v_e_r_s_1ga3c9c0234d4a71c9d35bb0da64ea867eb">BITS_HPF</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02732"/>02732         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gae93a446c54cc00bc7f11209d7af0025e">accel_cfg</link>, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02733"/>02733             <emphasis role="keywordflow">goto</emphasis> lp_int_restore;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02734"/>02734
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02735"/>02735         <emphasis role="comment">/* Set up LP accel mode. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02736"/>02736         data[0] = <link linkend="_group___d_r_i_v_e_r_s_1ga63e6f23af37626aa1498d8c248f259e7">BIT_LPA_CYCLE</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02737"/>02737         <emphasis role="keywordflow">if</emphasis> (lpa_freq == 1)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02738"/>02738             data[1] = <link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7ab44c7d0127a9466747853533a537b567">INV_LPA_1_25HZ</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02739"/>02739         <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (lpa_freq <= 5)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02740"/>02740             data[1] = <link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7a474cac76bff369dd656cc973207a1ca5">INV_LPA_5HZ</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02741"/>02741         <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (lpa_freq <= 20)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02742"/>02742             data[1] = <link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7accaaf47c58dfe32cbf2ffa11fdb83108">INV_LPA_20HZ</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02743"/>02743         <emphasis role="keywordflow">else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02744"/>02744             data[1] = <link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7a798d2b86eafcf3fc7c7fe775f46cb4cb">INV_LPA_40HZ</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02745"/>02745         data[1] = (data[1] << 6) | <link linkend="_group___d_r_i_v_e_r_s_1ga4e2ef22b94b90f9b83394dfe1f688ce4">BIT_STBY_XYZG</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02746"/>02746         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gaa01fb0872030e8e2932f8d1d257ea86a">pwr_mgmt_1</link>, 2, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02747"/>02747             <emphasis role="keywordflow">goto</emphasis> lp_int_restore;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02748"/>02748
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02749"/>02749         <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga279cd5d5d78890357f2d42905d7471df">int_motion_only</link> = 1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02750"/>02750         <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02751"/>02751 <emphasis role="preprocessor">#elif defined MPU6500</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02752"/>02752         <emphasis role="comment">/* Disable hardware interrupts. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02753"/>02753         <link linkend="_group___d_r_i_v_e_r_s_1gafd5ebff6b0179e1dce0b68c2272cae07">set_int_enable</link>(0);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02754"/>02754
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02755"/>02755         <emphasis role="comment">/* Enter full-power accel-only mode, no FIFO/DMP. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02756"/>02756         data[0] = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02757"/>02757         data[1] = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02758"/>02758         data[2] = <link linkend="_group___d_r_i_v_e_r_s_1ga4e2ef22b94b90f9b83394dfe1f688ce4">BIT_STBY_XYZG</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02759"/>02759         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga12505a7d8cd7c976e5571f27a6160d23">user_ctrl</link>, 3, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02760"/>02760             <emphasis role="keywordflow">goto</emphasis> lp_int_restore;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02761"/>02761
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02762"/>02762         <emphasis role="comment">/* Set motion threshold. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02763"/>02763         data[0] = thresh_hw;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02764"/>02764         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gab2065a062ea7d6179cd8407b2ab4d146">motion_thr</link>, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02765"/>02765             <emphasis role="keywordflow">goto</emphasis> lp_int_restore;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02766"/>02766
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02767"/>02767         <emphasis role="comment">/* Set wake frequency. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02768"/>02768         <emphasis role="keywordflow">if</emphasis> (lpa_freq == 1)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02769"/>02769             data[0] = <link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7ab44c7d0127a9466747853533a537b567">INV_LPA_1_25HZ</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02770"/>02770         <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (lpa_freq == 2)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02771"/>02771             data[0] = INV_LPA_2_5HZ;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02772"/>02772         <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (lpa_freq <= 5)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02773"/>02773             data[0] = <link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7a474cac76bff369dd656cc973207a1ca5">INV_LPA_5HZ</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02774"/>02774         <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (lpa_freq <= 10)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02775"/>02775             data[0] = INV_LPA_10HZ;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02776"/>02776         <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (lpa_freq <= 20)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02777"/>02777             data[0] = <link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7accaaf47c58dfe32cbf2ffa11fdb83108">INV_LPA_20HZ</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02778"/>02778         <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (lpa_freq <= 40)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02779"/>02779             data[0] = <link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7a798d2b86eafcf3fc7c7fe775f46cb4cb">INV_LPA_40HZ</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02780"/>02780         <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (lpa_freq <= 80)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02781"/>02781             data[0] = INV_LPA_80HZ;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02782"/>02782         <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (lpa_freq <= 160)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02783"/>02783             data[0] = INV_LPA_160HZ;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02784"/>02784         <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (lpa_freq <= 320)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02785"/>02785             data[0] = INV_LPA_320HZ;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02786"/>02786         <emphasis role="keywordflow">else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02787"/>02787             data[0] = INV_LPA_640HZ;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02788"/>02788         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>->lp_accel_odr, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02789"/>02789             <emphasis role="keywordflow">goto</emphasis> lp_int_restore;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02790"/>02790
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02791"/>02791         <emphasis role="comment">/* Enable motion interrupt (MPU6500 version). */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02792"/>02792         data[0] = <link linkend="_group___d_r_i_v_e_r_s_1ga75b1479e451b747afb3b24cbc4df99f7">BITS_WOM_EN</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02793"/>02793         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>->accel_intel, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02794"/>02794             <emphasis role="keywordflow">goto</emphasis> lp_int_restore;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02795"/>02795
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02796"/>02796         <emphasis role="comment">/* Enable cycle mode. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02797"/>02797         data[0] = <link linkend="_group___d_r_i_v_e_r_s_1ga63e6f23af37626aa1498d8c248f259e7">BIT_LPA_CYCLE</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02798"/>02798         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1gaa01fb0872030e8e2932f8d1d257ea86a">pwr_mgmt_1</link>, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02799"/>02799             <emphasis role="keywordflow">goto</emphasis> lp_int_restore;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02800"/>02800
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02801"/>02801         <emphasis role="comment">/* Enable interrupt. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02802"/>02802         data[0] = <link linkend="_group___d_r_i_v_e_r_s_1ga6a8f2f7f3dd17bc05d9c6286d15c7ada">BIT_MOT_INT_EN</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02803"/>02803         <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>-><link linkend="_group___d_r_i_v_e_r_s_1ga48b47844d4b0570e60aa6806faa59eae">int_enable</link>, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02804"/>02804             <emphasis role="keywordflow">goto</emphasis> lp_int_restore;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02805"/>02805
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02806"/>02806         <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga279cd5d5d78890357f2d42905d7471df">int_motion_only</link> = 1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02807"/>02807         <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02808"/>02808 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02809"/>02809     } <emphasis role="keywordflow">else</emphasis> {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02810"/>02810         <emphasis role="comment">/* Don't "restore" the previous state if no state has been saved. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02811"/>02811         <emphasis role="keywordtype">int</emphasis> ii;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02812"/>02812         <emphasis role="keywordtype">char</emphasis> *cache_ptr = (<emphasis role="keywordtype">char</emphasis>*)&<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gadf3b491a068e0225a080821516353bac">cache</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02813"/>02813         for (ii = 0; ii < <emphasis role="keyword">sizeof</emphasis>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gadf3b491a068e0225a080821516353bac">cache</link>); ii++) {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02814"/>02814             <emphasis role="keywordflow">if</emphasis> (cache_ptr[ii] != 0)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02815"/>02815                 <emphasis role="keywordflow">goto</emphasis> lp_int_restore;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02816"/>02816         }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02817"/>02817         <emphasis role="comment">/* If we reach this point, motion interrupt mode hasn't been used yet. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02818"/>02818         <emphasis role="keywordflow">return</emphasis> -1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02819"/>02819     }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02820"/>02820 lp_int_restore:
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02821"/>02821     <emphasis role="comment">/* Set to invalid values to ensure no I2C writes are skipped. */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02822"/>02822     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gab45a727aeee17380828a3e20ccb375c2">gyro_fsr</link> = 0xFF;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02823"/>02823     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaf66873be1446ed552812e32d40eced61">accel_fsr</link> = 0xFF;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02824"/>02824     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga16ec8ca8298f62ac01419775377270fb">lpf</link> = 0xFF;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02825"/>02825     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga2660470fcf7b53e2e832a397cbe6c354">sample_rate</link> = 0xFFFF;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02826"/>02826     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">sensors</link> = 0xFF;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02827"/>02827     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga88143c31b894bcd819c0e49b0ff267aa">fifo_enable</link> = 0xFF;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02828"/>02828     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gab7bd5165d6e62cb0d814cf3401958445">clk_src</link> = <link linkend="_group___d_r_i_v_e_r_s_1gga75570f009627c6f4ddfb2d936d81e207a01b240917a78674d3e387110a6a8f94c">INV_CLK_PLL</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02829"/>02829     <link linkend="_group___d_r_i_v_e_r_s_1ga6e77e7cc1cf6be5e8fdf617c5b4586d1">mpu_set_sensors</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gadf3b491a068e0225a080821516353bac">cache</link>.<link linkend="_group___d_r_i_v_e_r_s_1gae5416a4097b0cf39460df70094bc474d">sensors_on</link>);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02830"/>02830     <link linkend="_group___d_r_i_v_e_r_s_1gad09e6031c8677adc0b8a39b6deea8e27">mpu_set_gyro_fsr</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gadf3b491a068e0225a080821516353bac">cache</link>.<link linkend="_group___d_r_i_v_e_r_s_1gae9614e4c92be9fc08f2aec7f34853fbc">gyro_fsr</link>);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02831"/>02831     <link linkend="_group___d_r_i_v_e_r_s_1ga2713a96af104cfb2ae8e0ed4c3718119">mpu_set_accel_fsr</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gadf3b491a068e0225a080821516353bac">cache</link>.<link linkend="_group___d_r_i_v_e_r_s_1gacfb901facda5ef8a02d47726db98e58e">accel_fsr</link>);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02832"/>02832     <link linkend="_group___d_r_i_v_e_r_s_1ga5661a9dee25152166769910767a2a93d">mpu_set_lpf</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gadf3b491a068e0225a080821516353bac">cache</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac1a1eb41631eb71481d6d247d9c67d4a">lpf</link>);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02833"/>02833     <link linkend="_group___d_r_i_v_e_r_s_1ga0144d666a67a82888b8580002afe8b55">mpu_set_sample_rate</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gadf3b491a068e0225a080821516353bac">cache</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga1cf6b7edfe37a51209897ccc448ec0e6">sample_rate</link>);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02834"/>02834     <link linkend="_group___d_r_i_v_e_r_s_1gababbdda287e1f19323489f90a0889dd7">mpu_configure_fifo</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gadf3b491a068e0225a080821516353bac">cache</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga41501694a84bdf70e9c660852b653273">fifo_sensors</link>);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02835"/>02835
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02836"/>02836     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1gadf3b491a068e0225a080821516353bac">cache</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga6461e400e336d2ccbc8c7d95ace9461d">dmp_on</link>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02837"/>02837         <link linkend="_group___d_r_i_v_e_r_s_1ga68ed20e6c9663cd7c50469329af8715f">mpu_set_dmp_state</link>(1);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02838"/>02838
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02839"/>02839 <emphasis role="preprocessor">#ifdef MPU6500</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02840"/>02840     <emphasis role="comment">/* Disable motion interrupt (MPU6500 version). */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02841"/>02841     data[0] = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02842"/>02842     <emphasis role="keywordflow">if</emphasis> (<link linkend="_group___d_r_i_v_e_r_s_1gaa248719e0ea03e6601004693d74890e0">i2c_write</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1gac280ecd767872a9664737fce8dd8e07b">hw</link>-><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>, <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>->accel_intel, 1, data))
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02843"/>02843         <emphasis role="keywordflow">goto</emphasis> lp_int_restore;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02844"/>02844 <emphasis role="preprocessor">#endif</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02845"/>02845
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02846"/>02846     <link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga8881b9ec8b8009515310301f33abdeaf">chip_cfg</link>.<link linkend="_group___d_r_i_v_e_r_s_1ga279cd5d5d78890357f2d42905d7471df">int_motion_only</link> = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02847"/>02847     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02848"/>02848 }
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02850"/>02850 <emphasis role="comment">//添加的代码部分 </emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02852"/>02852 <emphasis role="comment"></emphasis><emphasis role="comment">//本程序只供学习使用,未经作者许可,不得用于其它任何用途</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02853"/>02853 <emphasis role="comment">//ALIENTEK精英STM32开发板V3</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02854"/>02854 <emphasis role="comment">//MPU6050 DMP 驱动代码     </emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02855"/>02855 <emphasis role="comment">//正点原子@ALIENTEK</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02856"/>02856 <emphasis role="comment">//技术论坛:www.openedv.com</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02857"/>02857 <emphasis role="comment">//创建日期:2015/1/17</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02858"/>02858 <emphasis role="comment">//版本:V1.0</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02859"/>02859 <emphasis role="comment">//版权所有,盗版必究。</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02860"/>02860 <emphasis role="comment">//Copyright(C) 广州市星翼电子科技有限公司 2009-2019</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02861"/>02861 <emphasis role="comment">//All rights reserved                                     </emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02863"/>02863 <emphasis role="comment"></emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02864"/>02864 <emphasis role="comment">//q30格式,long转float时的除数.</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02865"/><link linkend="_group___d_r_i_v_e_r_s_1ga0c2ff73765f99e113d4f99826f9601e5">02865</link> <emphasis role="preprocessor">#define q30  1073741824.0f</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02866"/>02866
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02867"/>02867 <emphasis role="comment">//陀螺仪方向设置</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02868"/><link linkend="_group___d_r_i_v_e_r_s_1gadcca9e3dfdbc53cc5509fabdaede02b8">02868</link> <emphasis role="keyword">static</emphasis> <emphasis role="keywordtype">signed</emphasis> <emphasis role="keywordtype">char</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gadcca9e3dfdbc53cc5509fabdaede02b8">gyro_orientation</link>[9] = { 1, 0, 0,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02869"/>02869                                            0, 1, 0,
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02870"/>02870                                            0, 0, 1};
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02871"/>02871 <emphasis role="comment">//MPU6050自测试</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02872"/>02872 <emphasis role="comment">//返回值:0,正常</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02873"/>02873 <emphasis role="comment">//    其他,失败</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02874"/><link linkend="_group___d_r_i_v_e_r_s_1gaff893f93277595387023c71d46b03c42">02874</link> <link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link> <link linkend="_group___d_r_i_v_e_r_s_1gaff893f93277595387023c71d46b03c42">run_self_test</link>(<emphasis role="keywordtype">void</emphasis>){
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02875"/>02875     <emphasis role="keywordtype">int</emphasis> result;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02876"/>02876     <emphasis role="comment">//char test_packet[4] = {0};</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02877"/>02877     <emphasis role="keywordtype">long</emphasis> gyro[3], accel[3]; 
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02878"/>02878     result = <link linkend="_group___d_r_i_v_e_r_s_1ga3773dc98eb1ba15da0091ae75abcf62f">mpu_run_self_test</link>(gyro, accel);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02879"/>02879     <emphasis role="keywordflow">if</emphasis> (result == 0x3){
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02880"/>02880         <emphasis role="comment">/* Test passed. We can trust the gyro data here, so let's push it down</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02881"/>02881 <emphasis role="comment">        * to the DMP.</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02882"/>02882 <emphasis role="comment">        */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02883"/>02883         <emphasis role="keywordtype">float</emphasis> sens;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02884"/>02884         <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> accel_sens;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02885"/>02885         <link linkend="_group___d_r_i_v_e_r_s_1ga023c0cc94aa8f162dc33b15048a49421">mpu_get_gyro_sens</link>(&sens);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02886"/>02886         gyro[0] = (long)(gyro[0] * sens);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02887"/>02887         gyro[1] = (long)(gyro[1] * sens);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02888"/>02888         gyro[2] = (long)(gyro[2] * sens);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02889"/>02889         <link linkend="_group___d_r_i_v_e_r_s_1ga4766e37ef95cbf0044c8f9594ed811d1">dmp_set_gyro_bias</link>(gyro);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02890"/>02890         <link linkend="_group___d_r_i_v_e_r_s_1ga620408949052b96e856cad920f856583">mpu_get_accel_sens</link>(&accel_sens);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02891"/>02891         accel[0] *= accel_sens;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02892"/>02892         accel[1] *= accel_sens;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02893"/>02893         accel[2] *= accel_sens;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02894"/>02894         <link linkend="_group___d_r_i_v_e_r_s_1gafbd714aee6086836f70aaea847771669">dmp_set_accel_bias</link>(accel);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02895"/>02895         <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02896"/>02896     }<emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">return</emphasis> 1;}
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02897"/>02897 <emphasis role="comment">//陀螺仪方向控制</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02898"/><link linkend="_group___d_r_i_v_e_r_s_1ga3ff6037a69f37bb6174355936ad67ef3">02898</link> <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga3ff6037a69f37bb6174355936ad67ef3">inv_orientation_matrix_to_scalar</link>(
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02899"/>02899     <emphasis role="keyword">const</emphasis> <emphasis role="keywordtype">signed</emphasis> <emphasis role="keywordtype">char</emphasis> *mtx){
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02900"/>02900     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> scalar; 
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02901"/>02901     <emphasis role="comment">/*</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02902"/>02902 <emphasis role="comment">       XYZ  010_001_000 Identity Matrix</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02903"/>02903 <emphasis role="comment">       XZY  001_010_000</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02904"/>02904 <emphasis role="comment">       YXZ  010_000_001</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02905"/>02905 <emphasis role="comment">       YZX  000_010_001</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02906"/>02906 <emphasis role="comment">       ZXY  001_000_010</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02907"/>02907 <emphasis role="comment">       ZYX  000_001_010</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02908"/>02908 <emphasis role="comment">     */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02909"/>02909     scalar = <link linkend="_group___d_r_i_v_e_r_s_1ga2b58dae1c0567f3f9f6dcbfb07476de7">inv_row_2_scale</link>(mtx);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02910"/>02910     scalar |= <link linkend="_group___d_r_i_v_e_r_s_1ga2b58dae1c0567f3f9f6dcbfb07476de7">inv_row_2_scale</link>(mtx + 3) << 3;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02911"/>02911     scalar |= <link linkend="_group___d_r_i_v_e_r_s_1ga2b58dae1c0567f3f9f6dcbfb07476de7">inv_row_2_scale</link>(mtx + 6) << 6;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02912"/>02912     <emphasis role="keywordflow">return</emphasis> scalar;}
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02913"/>02913 <emphasis role="comment">//方向转换</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02914"/><link linkend="_group___d_r_i_v_e_r_s_1ga2b58dae1c0567f3f9f6dcbfb07476de7">02914</link> <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1ga2b58dae1c0567f3f9f6dcbfb07476de7">inv_row_2_scale</link>(<emphasis role="keyword">const</emphasis> <emphasis role="keywordtype">signed</emphasis> <emphasis role="keywordtype">char</emphasis> *row){
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02915"/>02915     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">short</emphasis> b;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02916"/>02916
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02917"/>02917     <emphasis role="keywordflow">if</emphasis> (row[0] > 0)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02918"/>02918         b = 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02919"/>02919     <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (row[0] < 0)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02920"/>02920         b = 4;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02921"/>02921     <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (row[1] > 0)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02922"/>02922         b = 1;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02923"/>02923     <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (row[1] < 0)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02924"/>02924         b = 5;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02925"/>02925     <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (row[2] > 0)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02926"/>02926         b = 2;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02927"/>02927     <emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">if</emphasis> (row[2] < 0)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02928"/>02928         b = 6;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02929"/>02929     <emphasis role="keywordflow">else</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02930"/>02930         b = 7;      <emphasis role="comment">// error</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02931"/>02931     <emphasis role="keywordflow">return</emphasis> b;}
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02932"/>02932 <emphasis role="comment">//空函数,未用到.</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02933"/><link linkend="_group___d_r_i_v_e_r_s_1gafa3071c8321f6e8dd2036be8a1e57ad0">02933</link> <emphasis role="keywordtype">void</emphasis> <link linkend="_group___d_r_i_v_e_r_s_1gafa3071c8321f6e8dd2036be8a1e57ad0">mget_ms</link>(<emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">long</emphasis> *time){}
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02934"/>02934 <emphasis role="comment">//mpu6050,dmp初始化</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02935"/>02935 <emphasis role="comment">//返回值:0,正常</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02936"/>02936 <emphasis role="comment">//    其他,失败</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02937"/><link linkend="_group___d_r_i_v_e_r_s_1gafac8fcbf24cfa1b69737e02238580f3a">02937</link> <link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link> <link linkend="_group___d_r_i_v_e_r_s_1gafac8fcbf24cfa1b69737e02238580f3a">mpu_dmp_init</link>(<emphasis role="keywordtype">void</emphasis>)
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02938"/>02938 {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02939"/>02939     <link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link> res=0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02940"/>02940     <emphasis role="keywordflow">if</emphasis>(<link linkend="_group___d_r_i_v_e_r_s_1gac48a36b51e23bc4191ec13916bbb9d0b">mpu_init</link>()==0)   <emphasis role="comment">//初始化MPU6050</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02941"/>02941     {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02942"/>02942         res=<link linkend="_group___d_r_i_v_e_r_s_1ga6e77e7cc1cf6be5e8fdf617c5b4586d1">mpu_set_sensors</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3fdc30f9c0a26c2c4e2bb88921f91629">INV_XYZ_GYRO</link>|<link linkend="_group___d_r_i_v_e_r_s_1gaa03f025a17ed491e70b88274e89c75c5">INV_XYZ_ACCEL</link>);                <emphasis role="comment">//设置所需要的传感器</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02943"/>02943         <emphasis role="keywordflow">if</emphasis>(res)<emphasis role="keywordflow">return</emphasis> 1; 
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02944"/>02944         res=<link linkend="_group___d_r_i_v_e_r_s_1gababbdda287e1f19323489f90a0889dd7">mpu_configure_fifo</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3fdc30f9c0a26c2c4e2bb88921f91629">INV_XYZ_GYRO</link>|<link linkend="_group___d_r_i_v_e_r_s_1gaa03f025a17ed491e70b88274e89c75c5">INV_XYZ_ACCEL</link>);             <emphasis role="comment">//设置FIFO</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02945"/>02945         <emphasis role="keywordflow">if</emphasis>(res)<emphasis role="keywordflow">return</emphasis> 2; 
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02946"/>02946         res=<link linkend="_group___d_r_i_v_e_r_s_1ga0144d666a67a82888b8580002afe8b55">mpu_set_sample_rate</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga292d717406e906831952ce46612fe4cd">DEFAULT_MPU_HZ</link>);                        <emphasis role="comment">//设置采样率</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02947"/>02947         <emphasis role="keywordflow">if</emphasis>(res)<emphasis role="keywordflow">return</emphasis> 3; 
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02948"/>02948         res=<link linkend="_group___d_r_i_v_e_r_s_1ga66626a842452f444e9af29cb0d2c6150">dmp_load_motion_driver_firmware</link>();                          <emphasis role="comment">//加载dmp固件</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02949"/>02949         <emphasis role="keywordflow">if</emphasis>(res)<emphasis role="keywordflow">return</emphasis> 4; 
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02950"/>02950         res=<link linkend="_group___d_r_i_v_e_r_s_1ga6cb5ff144ce6e1546f00809de8bb24a4">dmp_set_orientation</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga3ff6037a69f37bb6174355936ad67ef3">inv_orientation_matrix_to_scalar</link>(<link linkend="_group___d_r_i_v_e_r_s_1gadcca9e3dfdbc53cc5509fabdaede02b8">gyro_orientation</link>));<emphasis role="comment">//设置陀螺仪方向</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02951"/>02951         <emphasis role="keywordflow">if</emphasis>(res)<emphasis role="keywordflow">return</emphasis> 5; 
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02952"/>02952         res=<link linkend="_group___d_r_i_v_e_r_s_1ga70c485bdfa30515e5b869b081192caa1">dmp_enable_feature</link>(<link linkend="_group___d_r_i_v_e_r_s_1gae879a3c9729f9e1be5e6d7c9211c69c0">DMP_FEATURE_6X_LP_QUAT</link>|<link linkend="_group___d_r_i_v_e_r_s_1ga87fac39cf95e2c56afdf507a986fa00b">DMP_FEATURE_TAP</link>|  <emphasis role="comment">//设置dmp功能</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02953"/>02953             <link linkend="_group___d_r_i_v_e_r_s_1gaf2b250fc928390d562f7bd80300ce419">DMP_FEATURE_ANDROID_ORIENT</link>|<link linkend="_group___d_r_i_v_e_r_s_1ga9eeb257febe4a305df7ad4cf31dc2755">DMP_FEATURE_SEND_RAW_ACCEL</link>|<link linkend="_group___d_r_i_v_e_r_s_1ga40462c6fd55b04b2f79723dd737ee795">DMP_FEATURE_SEND_CAL_GYRO</link>|
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02954"/>02954             <link linkend="_group___d_r_i_v_e_r_s_1gaaf0ac890c1f83106c08b722f1e865fdb">DMP_FEATURE_GYRO_CAL</link>);
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02955"/>02955         <emphasis role="keywordflow">if</emphasis>(res)<emphasis role="keywordflow">return</emphasis> 6; 
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02956"/>02956         res=<link linkend="_group___d_r_i_v_e_r_s_1ga5399728fd572a7694af20286cc9d4121">dmp_set_fifo_rate</link>(<link linkend="_group___d_r_i_v_e_r_s_1ga292d717406e906831952ce46612fe4cd">DEFAULT_MPU_HZ</link>);                          <emphasis role="comment">//设置DMP输出速率(最大不超过200Hz)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02957"/>02957         <emphasis role="keywordflow">if</emphasis>(res)<emphasis role="keywordflow">return</emphasis> 7;   
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02958"/>02958         res=<link linkend="_group___d_r_i_v_e_r_s_1gaff893f93277595387023c71d46b03c42">run_self_test</link>();                                            <emphasis role="comment">//自检</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02959"/>02959         <emphasis role="keywordflow">if</emphasis>(res)<emphasis role="keywordflow">return</emphasis> 8;    
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02960"/>02960         res=<link linkend="_group___d_r_i_v_e_r_s_1ga68ed20e6c9663cd7c50469329af8715f">mpu_set_dmp_state</link>(1);                                       <emphasis role="comment">//使能DMP</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02961"/>02961         <emphasis role="keywordflow">if</emphasis>(res)<emphasis role="keywordflow">return</emphasis> 9;     
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02962"/>02962     }<emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">return</emphasis> 10;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02963"/>02963     <emphasis role="keywordflow">return</emphasis> 0;}
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02964"/>02964 <emphasis role="comment">//得到dmp处理后的数据(注意,本函数需要比较多堆栈,局部变量有点多)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02965"/>02965 <emphasis role="comment">//pitch:俯仰角 精度:0.1°   范围:-90.0° <---> +90.0°</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02966"/>02966 <emphasis role="comment">//roll:横滚角  精度:0.1°   范围:-180.0°<---> +180.0°</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02967"/>02967 <emphasis role="comment">//yaw:航向角   精度:0.1°   范围:-180.0°<---> +180.0°</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02968"/>02968 <emphasis role="comment">//返回值:0,正常</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02969"/>02969 <emphasis role="comment">//    其他,失败</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02970"/><link linkend="_group___d_r_i_v_e_r_s_1gacb825f2fd99c3044d012a9b25608cc18">02970</link> <link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link> <link linkend="_group___d_r_i_v_e_r_s_1gacb825f2fd99c3044d012a9b25608cc18">mpu_dmp_get_data</link>(<emphasis role="keywordtype">float</emphasis> *pitch,<emphasis role="keywordtype">float</emphasis> *roll,<emphasis role="keywordtype">float</emphasis> *yaw){
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02971"/>02971     <emphasis role="keywordtype">float</emphasis> q0=1.0f,q1=0.0f,q2=0.0f,q3=0.0f;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02972"/>02972     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">long</emphasis> sensor_timestamp;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02973"/>02973     <emphasis role="keywordtype">short</emphasis> gyro[3], accel[3], sensors;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02974"/>02974     <emphasis role="keywordtype">unsigned</emphasis> <emphasis role="keywordtype">char</emphasis> more;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02975"/>02975     <emphasis role="keywordtype">long</emphasis> quat[4]; 
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02976"/>02976     <emphasis role="keywordflow">if</emphasis>(<link linkend="_group___d_r_i_v_e_r_s_1ga02db5f25359abe84be002c543cdc3803">dmp_read_fifo</link>(gyro, accel, quat, &sensor_timestamp, &sensors,&more))<emphasis role="keywordflow">return</emphasis> 1;     
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02977"/>02977     <emphasis role="comment">/* Gyro and accel data are written to the FIFO by the DMP in chip frame and hardware units.</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02978"/>02978 <emphasis role="comment">     * This behavior is convenient because it keeps the gyro and accel outputs of dmp_read_fifo and mpu_read_fifo consistent.</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02979"/>02979 <emphasis role="comment">    **/</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02980"/>02980     <emphasis role="comment">/*if (sensors & INV_XYZ_GYRO )</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02981"/>02981 <emphasis role="comment">    send_packet(PACKET_TYPE_GYRO, gyro);</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02982"/>02982 <emphasis role="comment">    if (sensors & INV_XYZ_ACCEL)</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02983"/>02983 <emphasis role="comment">    send_packet(PACKET_TYPE_ACCEL, accel); */</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02984"/>02984     <emphasis role="comment">/* Unlike gyro and accel, quaternions are written to the FIFO in the body frame, q30.</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02985"/>02985 <emphasis role="comment">     * The orientation is set by the scalar passed to dmp_set_orientation during initialization. </emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02986"/>02986 <emphasis role="comment">    **/</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02987"/>02987     <emphasis role="keywordflow">if</emphasis>(sensors&<link linkend="_group___d_r_i_v_e_r_s_1ga3d79cffe845a796a27d03432a1f2ade0">INV_WXYZ_QUAT</link>) 
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02988"/>02988     {
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02989"/>02989         q0 = quat[0] / <link linkend="_group___d_r_i_v_e_r_s_1ga0c2ff73765f99e113d4f99826f9601e5">q30</link>; <emphasis role="comment">//q30格式转换为浮点数</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02990"/>02990         q1 = quat[1] / <link linkend="_group___d_r_i_v_e_r_s_1ga0c2ff73765f99e113d4f99826f9601e5">q30</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02991"/>02991         q2 = quat[2] / <link linkend="_group___d_r_i_v_e_r_s_1ga0c2ff73765f99e113d4f99826f9601e5">q30</link>;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02992"/>02992         q3 = quat[3] / <link linkend="_group___d_r_i_v_e_r_s_1ga0c2ff73765f99e113d4f99826f9601e5">q30</link>; 
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02993"/>02993         <emphasis role="comment">//计算得到俯仰角/横滚角/航向角</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02994"/>02994         *pitch = asin(-2 * q1 * q3 + 2 * q0* q2)* 57.3; <emphasis role="comment">// pitch</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02995"/>02995         *roll  = atan2(2 * q2 * q3 + 2 * q0 * q1, -2 * q1 * q1 - 2 * q2* q2 + 1)* 57.3; <emphasis role="comment">// roll</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02996"/>02996         *yaw   = atan2(2*(q1*q2 + q0*q3),q0*q0+q1*q1-q2*q2-q3*q3) * 57.3;   <emphasis role="comment">//yaw</emphasis>
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02997"/>02997     }<emphasis role="keywordflow">else</emphasis> <emphasis role="keywordflow">return</emphasis> 2;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02998"/>02998     <emphasis role="keywordflow">return</emphasis> 0;
|
||
<anchor xml:id="_inv__mpu_8c_source_1l02999"/>02999 }
|
||
</programlisting></section>
|