Files
MicrochipFor32/Doc/docbook/inv__mpu_8c_source.xml
XerolySkinner 08f9f63eb3 内容大更新
更加规范化
加入modbus类
优化帮助文档
2022-11-22 03:43:24 +08:00

2656 lines
529 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?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">&#32;$License:</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00003"/>00003 <emphasis role="comment">&#32;&#32;&#32;&#32;Copyright&#32;(C)&#32;2011-2012&#32;InvenSense&#32;Corporation,&#32;All&#32;Rights&#32;Reserved.</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00004"/>00004 <emphasis role="comment">&#32;&#32;&#32;&#32;See&#32;included&#32;License.txt&#32;for&#32;License&#32;information.</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00005"/>00005 <emphasis role="comment">&#32;$</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00006"/>00006 <emphasis role="comment">&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00020"/>00020 <emphasis role="preprocessor">#include&#32;&lt;stdio.h&gt;</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00021"/>00021 <emphasis role="preprocessor">#include&#32;&lt;stdlib.h&gt;</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00022"/>00022 <emphasis role="preprocessor">#include&#32;&lt;string.h&gt;</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00023"/>00023 <emphasis role="preprocessor">#include&#32;&lt;math.h&gt;</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00024"/>00024 <emphasis role="preprocessor">#include&#32;&quot;<link linkend="_inv__mpu_8h">inv_mpu.h</link>&quot;</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00025"/>00025 <emphasis role="preprocessor">#include&#32;&quot;<link linkend="_inv__mpu__dmp__motion__driver_8h">inv_mpu_dmp_motion_driver.h</link>&quot;</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00026"/>00026 <emphasis role="preprocessor">#include&#32;&quot;<link linkend="_mpu6050_8h">mpu6050.h</link>&quot;</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00027"/>00027 <emphasis role="preprocessor">#include&#32;&quot;usart.h&quot;</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00028"/>00028 <emphasis role="preprocessor">#include&#32;&quot;<link linkend="_varint_8h">varint.h</link>&quot;</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&#32;MPU6050&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;</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&#32;MOTION_DRIVER_TARGET_MSP430&#32;&#32;&#32;&#32;&#32;</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">/*&#32;The&#32;following&#32;functions&#32;must&#32;be&#32;defined&#32;for&#32;this&#32;platform:</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00034"/>00034 <emphasis role="comment">&#32;*&#32;i2c_write(unsigned&#32;char&#32;slave_addr,&#32;unsigned&#32;char&#32;reg_addr,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00035"/>00035 <emphasis role="comment">&#32;*&#32;&#32;&#32;&#32;&#32;&#32;unsigned&#32;char&#32;length,&#32;unsigned&#32;char&#32;const&#32;*data)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00036"/>00036 <emphasis role="comment">&#32;*&#32;i2c_read(unsigned&#32;char&#32;slave_addr,&#32;unsigned&#32;char&#32;reg_addr,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00037"/>00037 <emphasis role="comment">&#32;*&#32;&#32;&#32;&#32;&#32;&#32;unsigned&#32;char&#32;length,&#32;unsigned&#32;char&#32;*data)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00038"/>00038 <emphasis role="comment">&#32;*&#32;delay_ms(unsigned&#32;long&#32;num_ms)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00039"/>00039 <emphasis role="comment">&#32;*&#32;get_ms(unsigned&#32;long&#32;*count)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00040"/>00040 <emphasis role="comment">&#32;*&#32;reg_int_cb(void&#32;(*cb)(void),&#32;unsigned&#32;char&#32;port,&#32;unsigned&#32;char&#32;pin)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00041"/>00041 <emphasis role="comment">&#32;*&#32;labs(long&#32;x)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00042"/>00042 <emphasis role="comment">&#32;*&#32;fabsf(float&#32;x)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00043"/>00043 <emphasis role="comment">&#32;*&#32;min(int&#32;a,&#32;int&#32;b)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00044"/>00044 <emphasis role="comment">&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00045"/>00045 <emphasis role="preprocessor">#if&#32;defined&#32;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&#32;i2c_write&#32;&#32;&#32;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&#32;i2c_read&#32;&#32;&#32;&#32;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&#32;delay_ms&#32;&#32;&#32;&#32;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&#32;get_ms&#32;&#32;&#32;&#32;&#32;&#32;mget_ms</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00051"/>00051 <emphasis role="comment">//static&#32;inline&#32;int&#32;reg_int_cb(struct&#32;int_param_s&#32;*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">//&#32;&#32;&#32;&#32;return&#32;msp430_reg_int_cb(int_param-&gt;cb,&#32;int_param-&gt;pin,&#32;int_param-&gt;lp_exit,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00054"/>00054 <emphasis role="comment">//&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;int_param-&gt;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga69f90a1116c37ff659a096f2932c3988">log_none</link>(<emphasis role="keywordtype">char</emphasis>&#32;*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&#32;log_i&#32;&#32;&#32;log_none&#32;&#32;&#32;&#32;</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&#32;log_e&#32;&#32;&#32;log_none&#32;&#32;&#32;&#32;</emphasis><emphasis role="comment">//打印信息</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00059"/>00059 <emphasis role="comment">/*&#32;labs&#32;is&#32;already&#32;defined&#32;by&#32;TI&apos;s&#32;toolchain.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00060"/>00060 <emphasis role="comment">/*&#32;fabs&#32;is&#32;for&#32;doubles.&#32;fabsf&#32;is&#32;for&#32;floats.&#32;*/</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&#32;fabs&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;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&#32;min(a,b)&#32;((a&lt;b)?a:b)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00063"/>00063 <emphasis role="preprocessor">#elif&#32;defined&#32;EMPL_TARGET_MSP430</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00064"/>00064 <emphasis role="preprocessor">#include&#32;&quot;msp430.h&quot;</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00065"/>00065 <emphasis role="preprocessor">#include&#32;&quot;msp430_i2c.h&quot;</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00066"/>00066 <emphasis role="preprocessor">#include&#32;&quot;msp430_clock.h&quot;</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00067"/>00067 <emphasis role="preprocessor">#include&#32;&quot;msp430_interrupt.h&quot;</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00068"/>00068 <emphasis role="preprocessor">#include&#32;&quot;log.h&quot;</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00069"/>00069 <emphasis role="preprocessor">#define&#32;i2c_write&#32;&#32;&#32;msp430_i2c_write</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00070"/>00070 <emphasis role="preprocessor">#define&#32;i2c_read&#32;&#32;&#32;&#32;msp430_i2c_read</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00071"/>00071 <emphasis role="preprocessor">#define&#32;delay_ms&#32;&#32;&#32;&#32;msp430_delay_ms</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00072"/>00072 <emphasis role="preprocessor">#define&#32;get_ms&#32;&#32;&#32;&#32;&#32;&#32;msp430_get_clock_ms</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00073"/>00073 <emphasis role="keyword">static</emphasis>&#32;<emphasis role="keyword">inline</emphasis>&#32;<emphasis role="keywordtype">int</emphasis>&#32;reg_int_cb(<emphasis role="keyword">struct</emphasis>&#32;<link linkend="_structint__param__s">int_param_s</link>&#32;*int_param)
<anchor xml:id="_inv__mpu_8c_source_1l00074"/>00074 {
<anchor xml:id="_inv__mpu_8c_source_1l00075"/>00075 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;msp430_reg_int_cb(int_param-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga97093754f1f13b06492990e3da77965d">cb</link>,&#32;int_param-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga5c682e1b664acf566f985b48dd7acbb7">pin</link>,&#32;int_param-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga46dfad5a278a8b40a68d71beca0d2be4">lp_exit</link>,
<anchor xml:id="_inv__mpu_8c_source_1l00076"/>00076 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;int_param-&gt;<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&#32;log_i&#32;&#32;&#32;&#32;&#32;&#32;&#32;MPL_LOGI</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00079"/>00079 <emphasis role="preprocessor">#define&#32;log_e&#32;&#32;&#32;&#32;&#32;&#32;&#32;MPL_LOGE</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00080"/>00080 <emphasis role="comment">/*&#32;labs&#32;is&#32;already&#32;defined&#32;by&#32;TI&apos;s&#32;toolchain.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00081"/>00081 <emphasis role="comment">/*&#32;fabs&#32;is&#32;for&#32;doubles.&#32;fabsf&#32;is&#32;for&#32;floats.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00082"/>00082 <emphasis role="preprocessor">#define&#32;fabs&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;fabsf</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00083"/>00083 <emphasis role="preprocessor">#define&#32;min(a,b)&#32;((a&lt;b)?a:b)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00084"/>00084 <emphasis role="preprocessor">#elif&#32;defined&#32;EMPL_TARGET_UC3L0</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00085"/>00085 <emphasis role="comment">/*&#32;Instead&#32;of&#32;using&#32;the&#32;standard&#32;TWI&#32;driver&#32;from&#32;the&#32;ASF&#32;library,&#32;we&apos;re&#32;using</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00086"/>00086 <emphasis role="comment">&#32;*&#32;a&#32;TWI&#32;driver&#32;that&#32;follows&#32;the&#32;slave&#32;address&#32;+&#32;register&#32;address&#32;convention.</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00087"/>00087 <emphasis role="comment">&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00088"/>00088 <emphasis role="preprocessor">#include&#32;&quot;twi.h&quot;</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00089"/>00089 <emphasis role="preprocessor">#include&#32;&quot;delay.h&quot;</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00090"/>00090 <emphasis role="preprocessor">#include&#32;&quot;sysclk.h&quot;</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00091"/>00091 <emphasis role="preprocessor">#include&#32;&quot;log.h&quot;</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00092"/>00092 <emphasis role="preprocessor">#include&#32;&quot;sensors_xplained.h&quot;</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00093"/>00093 <emphasis role="preprocessor">#include&#32;&quot;uc3l0_clock.h&quot;</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00094"/>00094 <emphasis role="preprocessor">#define&#32;i2c_write(a,&#32;b,&#32;c,&#32;d)&#32;&#32;&#32;twi_write(a,&#32;b,&#32;d,&#32;c)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00095"/>00095 <emphasis role="preprocessor">#define&#32;i2c_read(a,&#32;b,&#32;c,&#32;d)&#32;&#32;&#32;&#32;twi_read(a,&#32;b,&#32;d,&#32;c)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00096"/>00096 <emphasis role="comment">/*&#32;delay_ms&#32;is&#32;a&#32;function&#32;already&#32;defined&#32;in&#32;ASF.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00097"/>00097 <emphasis role="preprocessor">#define&#32;get_ms&#32;&#32;uc3l0_get_clock_ms</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00098"/>00098 <emphasis role="keyword">static</emphasis>&#32;<emphasis role="keyword">inline</emphasis>&#32;<emphasis role="keywordtype">int</emphasis>&#32;reg_int_cb(<emphasis role="keyword">struct</emphasis>&#32;<link linkend="_structint__param__s">int_param_s</link>&#32;*int_param)
<anchor xml:id="_inv__mpu_8c_source_1l00099"/>00099 {
<anchor xml:id="_inv__mpu_8c_source_1l00100"/>00100 &#32;&#32;&#32;&#32;sensor_board_irq_connect(int_param-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga5c682e1b664acf566f985b48dd7acbb7">pin</link>,&#32;int_param-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga97093754f1f13b06492990e3da77965d">cb</link>,&#32;int_param-&gt;arg);
<anchor xml:id="_inv__mpu_8c_source_1l00101"/>00101 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l00102"/>00102 }
<anchor xml:id="_inv__mpu_8c_source_1l00103"/>00103 <emphasis role="preprocessor">#define&#32;log_i&#32;&#32;&#32;&#32;&#32;&#32;&#32;MPL_LOGI</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00104"/>00104 <emphasis role="preprocessor">#define&#32;log_e&#32;&#32;&#32;&#32;&#32;&#32;&#32;MPL_LOGE</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00105"/>00105 <emphasis role="comment">/*&#32;UC3&#32;is&#32;a&#32;32-bit&#32;processor,&#32;so&#32;abs&#32;and&#32;labs&#32;are&#32;equivalent.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00106"/>00106 <emphasis role="preprocessor">#define&#32;labs&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;abs</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00107"/>00107 <emphasis role="preprocessor">#define&#32;fabs(x)&#32;&#32;&#32;&#32;&#32;(((x)&gt;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&#32;&#32;Gyro&#32;driver&#32;is&#32;missing&#32;the&#32;system&#32;layer&#32;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&#32;!defined&#32;MPU6050&#32;&amp;&amp;&#32;!defined&#32;MPU9150&#32;&amp;&amp;&#32;!defined&#32;MPU6500&#32;&amp;&amp;&#32;!defined&#32;MPU9250</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00113"/>00113 <emphasis role="preprocessor">#error&#32;&#32;Which&#32;gyro&#32;are&#32;you&#32;using?&#32;Define&#32;MPUxxxx&#32;in&#32;your&#32;compiler&#32;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">/*&#32;Time&#32;for&#32;some&#32;messy&#32;macro&#32;work.&#32;=]</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00117"/>00117 <emphasis role="comment">&#32;*&#32;#define&#32;MPU9150</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00118"/>00118 <emphasis role="comment">&#32;*&#32;is&#32;equivalent&#32;to..</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00119"/>00119 <emphasis role="comment">&#32;*&#32;#define&#32;MPU6050</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00120"/>00120 <emphasis role="comment">&#32;*&#32;#define&#32;AK8975_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00121"/>00121 <emphasis role="comment">&#32;*</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00122"/>00122 <emphasis role="comment">&#32;*&#32;#define&#32;MPU9250</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00123"/>00123 <emphasis role="comment">&#32;*&#32;is&#32;equivalent&#32;to..</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00124"/>00124 <emphasis role="comment">&#32;*&#32;#define&#32;MPU6500</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00125"/>00125 <emphasis role="comment">&#32;*&#32;#define&#32;AK8963_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00126"/>00126 <emphasis role="comment">&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00127"/>00127 <emphasis role="preprocessor">#if&#32;defined&#32;MPU9150</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00128"/>00128 <emphasis role="preprocessor">#ifndef&#32;MPU6050</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00129"/>00129 <emphasis role="preprocessor">#define&#32;MPU6050</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00130"/>00130 <emphasis role="preprocessor">#endif&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;</emphasis><emphasis role="comment">/*&#32;#ifndef&#32;MPU6050&#32;*/</emphasis><emphasis role="preprocessor"></emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00131"/>00131 <emphasis role="preprocessor">#if&#32;defined&#32;AK8963_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00132"/>00132 <emphasis role="preprocessor">#error&#32;&quot;MPU9150&#32;and&#32;AK8963_SECONDARY&#32;cannot&#32;both&#32;be&#32;defined.&quot;</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00133"/>00133 <emphasis role="preprocessor">#elif&#32;!defined&#32;AK8975_SECONDARY&#32;</emphasis><emphasis role="comment">/*&#32;#if&#32;defined&#32;AK8963_SECONDARY&#32;*/</emphasis><emphasis role="preprocessor"></emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00134"/>00134 <emphasis role="preprocessor">#define&#32;AK8975_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00135"/>00135 <emphasis role="preprocessor">#endif&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;</emphasis><emphasis role="comment">/*&#32;#if&#32;defined&#32;AK8963_SECONDARY&#32;*/</emphasis><emphasis role="preprocessor"></emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00136"/>00136 <emphasis role="preprocessor">#elif&#32;defined&#32;MPU9250&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;</emphasis><emphasis role="comment">/*&#32;#if&#32;defined&#32;MPU9150&#32;*/</emphasis><emphasis role="preprocessor"></emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00137"/>00137 <emphasis role="preprocessor">#ifndef&#32;MPU6500</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00138"/>00138 <emphasis role="preprocessor">#define&#32;MPU6500</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00139"/>00139 <emphasis role="preprocessor">#endif&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;</emphasis><emphasis role="comment">/*&#32;#ifndef&#32;MPU6500&#32;*/</emphasis><emphasis role="preprocessor"></emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00140"/>00140 <emphasis role="preprocessor">#if&#32;defined&#32;AK8975_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00141"/>00141 <emphasis role="preprocessor">#error&#32;&quot;MPU9250&#32;and&#32;AK8975_SECONDARY&#32;cannot&#32;both&#32;be&#32;defined.&quot;</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00142"/>00142 <emphasis role="preprocessor">#elif&#32;!defined&#32;AK8963_SECONDARY&#32;</emphasis><emphasis role="comment">/*&#32;#if&#32;defined&#32;AK8975_SECONDARY&#32;*/</emphasis><emphasis role="preprocessor"></emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00143"/>00143 <emphasis role="preprocessor">#define&#32;AK8963_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00144"/>00144 <emphasis role="preprocessor">#endif&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;</emphasis><emphasis role="comment">/*&#32;#if&#32;defined&#32;AK8975_SECONDARY&#32;*/</emphasis><emphasis role="preprocessor"></emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00145"/>00145 <emphasis role="preprocessor">#endif&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;</emphasis><emphasis role="comment">/*&#32;#if&#32;defined&#32;MPU9150&#32;*/</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&#32;defined&#32;AK8975_SECONDARY&#32;||&#32;defined&#32;AK8963_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00148"/>00148 <emphasis role="preprocessor">#define&#32;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">/*&#32;#warning&#32;&quot;No&#32;compass&#32;=&#32;less&#32;profit&#32;for&#32;Invensense.&#32;Lame.&quot;&#32;*/</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>&#32;<emphasis role="keywordtype">int</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gafd5ebff6b0179e1dce0b68c2272cae07">set_int_enable</link>(<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;enable);
<anchor xml:id="_inv__mpu_8c_source_1l00154"/>00154
<anchor xml:id="_inv__mpu_8c_source_1l00155"/>00155 <emphasis role="comment">/*&#32;Hardware&#32;registers&#32;needed&#32;by&#32;driver.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00156"/><link linkend="_structgyro__reg__s">00156</link> <emphasis role="keyword">struct&#32;</emphasis><link linkend="_structgyro__reg__s">gyro_reg_s</link>&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l00157"/><link linkend="_group___d_r_i_v_e_r_s_1ga51068a36efe9d2aedc9cb8fffacbf15b">00157</link> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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">//&#32;&#32;&#32;&#32;unsigned&#32;char&#32;accel_cfg2;</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00166"/>00166 <emphasis role="comment">//&#32;&#32;&#32;&#32;unsigned&#32;char&#32;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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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">//&#32;&#32;&#32;&#32;unsigned&#32;char&#32;accel_intel;</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00178"/><link linkend="_group___d_r_i_v_e_r_s_1gaa01fb0872030e8e2932f8d1d257ea86a">00178</link> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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&#32;defined&#32;AK89xx_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00188"/>00188 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;s0_addr;
<anchor xml:id="_inv__mpu_8c_source_1l00189"/>00189 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;s0_reg;
<anchor xml:id="_inv__mpu_8c_source_1l00190"/>00190 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;s0_ctrl;
<anchor xml:id="_inv__mpu_8c_source_1l00191"/>00191 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;s1_addr;
<anchor xml:id="_inv__mpu_8c_source_1l00192"/>00192 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;s1_reg;
<anchor xml:id="_inv__mpu_8c_source_1l00193"/>00193 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;s1_ctrl;
<anchor xml:id="_inv__mpu_8c_source_1l00194"/>00194 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;s4_ctrl;
<anchor xml:id="_inv__mpu_8c_source_1l00195"/>00195 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;s0_do;
<anchor xml:id="_inv__mpu_8c_source_1l00196"/>00196 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;s1_do;
<anchor xml:id="_inv__mpu_8c_source_1l00197"/>00197 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;i2c_delay_ctrl;
<anchor xml:id="_inv__mpu_8c_source_1l00198"/>00198 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;raw_compass;
<anchor xml:id="_inv__mpu_8c_source_1l00199"/>00199 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;The&#32;I2C_MST_VDDIO&#32;bit&#32;is&#32;in&#32;this&#32;register.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00200"/>00200 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;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">/*&#32;Information&#32;specific&#32;to&#32;a&#32;particular&#32;device.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00205"/><link linkend="_structhw__s">00205</link> <emphasis role="keyword">struct&#32;</emphasis><link linkend="_structhw__s">hw_s</link>&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l00206"/><link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">00206</link> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">short</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;<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&#32;defined&#32;AK89xx_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00213"/>00213 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;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">/*&#32;When&#32;entering&#32;motion&#32;interrupt&#32;mode,&#32;the&#32;driver&#32;keeps&#32;track&#32;of&#32;the</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00218"/>00218 <emphasis role="comment">&#32;*&#32;previous&#32;state&#32;so&#32;that&#32;it&#32;can&#32;be&#32;restored&#32;at&#32;a&#32;later&#32;time.</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00219"/>00219 <emphasis role="comment">&#32;*&#32;TODO:&#32;This&#32;is&#32;tacky.&#32;Fix&#32;it.</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00220"/>00220 <emphasis role="comment">&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00221"/><link linkend="_structmotion__int__cache__s">00221</link> <emphasis role="keyword">struct&#32;</emphasis><link linkend="_structmotion__int__cache__s">motion_int_cache_s</link>&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l00222"/><link linkend="_group___d_r_i_v_e_r_s_1gae9614e4c92be9fc08f2aec7f34853fbc">00222</link> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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">/*&#32;Cached&#32;chip&#32;configuration&#32;data.</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00232"/>00232 <emphasis role="comment">&#32;*&#32;TODO:&#32;A&#32;lot&#32;of&#32;these&#32;can&#32;be&#32;handled&#32;with&#32;a&#32;bitmask.</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00233"/>00233 <emphasis role="comment">&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00234"/><link linkend="_structchip__cfg__s">00234</link> <emphasis role="keyword">struct&#32;</emphasis><link linkend="_structchip__cfg__s">chip_cfg_s</link>&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l00235"/>00235 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Matches&#32;gyro_cfg&#32;&gt;&gt;&#32;3&#32;&amp;&#32;0x03&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00236"/><link linkend="_group___d_r_i_v_e_r_s_1gab45a727aeee17380828a3e20ccb375c2">00236</link> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gab45a727aeee17380828a3e20ccb375c2">gyro_fsr</link>;
<anchor xml:id="_inv__mpu_8c_source_1l00237"/>00237 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Matches&#32;accel_cfg&#32;&gt;&gt;&#32;3&#32;&amp;&#32;0x03&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00238"/><link linkend="_group___d_r_i_v_e_r_s_1gaf66873be1446ed552812e32d40eced61">00238</link> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gaf66873be1446ed552812e32d40eced61">accel_fsr</link>;
<anchor xml:id="_inv__mpu_8c_source_1l00239"/>00239 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Enabled&#32;sensors.&#32;Uses&#32;same&#32;masks&#32;as&#32;fifo_en,&#32;NOT&#32;pwr_mgmt_2.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00240"/><link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">00240</link> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gaa996fc14aa630e53823462baf460c13f">sensors</link>;
<anchor xml:id="_inv__mpu_8c_source_1l00241"/>00241 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Matches&#32;config&#32;register.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00242"/><link linkend="_group___d_r_i_v_e_r_s_1ga16ec8ca8298f62ac01419775377270fb">00242</link> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gab7bd5165d6e62cb0d814cf3401958445">clk_src</link>;
<anchor xml:id="_inv__mpu_8c_source_1l00244"/>00244 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Sample&#32;rate,&#32;NOT&#32;rate&#32;divider.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00245"/><link linkend="_group___d_r_i_v_e_r_s_1ga2660470fcf7b53e2e832a397cbe6c354">00245</link> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga2660470fcf7b53e2e832a397cbe6c354">sample_rate</link>;
<anchor xml:id="_inv__mpu_8c_source_1l00246"/>00246 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Matches&#32;fifo_en&#32;register.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00247"/><link linkend="_group___d_r_i_v_e_r_s_1ga88143c31b894bcd819c0e49b0ff267aa">00247</link> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga88143c31b894bcd819c0e49b0ff267aa">fifo_enable</link>;
<anchor xml:id="_inv__mpu_8c_source_1l00248"/>00248 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Matches&#32;int&#32;enable&#32;register.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00249"/><link linkend="_group___d_r_i_v_e_r_s_1gaa366c36057f31e6e0d4cf2ca4a1ef52f">00249</link> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gaa366c36057f31e6e0d4cf2ca4a1ef52f">int_enable</link>;
<anchor xml:id="_inv__mpu_8c_source_1l00250"/>00250 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;1&#32;if&#32;devices&#32;on&#32;auxiliary&#32;I2C&#32;bus&#32;appear&#32;on&#32;the&#32;primary.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00251"/><link linkend="_group___d_r_i_v_e_r_s_1ga6d3a962d6435644c7ea68e7d65934636">00251</link> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga6d3a962d6435644c7ea68e7d65934636">bypass_mode</link>;
<anchor xml:id="_inv__mpu_8c_source_1l00252"/>00252 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;1&#32;if&#32;half-sensitivity.</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00253"/>00253 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;*&#32;NOTE:&#32;This&#32;doesn&apos;t&#32;belong&#32;here,&#32;but&#32;everything&#32;else&#32;in&#32;hw_s&#32;is&#32;const,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00254"/>00254 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;*&#32;and&#32;this&#32;allows&#32;us&#32;to&#32;save&#32;some&#32;precious&#32;RAM.</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00255"/>00255 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00256"/><link linkend="_group___d_r_i_v_e_r_s_1gab72e3cead391dee41f28e041282d743f">00256</link> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gab72e3cead391dee41f28e041282d743f">accel_half</link>;
<anchor xml:id="_inv__mpu_8c_source_1l00257"/>00257 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;1&#32;if&#32;device&#32;in&#32;low-power&#32;accel-only&#32;mode.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00258"/><link linkend="_group___d_r_i_v_e_r_s_1ga33e138d8a49744eb9b4ea0e9086cef1c">00258</link> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga33e138d8a49744eb9b4ea0e9086cef1c">lp_accel_mode</link>;
<anchor xml:id="_inv__mpu_8c_source_1l00259"/>00259 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;1&#32;if&#32;interrupts&#32;are&#32;only&#32;triggered&#32;on&#32;motion&#32;events.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00260"/><link linkend="_group___d_r_i_v_e_r_s_1ga279cd5d5d78890357f2d42905d7471df">00260</link> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keyword">struct&#32;</emphasis><link linkend="_structmotion__int__cache__s">motion_int_cache_s</link>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gadf3b491a068e0225a080821516353bac">cache</link>;
<anchor xml:id="_inv__mpu_8c_source_1l00262"/>00262 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;1&#32;for&#32;active&#32;low&#32;interrupts.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00263"/><link linkend="_group___d_r_i_v_e_r_s_1ga6f12e54ae8c7f2dd77954f3ab619bbb9">00263</link> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga6f12e54ae8c7f2dd77954f3ab619bbb9">active_low_int</link>;
<anchor xml:id="_inv__mpu_8c_source_1l00264"/>00264 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;1&#32;for&#32;latched&#32;interrupts.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00265"/><link linkend="_group___d_r_i_v_e_r_s_1ga55ce40fc460a62829ec149edaccffe7c">00265</link> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga55ce40fc460a62829ec149edaccffe7c">latched_int</link>;
<anchor xml:id="_inv__mpu_8c_source_1l00266"/>00266 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;1&#32;if&#32;DMP&#32;is&#32;enabled.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00267"/><link linkend="_group___d_r_i_v_e_r_s_1ga4783ed8aa79a3b5de798963819997c38">00267</link> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga4783ed8aa79a3b5de798963819997c38">dmp_on</link>;
<anchor xml:id="_inv__mpu_8c_source_1l00268"/>00268 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Ensures&#32;that&#32;DMP&#32;will&#32;only&#32;be&#32;loaded&#32;once.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00269"/><link linkend="_group___d_r_i_v_e_r_s_1ga1d2ff55e17aae1459dfad61d76054b1b">00269</link> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga1d2ff55e17aae1459dfad61d76054b1b">dmp_loaded</link>;
<anchor xml:id="_inv__mpu_8c_source_1l00270"/>00270 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Sampling&#32;rate&#32;used&#32;when&#32;DMP&#32;is&#32;enabled.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00271"/><link linkend="_group___d_r_i_v_e_r_s_1ga5f42b7e1e740f2fb64427417e9e2dab7">00271</link> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;<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&#32;AK89xx_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00273"/>00273 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Compass&#32;sample&#32;rate.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00274"/>00274 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;compass_sample_rate;
<anchor xml:id="_inv__mpu_8c_source_1l00275"/>00275 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;compass_addr;
<anchor xml:id="_inv__mpu_8c_source_1l00276"/>00276 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">short</emphasis>&#32;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">/*&#32;Information&#32;for&#32;self-test.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00281"/><link linkend="_structtest__s">00281</link> <emphasis role="keyword">struct&#32;</emphasis><link linkend="_structtest__s">test_s</link>&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l00282"/><link linkend="_group___d_r_i_v_e_r_s_1ga330290a347407b0d92b1d77aa274993c">00282</link> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">long</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">long</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">float</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">float</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">float</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">float</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">float</emphasis>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keywordtype">float</emphasis>&#32;<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">/*&#32;Gyro&#32;driver&#32;state&#32;variables.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00299"/><link linkend="_structgyro__state__s">00299</link> <emphasis role="keyword">struct&#32;</emphasis><link linkend="_structgyro__state__s">gyro_state_s</link>&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l00300"/><link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">00300</link> &#32;&#32;&#32;&#32;<emphasis role="keyword">const</emphasis>&#32;<emphasis role="keyword">struct&#32;</emphasis><link linkend="_structgyro__reg__s">gyro_reg_s</link>&#32;*<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> &#32;&#32;&#32;&#32;<emphasis role="keyword">const</emphasis>&#32;<emphasis role="keyword">struct&#32;</emphasis><link linkend="_structhw__s">hw_s</link>&#32;*<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> &#32;&#32;&#32;&#32;<emphasis role="keyword">struct&#32;</emphasis><link linkend="_structchip__cfg__s">chip_cfg_s</link>&#32;<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> &#32;&#32;&#32;&#32;<emphasis role="keyword">const</emphasis>&#32;<emphasis role="keyword">struct&#32;</emphasis><link linkend="_structtest__s">test_s</link>&#32;*<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">/*&#32;Filter&#32;configurations.&#32;*/</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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga91c762a5bd71461f7911dc49ee7696e9">lpf_e</link>&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l00308"/><link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9a9f0263fbbdccd3c5a18fcb65be278d24">00308</link> &#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9a9f0263fbbdccd3c5a18fcb65be278d24">INV_FILTER_256HZ_NOLPF2</link>&#32;=&#32;0,
<anchor xml:id="_inv__mpu_8c_source_1l00309"/><link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9ab58e52e0b6be4cbaf0c7f32705a9fcec">00309</link> &#32;&#32;&#32;&#32;<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> &#32;&#32;&#32;&#32;<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> &#32;&#32;&#32;&#32;<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> &#32;&#32;&#32;&#32;<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> &#32;&#32;&#32;&#32;<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> &#32;&#32;&#32;&#32;<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> &#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;<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">/*&#32;Full&#32;scale&#32;ranges.&#32;*/</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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga83acdc0eb37e8bfe0c2ae2348ded0a90">gyro_fsr_e</link>&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l00321"/><link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90a5b8251a49db5cb8a676076b0b308ae35">00321</link> &#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90a5b8251a49db5cb8a676076b0b308ae35">INV_FSR_250DPS</link>&#32;=&#32;0,
<anchor xml:id="_inv__mpu_8c_source_1l00322"/><link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90a50901470ff389927fd010081e2b8fd09">00322</link> &#32;&#32;&#32;&#32;<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> &#32;&#32;&#32;&#32;<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> &#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90ac0c37efc1c8acd6f70c0c5a768e5b8be">INV_FSR_2000DPS</link>,
<anchor xml:id="_inv__mpu_8c_source_1l00325"/>00325 &#32;&#32;&#32;&#32;<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">/*&#32;Full&#32;scale&#32;ranges.&#32;*/</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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gaec8501b935143099e5f729dee221a81e">accel_fsr_e</link>&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l00330"/><link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81eae27c6f69463dab7de81fac0c51ff8aa7">00330</link> &#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81eae27c6f69463dab7de81fac0c51ff8aa7">INV_FSR_2G</link>&#32;=&#32;0,
<anchor xml:id="_inv__mpu_8c_source_1l00331"/><link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81eaa91e3a89d0bbd01149fe71148595be6d">00331</link> &#32;&#32;&#32;&#32;<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> &#32;&#32;&#32;&#32;<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> &#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81ea6712e8563c97c11b458ef721d4f5f9d5">INV_FSR_16G</link>,
<anchor xml:id="_inv__mpu_8c_source_1l00334"/>00334 &#32;&#32;&#32;&#32;<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">/*&#32;Clock&#32;sources.&#32;*/</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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga75570f009627c6f4ddfb2d936d81e207">clock_sel_e</link>&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l00339"/><link linkend="_group___d_r_i_v_e_r_s_1gga75570f009627c6f4ddfb2d936d81e207a92059acf8d0ff5b7e12580c15f88466f">00339</link> &#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga75570f009627c6f4ddfb2d936d81e207a92059acf8d0ff5b7e12580c15f88466f">INV_CLK_INTERNAL</link>&#32;=&#32;0,
<anchor xml:id="_inv__mpu_8c_source_1l00340"/><link linkend="_group___d_r_i_v_e_r_s_1gga75570f009627c6f4ddfb2d936d81e207a01b240917a78674d3e387110a6a8f94c">00340</link> &#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga75570f009627c6f4ddfb2d936d81e207a01b240917a78674d3e387110a6a8f94c">INV_CLK_PLL</link>,
<anchor xml:id="_inv__mpu_8c_source_1l00341"/>00341 &#32;&#32;&#32;&#32;<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">/*&#32;Low-power&#32;accel&#32;wakeup&#32;rates.&#32;*/</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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga23c3fcde795e5aa2b141232d490c9ca7">lp_accel_rate_e</link>&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l00346"/>00346 <emphasis role="preprocessor">#if&#32;defined&#32;MPU6050</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00347"/><link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7ab44c7d0127a9466747853533a537b567">00347</link> &#32;&#32;&#32;&#32;<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> &#32;&#32;&#32;&#32;<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> &#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7accaaf47c58dfe32cbf2ffa11fdb83108">INV_LPA_20HZ</link>,
<anchor xml:id="_inv__mpu_8c_source_1l00350"/>00350 &#32;&#32;&#32;&#32;<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&#32;defined&#32;MPU6500</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00352"/>00352 &#32;&#32;&#32;&#32;INV_LPA_0_3125HZ,
<anchor xml:id="_inv__mpu_8c_source_1l00353"/>00353 &#32;&#32;&#32;&#32;INV_LPA_0_625HZ,
<anchor xml:id="_inv__mpu_8c_source_1l00354"/>00354 &#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;INV_LPA_2_5HZ,
<anchor xml:id="_inv__mpu_8c_source_1l00356"/>00356 &#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7a474cac76bff369dd656cc973207a1ca5">INV_LPA_5HZ</link>,
<anchor xml:id="_inv__mpu_8c_source_1l00357"/>00357 &#32;&#32;&#32;&#32;INV_LPA_10HZ,
<anchor xml:id="_inv__mpu_8c_source_1l00358"/>00358 &#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7accaaf47c58dfe32cbf2ffa11fdb83108">INV_LPA_20HZ</link>,
<anchor xml:id="_inv__mpu_8c_source_1l00359"/>00359 &#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7a798d2b86eafcf3fc7c7fe775f46cb4cb">INV_LPA_40HZ</link>,
<anchor xml:id="_inv__mpu_8c_source_1l00360"/>00360 &#32;&#32;&#32;&#32;INV_LPA_80HZ,
<anchor xml:id="_inv__mpu_8c_source_1l00361"/>00361 &#32;&#32;&#32;&#32;INV_LPA_160HZ,
<anchor xml:id="_inv__mpu_8c_source_1l00362"/>00362 &#32;&#32;&#32;&#32;INV_LPA_320HZ,
<anchor xml:id="_inv__mpu_8c_source_1l00363"/>00363 &#32;&#32;&#32;&#32;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&#32;BIT_I2C_MST_VDDIO&#32;&#32;&#32;(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&#32;BIT_FIFO_EN&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(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&#32;BIT_DMP_EN&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(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&#32;BIT_FIFO_RST&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(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&#32;BIT_DMP_RST&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(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&#32;BIT_FIFO_OVERFLOW&#32;&#32;&#32;(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&#32;BIT_DATA_RDY_EN&#32;&#32;&#32;&#32;&#32;(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&#32;BIT_DMP_INT_EN&#32;&#32;&#32;&#32;&#32;&#32;(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&#32;BIT_MOT_INT_EN&#32;&#32;&#32;&#32;&#32;&#32;(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&#32;BITS_FSR&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(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&#32;BITS_LPF&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(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&#32;BITS_HPF&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(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&#32;BITS_CLK&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(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&#32;BIT_FIFO_SIZE_1024&#32;&#32;(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&#32;BIT_FIFO_SIZE_2048&#32;&#32;(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&#32;BIT_FIFO_SIZE_4096&#32;&#32;(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&#32;BIT_RESET&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(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&#32;BIT_SLEEP&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(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&#32;BIT_S0_DELAY_EN&#32;&#32;&#32;&#32;&#32;(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&#32;BIT_S2_DELAY_EN&#32;&#32;&#32;&#32;&#32;(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&#32;BITS_SLAVE_LENGTH&#32;&#32;&#32;(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&#32;BIT_SLAVE_BYTE_SW&#32;&#32;&#32;(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&#32;BIT_SLAVE_GROUP&#32;&#32;&#32;&#32;&#32;(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&#32;BIT_SLAVE_EN&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(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&#32;BIT_I2C_READ&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(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&#32;BITS_I2C_MASTER_DLY&#32;(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&#32;BIT_AUX_IF_EN&#32;&#32;&#32;&#32;&#32;&#32;&#32;(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&#32;BIT_ACTL&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(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&#32;BIT_LATCH_EN&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(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&#32;BIT_ANY_RD_CLR&#32;&#32;&#32;&#32;&#32;&#32;(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&#32;BIT_BYPASS_EN&#32;&#32;&#32;&#32;&#32;&#32;&#32;(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&#32;BITS_WOM_EN&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(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&#32;BIT_LPA_CYCLE&#32;&#32;&#32;&#32;&#32;&#32;&#32;(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&#32;BIT_STBY_XA&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(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&#32;BIT_STBY_YA&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(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&#32;BIT_STBY_ZA&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(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&#32;BIT_STBY_XG&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(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&#32;BIT_STBY_YG&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(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&#32;BIT_STBY_ZG&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(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&#32;BIT_STBY_XYZA&#32;&#32;&#32;&#32;&#32;&#32;&#32;(BIT_STBY_XA&#32;|&#32;BIT_STBY_YA&#32;|&#32;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&#32;BIT_STBY_XYZG&#32;&#32;&#32;&#32;&#32;&#32;&#32;(BIT_STBY_XG&#32;|&#32;BIT_STBY_YG&#32;|&#32;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&#32;defined&#32;AK8975_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00410"/>00410 <emphasis role="preprocessor">#define&#32;SUPPORTS_AK89xx_HIGH_SENS&#32;&#32;&#32;(0x00)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00411"/>00411 <emphasis role="preprocessor">#define&#32;AK89xx_FSR&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(9830)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00412"/>00412 <emphasis role="preprocessor">#elif&#32;defined&#32;AK8963_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00413"/>00413 <emphasis role="preprocessor">#define&#32;SUPPORTS_AK89xx_HIGH_SENS&#32;&#32;&#32;(0x10)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00414"/>00414 <emphasis role="preprocessor">#define&#32;AK89xx_FSR&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(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&#32;AK89xx_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00418"/>00418 <emphasis role="preprocessor">#define&#32;AKM_REG_WHOAMI&#32;&#32;&#32;&#32;&#32;&#32;(0x00)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00419"/>00419
<anchor xml:id="_inv__mpu_8c_source_1l00420"/>00420 <emphasis role="preprocessor">#define&#32;AKM_REG_ST1&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(0x02)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00421"/>00421 <emphasis role="preprocessor">#define&#32;AKM_REG_HXL&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(0x03)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00422"/>00422 <emphasis role="preprocessor">#define&#32;AKM_REG_ST2&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(0x09)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00423"/>00423
<anchor xml:id="_inv__mpu_8c_source_1l00424"/>00424 <emphasis role="preprocessor">#define&#32;AKM_REG_CNTL&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(0x0A)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00425"/>00425 <emphasis role="preprocessor">#define&#32;AKM_REG_ASTC&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(0x0C)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00426"/>00426 <emphasis role="preprocessor">#define&#32;AKM_REG_ASAX&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(0x10)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00427"/>00427 <emphasis role="preprocessor">#define&#32;AKM_REG_ASAY&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(0x11)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00428"/>00428 <emphasis role="preprocessor">#define&#32;AKM_REG_ASAZ&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(0x12)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00429"/>00429
<anchor xml:id="_inv__mpu_8c_source_1l00430"/>00430 <emphasis role="preprocessor">#define&#32;AKM_DATA_READY&#32;&#32;&#32;&#32;&#32;&#32;(0x01)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00431"/>00431 <emphasis role="preprocessor">#define&#32;AKM_DATA_OVERRUN&#32;&#32;&#32;&#32;(0x02)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00432"/>00432 <emphasis role="preprocessor">#define&#32;AKM_OVERFLOW&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(0x80)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00433"/>00433 <emphasis role="preprocessor">#define&#32;AKM_DATA_ERROR&#32;&#32;&#32;&#32;&#32;&#32;(0x40)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00434"/>00434
<anchor xml:id="_inv__mpu_8c_source_1l00435"/>00435 <emphasis role="preprocessor">#define&#32;AKM_BIT_SELF_TEST&#32;&#32;&#32;(0x40)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00436"/>00436
<anchor xml:id="_inv__mpu_8c_source_1l00437"/>00437 <emphasis role="preprocessor">#define&#32;AKM_POWER_DOWN&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(0x00&#32;|&#32;SUPPORTS_AK89xx_HIGH_SENS)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00438"/>00438 <emphasis role="preprocessor">#define&#32;AKM_SINGLE_MEASUREMENT&#32;&#32;(0x01&#32;|&#32;SUPPORTS_AK89xx_HIGH_SENS)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00439"/>00439 <emphasis role="preprocessor">#define&#32;AKM_FUSE_ROM_ACCESS&#32;&#32;&#32;&#32;&#32;(0x0F&#32;|&#32;SUPPORTS_AK89xx_HIGH_SENS)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00440"/>00440 <emphasis role="preprocessor">#define&#32;AKM_MODE_SELF_TEST&#32;&#32;&#32;&#32;&#32;&#32;(0x08&#32;|&#32;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&#32;AKM_WHOAMI&#32;&#32;&#32;&#32;&#32;&#32;(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&#32;defined&#32;MPU6050</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00446"/>00446 <emphasis role="comment">//const&#32;struct&#32;gyro_reg_s&#32;reg&#32;=&#32;{</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00447"/>00447 <emphasis role="comment">//&#32;&#32;&#32;&#32;.who_am_i&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x75,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00448"/>00448 <emphasis role="comment">//&#32;&#32;&#32;&#32;.rate_div&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x19,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00449"/>00449 <emphasis role="comment">//&#32;&#32;&#32;&#32;.lpf&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x1A,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00450"/>00450 <emphasis role="comment">//&#32;&#32;&#32;&#32;.prod_id&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x0C,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00451"/>00451 <emphasis role="comment">//&#32;&#32;&#32;&#32;.user_ctrl&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x6A,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00452"/>00452 <emphasis role="comment">//&#32;&#32;&#32;&#32;.fifo_en&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x23,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00453"/>00453 <emphasis role="comment">//&#32;&#32;&#32;&#32;.gyro_cfg&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x1B,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00454"/>00454 <emphasis role="comment">//&#32;&#32;&#32;&#32;.accel_cfg&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x1C,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00455"/>00455 <emphasis role="comment">//&#32;&#32;&#32;&#32;.motion_thr&#32;&#32;&#32;&#32;&#32;=&#32;0x1F,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00456"/>00456 <emphasis role="comment">//&#32;&#32;&#32;&#32;.motion_dur&#32;&#32;&#32;&#32;&#32;=&#32;0x20,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00457"/>00457 <emphasis role="comment">//&#32;&#32;&#32;&#32;.fifo_count_h&#32;&#32;&#32;=&#32;0x72,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00458"/>00458 <emphasis role="comment">//&#32;&#32;&#32;&#32;.fifo_r_w&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x74,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00459"/>00459 <emphasis role="comment">//&#32;&#32;&#32;&#32;.raw_gyro&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x43,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00460"/>00460 <emphasis role="comment">//&#32;&#32;&#32;&#32;.raw_accel&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x3B,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00461"/>00461 <emphasis role="comment">//&#32;&#32;&#32;&#32;.temp&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x41,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00462"/>00462 <emphasis role="comment">//&#32;&#32;&#32;&#32;.int_enable&#32;&#32;&#32;&#32;&#32;=&#32;0x38,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00463"/>00463 <emphasis role="comment">//&#32;&#32;&#32;&#32;.dmp_int_status&#32;=&#32;0x39,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00464"/>00464 <emphasis role="comment">//&#32;&#32;&#32;&#32;.int_status&#32;&#32;&#32;&#32;&#32;=&#32;0x3A,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00465"/>00465 <emphasis role="comment">//&#32;&#32;&#32;&#32;.pwr_mgmt_1&#32;&#32;&#32;&#32;&#32;=&#32;0x6B,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00466"/>00466 <emphasis role="comment">//&#32;&#32;&#32;&#32;.pwr_mgmt_2&#32;&#32;&#32;&#32;&#32;=&#32;0x6C,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00467"/>00467 <emphasis role="comment">//&#32;&#32;&#32;&#32;.int_pin_cfg&#32;&#32;&#32;&#32;=&#32;0x37,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00468"/>00468 <emphasis role="comment">//&#32;&#32;&#32;&#32;.mem_r_w&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x6F,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00469"/>00469 <emphasis role="comment">//&#32;&#32;&#32;&#32;.accel_offs&#32;&#32;&#32;&#32;&#32;=&#32;0x06,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00470"/>00470 <emphasis role="comment">//&#32;&#32;&#32;&#32;.i2c_mst&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x24,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00471"/>00471 <emphasis role="comment">//&#32;&#32;&#32;&#32;.bank_sel&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x6D,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00472"/>00472 <emphasis role="comment">//&#32;&#32;&#32;&#32;.mem_start_addr&#32;=&#32;0x6E,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00473"/>00473 <emphasis role="comment">//&#32;&#32;&#32;&#32;.prgm_start_h&#32;&#32;&#32;=&#32;0x70</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00474"/>00474 <emphasis role="comment">//#ifdef&#32;AK89xx_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00475"/>00475 <emphasis role="comment">//&#32;&#32;&#32;&#32;,.raw_compass&#32;&#32;&#32;=&#32;0x49,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00476"/>00476 <emphasis role="comment">//&#32;&#32;&#32;&#32;.yg_offs_tc&#32;&#32;&#32;&#32;&#32;=&#32;0x01,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00477"/>00477 <emphasis role="comment">//&#32;&#32;&#32;&#32;.s0_addr&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x25,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00478"/>00478 <emphasis role="comment">//&#32;&#32;&#32;&#32;.s0_reg&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x26,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00479"/>00479 <emphasis role="comment">//&#32;&#32;&#32;&#32;.s0_ctrl&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x27,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00480"/>00480 <emphasis role="comment">//&#32;&#32;&#32;&#32;.s1_addr&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x28,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00481"/>00481 <emphasis role="comment">//&#32;&#32;&#32;&#32;.s1_reg&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x29,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00482"/>00482 <emphasis role="comment">//&#32;&#32;&#32;&#32;.s1_ctrl&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x2A,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00483"/>00483 <emphasis role="comment">//&#32;&#32;&#32;&#32;.s4_ctrl&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x34,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00484"/>00484 <emphasis role="comment">//&#32;&#32;&#32;&#32;.s0_do&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x63,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00485"/>00485 <emphasis role="comment">//&#32;&#32;&#32;&#32;.s1_do&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x64,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00486"/>00486 <emphasis role="comment">//&#32;&#32;&#32;&#32;.i2c_delay_ctrl&#32;=&#32;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>&#32;<emphasis role="keyword">struct&#32;</emphasis><link linkend="_structgyro__reg__s">gyro_reg_s</link>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga5448c351fc95ff052b110eee80e5f75c">reg</link>&#32;=&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l00490"/>00490 0x75,&#32;&#32;<emphasis role="comment">//who_am_i</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00491"/>00491 0x19,&#32;&#32;<emphasis role="comment">//rate_div</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00492"/>00492 0x1A,&#32;&#32;<emphasis role="comment">//lpf</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00493"/>00493 0x0C,&#32;&#32;<emphasis role="comment">//prod_id</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00494"/>00494 0x6A,&#32;&#32;<emphasis role="comment">//user_ctrl</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00495"/>00495 0x23,&#32;&#32;<emphasis role="comment">//fifo_en</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00496"/>00496 0x1B,&#32;&#32;<emphasis role="comment">//gyro_cfg</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00497"/>00497 0x1C,&#32;&#32;<emphasis role="comment">//accel_cfg</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00498"/>00498 0x1F,&#32;&#32;<emphasis role="comment">//&#32;motion_thr</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00499"/>00499 0x20,&#32;&#32;<emphasis role="comment">//&#32;motion_dur</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00500"/>00500 0x72,&#32;&#32;<emphasis role="comment">//&#32;fifo_count_h</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00501"/>00501 0x74,&#32;&#32;<emphasis role="comment">//&#32;fifo_r_w</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00502"/>00502 0x43,&#32;&#32;<emphasis role="comment">//&#32;raw_gyro</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00503"/>00503 0x3B,&#32;&#32;<emphasis role="comment">//&#32;raw_accel</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00504"/>00504 0x41,&#32;&#32;<emphasis role="comment">//&#32;temp</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00505"/>00505 0x38,&#32;&#32;<emphasis role="comment">//&#32;int_enable</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00506"/>00506 0x39,&#32;&#32;<emphasis role="comment">//&#32;&#32;dmp_int_status</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00507"/>00507 0x3A,&#32;&#32;<emphasis role="comment">//&#32;&#32;int_status</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00508"/>00508 0x6B,&#32;&#32;<emphasis role="comment">//&#32;pwr_mgmt_1</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00509"/>00509 0x6C,&#32;&#32;<emphasis role="comment">//&#32;pwr_mgmt_2</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00510"/>00510 0x37,&#32;&#32;<emphasis role="comment">//&#32;int_pin_cfg</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00511"/>00511 0x6F,&#32;&#32;<emphasis role="comment">//&#32;mem_r_w</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00512"/>00512 0x06,&#32;&#32;<emphasis role="comment">//&#32;accel_offs</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00513"/>00513 0x24,&#32;&#32;<emphasis role="comment">//&#32;i2c_mst</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00514"/>00514 0x6D,&#32;&#32;<emphasis role="comment">//&#32;bank_sel</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00515"/>00515 0x6E,&#32;&#32;<emphasis role="comment">//&#32;mem_start_addr</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00516"/>00516 0x70&#32;&#32;&#32;<emphasis role="comment">//&#32;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&#32;struct&#32;hw_s&#32;hw&#32;=&#32;{</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00520"/>00520 <emphasis role="comment">//&#32;&#32;&#32;&#32;.addr&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x68,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00521"/>00521 <emphasis role="comment">//&#32;&#32;&#32;&#32;.max_fifo&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;1024,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00522"/>00522 <emphasis role="comment">//&#32;&#32;&#32;&#32;.num_reg&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;118,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00523"/>00523 <emphasis role="comment">//&#32;&#32;&#32;&#32;.temp_sens&#32;&#32;&#32;&#32;&#32;&#32;=&#32;340,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00524"/>00524 <emphasis role="comment">//&#32;&#32;&#32;&#32;.temp_offset&#32;&#32;&#32;&#32;=&#32;-521,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00525"/>00525 <emphasis role="comment">//&#32;&#32;&#32;&#32;.bank_size&#32;&#32;&#32;&#32;&#32;&#32;=&#32;256</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00526"/>00526 <emphasis role="comment">//#if&#32;defined&#32;AK89xx_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00527"/>00527 <emphasis role="comment">//&#32;&#32;&#32;&#32;,.compass_fsr&#32;&#32;&#32;&#32;=&#32;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>&#32;<emphasis role="keyword">struct&#32;</emphasis><link linkend="_structhw__s">hw_s</link>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga7fefd0bb47e09b7e39e25e9795cd7edc">hw</link>={
<anchor xml:id="_inv__mpu_8c_source_1l00531"/>00531 &#32;&#32;0x68,&#32;&#32;<emphasis role="comment">//addr</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00532"/>00532 &#32;&#32;1024,&#32;&#32;<emphasis role="comment">//max_fifo</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00533"/>00533 &#32;&#32;118,&#32;&#32;&#32;<emphasis role="comment">//num_reg</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00534"/>00534 &#32;&#32;340,&#32;&#32;&#32;<emphasis role="comment">//temp_sens</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00535"/>00535 &#32;&#32;-521,&#32;&#32;<emphasis role="comment">//temp_offset</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00536"/>00536 &#32;&#32;256&#32;&#32;&#32;&#32;<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&#32;struct&#32;test_s&#32;test&#32;=&#32;{</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00540"/>00540 <emphasis role="comment">//&#32;&#32;&#32;&#32;.gyro_sens&#32;&#32;&#32;&#32;&#32;&#32;=&#32;32768/250,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00541"/>00541 <emphasis role="comment">//&#32;&#32;&#32;&#32;.accel_sens&#32;&#32;&#32;&#32;&#32;=&#32;32768/16,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00542"/>00542 <emphasis role="comment">//&#32;&#32;&#32;&#32;.reg_rate_div&#32;&#32;&#32;=&#32;0,&#32;&#32;&#32;&#32;/*&#32;1kHz.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00543"/>00543 <emphasis role="comment">//&#32;&#32;&#32;&#32;.reg_lpf&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;1,&#32;&#32;&#32;&#32;/*&#32;188Hz.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00544"/>00544 <emphasis role="comment">//&#32;&#32;&#32;&#32;.reg_gyro_fsr&#32;&#32;&#32;=&#32;0,&#32;&#32;&#32;&#32;/*&#32;250dps.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00545"/>00545 <emphasis role="comment">//&#32;&#32;&#32;&#32;.reg_accel_fsr&#32;&#32;=&#32;0x18,&#32;/*&#32;16g.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00546"/>00546 <emphasis role="comment">//&#32;&#32;&#32;&#32;.wait_ms&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;50,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00547"/>00547 <emphasis role="comment">//&#32;&#32;&#32;&#32;.packet_thresh&#32;&#32;=&#32;5,&#32;&#32;&#32;&#32;/*&#32;5%&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00548"/>00548 <emphasis role="comment">//&#32;&#32;&#32;&#32;.min_dps&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;10.f,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00549"/>00549 <emphasis role="comment">//&#32;&#32;&#32;&#32;.max_dps&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;105.f,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00550"/>00550 <emphasis role="comment">//&#32;&#32;&#32;&#32;.max_gyro_var&#32;&#32;&#32;=&#32;0.14f,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00551"/>00551 <emphasis role="comment">//&#32;&#32;&#32;&#32;.min_g&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0.3f,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00552"/>00552 <emphasis role="comment">//&#32;&#32;&#32;&#32;.max_g&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0.95f,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00553"/>00553 <emphasis role="comment">//&#32;&#32;&#32;&#32;.max_accel_var&#32;&#32;=&#32;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>&#32;<emphasis role="keyword">struct&#32;</emphasis><link linkend="_structtest__s">test_s</link>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga1e8f8b1ef7fb2c429e1ce7c2f9985530">test</link>={
<anchor xml:id="_inv__mpu_8c_source_1l00556"/>00556 32768/250,&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//gyro_sens</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00557"/>00557 32768/16,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;accel_sens</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00558"/>00558 0,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;reg_rate_div</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00559"/>00559 1,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;&#32;reg_lpf</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00560"/>00560 0,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;reg_gyro_fsr</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00561"/>00561 0x18,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;&#32;reg_accel_fsr</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00562"/>00562 50,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;&#32;wait_ms</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00563"/>00563 5,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;&#32;packet_thresh</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00564"/>00564 10.0f,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;min_dps</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00565"/>00565 105.0f,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;max_dps</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00566"/>00566 0.14f,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;&#32;max_gyro_var</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00567"/>00567 0.3f,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;&#32;&#32;min_g</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00568"/>00568 0.95f,&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;&#32;&#32;max_g</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00569"/>00569 0.14f&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;&#32;&#32;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&#32;struct&#32;gyro_state_s&#32;st&#32;=&#32;{</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00573"/>00573 <emphasis role="comment">//&#32;&#32;&#32;&#32;.reg&#32;=&#32;&amp;reg,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00574"/>00574 <emphasis role="comment">//&#32;&#32;&#32;&#32;.hw&#32;=&#32;&amp;hw,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00575"/>00575 <emphasis role="comment">//&#32;&#32;&#32;&#32;.test&#32;=&#32;&amp;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>&#32;<emphasis role="keyword">struct&#32;</emphasis><link linkend="_structgyro__state__s">gyro_state_s</link>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>={
<anchor xml:id="_inv__mpu_8c_source_1l00578"/>00578 &#32;&#32;&amp;<link linkend="_group___d_r_i_v_e_r_s_1ga5448c351fc95ff052b110eee80e5f75c">reg</link>,
<anchor xml:id="_inv__mpu_8c_source_1l00579"/>00579 &#32;&#32;&amp;<link linkend="_group___d_r_i_v_e_r_s_1ga7fefd0bb47e09b7e39e25e9795cd7edc">hw</link>,
<anchor xml:id="_inv__mpu_8c_source_1l00580"/>00580 &#32;&#32;{0},
<anchor xml:id="_inv__mpu_8c_source_1l00581"/>00581 &#32;&#32;&amp;<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&#32;defined&#32;MPU6500</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00586"/>00586 <emphasis role="keyword">const</emphasis>&#32;<emphasis role="keyword">struct&#32;</emphasis><link linkend="_structgyro__reg__s">gyro_reg_s</link>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga5448c351fc95ff052b110eee80e5f75c">reg</link>&#32;=&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l00587"/>00587 &#32;&#32;&#32;&#32;.<link linkend="_group___d_r_i_v_e_r_s_1ga51068a36efe9d2aedc9cb8fffacbf15b">who_am_i</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x75,
<anchor xml:id="_inv__mpu_8c_source_1l00588"/>00588 &#32;&#32;&#32;&#32;.rate_div&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x19,
<anchor xml:id="_inv__mpu_8c_source_1l00589"/>00589 &#32;&#32;&#32;&#32;.lpf&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x1A,
<anchor xml:id="_inv__mpu_8c_source_1l00590"/>00590 &#32;&#32;&#32;&#32;.prod_id&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x0C,
<anchor xml:id="_inv__mpu_8c_source_1l00591"/>00591 &#32;&#32;&#32;&#32;.user_ctrl&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x6A,
<anchor xml:id="_inv__mpu_8c_source_1l00592"/>00592 &#32;&#32;&#32;&#32;.fifo_en&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x23,
<anchor xml:id="_inv__mpu_8c_source_1l00593"/>00593 &#32;&#32;&#32;&#32;.gyro_cfg&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x1B,
<anchor xml:id="_inv__mpu_8c_source_1l00594"/>00594 &#32;&#32;&#32;&#32;.accel_cfg&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x1C,
<anchor xml:id="_inv__mpu_8c_source_1l00595"/>00595 &#32;&#32;&#32;&#32;.accel_cfg2&#32;&#32;&#32;&#32;&#32;=&#32;0x1D,
<anchor xml:id="_inv__mpu_8c_source_1l00596"/>00596 &#32;&#32;&#32;&#32;.lp_accel_odr&#32;&#32;&#32;=&#32;0x1E,
<anchor xml:id="_inv__mpu_8c_source_1l00597"/>00597 &#32;&#32;&#32;&#32;.motion_thr&#32;&#32;&#32;&#32;&#32;=&#32;0x1F,
<anchor xml:id="_inv__mpu_8c_source_1l00598"/>00598 &#32;&#32;&#32;&#32;.motion_dur&#32;&#32;&#32;&#32;&#32;=&#32;0x20,
<anchor xml:id="_inv__mpu_8c_source_1l00599"/>00599 &#32;&#32;&#32;&#32;.fifo_count_h&#32;&#32;&#32;=&#32;0x72,
<anchor xml:id="_inv__mpu_8c_source_1l00600"/>00600 &#32;&#32;&#32;&#32;.fifo_r_w&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x74,
<anchor xml:id="_inv__mpu_8c_source_1l00601"/>00601 &#32;&#32;&#32;&#32;.raw_gyro&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x43,
<anchor xml:id="_inv__mpu_8c_source_1l00602"/>00602 &#32;&#32;&#32;&#32;.raw_accel&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x3B,
<anchor xml:id="_inv__mpu_8c_source_1l00603"/>00603 &#32;&#32;&#32;&#32;.temp&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x41,
<anchor xml:id="_inv__mpu_8c_source_1l00604"/>00604 &#32;&#32;&#32;&#32;.int_enable&#32;&#32;&#32;&#32;&#32;=&#32;0x38,
<anchor xml:id="_inv__mpu_8c_source_1l00605"/>00605 &#32;&#32;&#32;&#32;.dmp_int_status&#32;=&#32;0x39,
<anchor xml:id="_inv__mpu_8c_source_1l00606"/>00606 &#32;&#32;&#32;&#32;.int_status&#32;&#32;&#32;&#32;&#32;=&#32;0x3A,
<anchor xml:id="_inv__mpu_8c_source_1l00607"/>00607 &#32;&#32;&#32;&#32;.accel_intel&#32;&#32;&#32;&#32;=&#32;0x69,
<anchor xml:id="_inv__mpu_8c_source_1l00608"/>00608 &#32;&#32;&#32;&#32;.pwr_mgmt_1&#32;&#32;&#32;&#32;&#32;=&#32;0x6B,
<anchor xml:id="_inv__mpu_8c_source_1l00609"/>00609 &#32;&#32;&#32;&#32;.pwr_mgmt_2&#32;&#32;&#32;&#32;&#32;=&#32;0x6C,
<anchor xml:id="_inv__mpu_8c_source_1l00610"/>00610 &#32;&#32;&#32;&#32;.int_pin_cfg&#32;&#32;&#32;&#32;=&#32;0x37,
<anchor xml:id="_inv__mpu_8c_source_1l00611"/>00611 &#32;&#32;&#32;&#32;.mem_r_w&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x6F,
<anchor xml:id="_inv__mpu_8c_source_1l00612"/>00612 &#32;&#32;&#32;&#32;.accel_offs&#32;&#32;&#32;&#32;&#32;=&#32;0x77,
<anchor xml:id="_inv__mpu_8c_source_1l00613"/>00613 &#32;&#32;&#32;&#32;.i2c_mst&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x24,
<anchor xml:id="_inv__mpu_8c_source_1l00614"/>00614 &#32;&#32;&#32;&#32;.bank_sel&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x6D,
<anchor xml:id="_inv__mpu_8c_source_1l00615"/>00615 &#32;&#32;&#32;&#32;.mem_start_addr&#32;=&#32;0x6E,
<anchor xml:id="_inv__mpu_8c_source_1l00616"/>00616 &#32;&#32;&#32;&#32;.prgm_start_h&#32;&#32;&#32;=&#32;0x70
<anchor xml:id="_inv__mpu_8c_source_1l00617"/>00617 <emphasis role="preprocessor">#ifdef&#32;AK89xx_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00618"/>00618 &#32;&#32;&#32;&#32;,.raw_compass&#32;&#32;&#32;=&#32;0x49,
<anchor xml:id="_inv__mpu_8c_source_1l00619"/>00619 &#32;&#32;&#32;&#32;.s0_addr&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x25,
<anchor xml:id="_inv__mpu_8c_source_1l00620"/>00620 &#32;&#32;&#32;&#32;.s0_reg&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x26,
<anchor xml:id="_inv__mpu_8c_source_1l00621"/>00621 &#32;&#32;&#32;&#32;.s0_ctrl&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x27,
<anchor xml:id="_inv__mpu_8c_source_1l00622"/>00622 &#32;&#32;&#32;&#32;.s1_addr&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x28,
<anchor xml:id="_inv__mpu_8c_source_1l00623"/>00623 &#32;&#32;&#32;&#32;.s1_reg&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x29,
<anchor xml:id="_inv__mpu_8c_source_1l00624"/>00624 &#32;&#32;&#32;&#32;.s1_ctrl&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x2A,
<anchor xml:id="_inv__mpu_8c_source_1l00625"/>00625 &#32;&#32;&#32;&#32;.s4_ctrl&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x34,
<anchor xml:id="_inv__mpu_8c_source_1l00626"/>00626 &#32;&#32;&#32;&#32;.s0_do&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x63,
<anchor xml:id="_inv__mpu_8c_source_1l00627"/>00627 &#32;&#32;&#32;&#32;.s1_do&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x64,
<anchor xml:id="_inv__mpu_8c_source_1l00628"/>00628 &#32;&#32;&#32;&#32;.i2c_delay_ctrl&#32;=&#32;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>&#32;<emphasis role="keyword">struct&#32;</emphasis><link linkend="_structhw__s">hw_s</link>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga7fefd0bb47e09b7e39e25e9795cd7edc">hw</link>&#32;=&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l00632"/>00632 &#32;&#32;&#32;&#32;.<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0x68,
<anchor xml:id="_inv__mpu_8c_source_1l00633"/>00633 &#32;&#32;&#32;&#32;.max_fifo&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;1024,
<anchor xml:id="_inv__mpu_8c_source_1l00634"/>00634 &#32;&#32;&#32;&#32;.num_reg&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;128,
<anchor xml:id="_inv__mpu_8c_source_1l00635"/>00635 &#32;&#32;&#32;&#32;.temp_sens&#32;&#32;&#32;&#32;&#32;&#32;=&#32;321,
<anchor xml:id="_inv__mpu_8c_source_1l00636"/>00636 &#32;&#32;&#32;&#32;.temp_offset&#32;&#32;&#32;&#32;=&#32;0,
<anchor xml:id="_inv__mpu_8c_source_1l00637"/>00637 &#32;&#32;&#32;&#32;.bank_size&#32;&#32;&#32;&#32;&#32;&#32;=&#32;256
<anchor xml:id="_inv__mpu_8c_source_1l00638"/>00638 <emphasis role="preprocessor">#if&#32;defined&#32;AK89xx_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00639"/>00639 &#32;&#32;&#32;&#32;,.compass_fsr&#32;&#32;&#32;&#32;=&#32;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>&#32;<emphasis role="keyword">struct&#32;</emphasis><link linkend="_structtest__s">test_s</link>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga1e8f8b1ef7fb2c429e1ce7c2f9985530">test</link>&#32;=&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l00644"/>00644 &#32;&#32;&#32;&#32;.<link linkend="_group___d_r_i_v_e_r_s_1ga330290a347407b0d92b1d77aa274993c">gyro_sens</link>&#32;&#32;&#32;&#32;&#32;&#32;=&#32;32768/250,
<anchor xml:id="_inv__mpu_8c_source_1l00645"/>00645 &#32;&#32;&#32;&#32;.accel_sens&#32;&#32;&#32;&#32;&#32;=&#32;32768/16,
<anchor xml:id="_inv__mpu_8c_source_1l00646"/>00646 &#32;&#32;&#32;&#32;.reg_rate_div&#32;&#32;&#32;=&#32;0,&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;1kHz.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00647"/>00647 &#32;&#32;&#32;&#32;.reg_lpf&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;1,&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;188Hz.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00648"/>00648 &#32;&#32;&#32;&#32;.reg_gyro_fsr&#32;&#32;&#32;=&#32;0,&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;250dps.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00649"/>00649 &#32;&#32;&#32;&#32;.reg_accel_fsr&#32;&#32;=&#32;0x18,&#32;<emphasis role="comment">/*&#32;16g.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00650"/>00650 &#32;&#32;&#32;&#32;.wait_ms&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;50,
<anchor xml:id="_inv__mpu_8c_source_1l00651"/>00651 &#32;&#32;&#32;&#32;.packet_thresh&#32;&#32;=&#32;5,&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;5%&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00652"/>00652 &#32;&#32;&#32;&#32;.min_dps&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;10.f,
<anchor xml:id="_inv__mpu_8c_source_1l00653"/>00653 &#32;&#32;&#32;&#32;.max_dps&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;105.f,
<anchor xml:id="_inv__mpu_8c_source_1l00654"/>00654 &#32;&#32;&#32;&#32;.max_gyro_var&#32;&#32;&#32;=&#32;0.14f,
<anchor xml:id="_inv__mpu_8c_source_1l00655"/>00655 &#32;&#32;&#32;&#32;.min_g&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0.3f,
<anchor xml:id="_inv__mpu_8c_source_1l00656"/>00656 &#32;&#32;&#32;&#32;.max_g&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;=&#32;0.95f,
<anchor xml:id="_inv__mpu_8c_source_1l00657"/>00657 &#32;&#32;&#32;&#32;.max_accel_var&#32;&#32;=&#32;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>&#32;<emphasis role="keyword">struct&#32;</emphasis><link linkend="_structgyro__state__s">gyro_state_s</link>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga3854b4875f6db26c2a1a707885f1fc78">st</link>&#32;=&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l00661"/>00661 &#32;&#32;&#32;&#32;.<link linkend="_group___d_r_i_v_e_r_s_1ga458ad7d19aa1dc020276ec0d36951d0d">reg</link>&#32;=&#32;&amp;<link linkend="_group___d_r_i_v_e_r_s_1ga5448c351fc95ff052b110eee80e5f75c">reg</link>,
<anchor xml:id="_inv__mpu_8c_source_1l00662"/>00662 &#32;&#32;&#32;&#32;.hw&#32;=&#32;&amp;<link linkend="_group___d_r_i_v_e_r_s_1ga7fefd0bb47e09b7e39e25e9795cd7edc">hw</link>,
<anchor xml:id="_inv__mpu_8c_source_1l00663"/>00663 &#32;&#32;&#32;&#32;.test&#32;=&#32;&amp;<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&#32;MAX_PACKET_LENGTH&#32;(12)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00668"/>00668
<anchor xml:id="_inv__mpu_8c_source_1l00669"/>00669 <emphasis role="preprocessor">#ifdef&#32;AK89xx_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00670"/>00670 <emphasis role="keyword">static</emphasis>&#32;<emphasis role="keywordtype">int</emphasis>&#32;<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&#32;MAX_COMPASS_SAMPLE_RATE&#32;(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>&#32;<emphasis role="keywordtype">int</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gafd5ebff6b0179e1dce0b68c2272cae07">set_int_enable</link>(<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;enable)
<anchor xml:id="_inv__mpu_8c_source_1l00682"/>00682 {
<anchor xml:id="_inv__mpu_8c_source_1l00683"/>00683 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;tmp;
<anchor xml:id="_inv__mpu_8c_source_1l00684"/>00684
<anchor xml:id="_inv__mpu_8c_source_1l00685"/>00685 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l00686"/>00686 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(enable)
<anchor xml:id="_inv__mpu_8c_source_1l00687"/>00687 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp&#32;=&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00689"/>00689 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp&#32;=&#32;0x00;
<anchor xml:id="_inv__mpu_8c_source_1l00690"/>00690 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga48b47844d4b0570e60aa6806faa59eae">int_enable</link>,&#32;1,&#32;&amp;tmp))
<anchor xml:id="_inv__mpu_8c_source_1l00691"/>00691 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l00692"/>00692 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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>&#32;=&#32;tmp;
<anchor xml:id="_inv__mpu_8c_source_1l00693"/>00693 &#32;&#32;&#32;&#32;}&#32;<emphasis role="keywordflow">else</emphasis>&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l00694"/>00694 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l00696"/>00696 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(enable&#32;&amp;&amp;&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l00698"/>00698 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(enable)
<anchor xml:id="_inv__mpu_8c_source_1l00699"/>00699 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp&#32;=&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00701"/>00701 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp&#32;=&#32;0x00;
<anchor xml:id="_inv__mpu_8c_source_1l00702"/>00702 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga48b47844d4b0570e60aa6806faa59eae">int_enable</link>,&#32;1,&#32;&amp;tmp))
<anchor xml:id="_inv__mpu_8c_source_1l00703"/>00703 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l00704"/>00704 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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>&#32;=&#32;tmp;
<anchor xml:id="_inv__mpu_8c_source_1l00705"/>00705 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l00706"/>00706 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<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 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;ii;
<anchor xml:id="_inv__mpu_8c_source_1l00716"/>00716 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;data;
<anchor xml:id="_inv__mpu_8c_source_1l00717"/>00717
<anchor xml:id="_inv__mpu_8c_source_1l00718"/>00718 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">for</emphasis>&#32;(ii&#32;=&#32;0;&#32;ii&#32;&lt;&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga1039fa66b110194727938cd86be8c3c5">num_reg</link>;&#32;ii++)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l00719"/>00719 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(ii&#32;==&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb6763dc5f368ea01ef7c733cea9dab4">fifo_r_w</link>&#32;||&#32;ii&#32;==&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gae17166b43fa12a960c0eced9a3c04bf0">mem_r_w</link>)
<anchor xml:id="_inv__mpu_8c_source_1l00720"/>00720 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">continue</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l00721"/>00721 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;ii,&#32;1,&#32;&amp;data))
<anchor xml:id="_inv__mpu_8c_source_1l00722"/>00722 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l00723"/>00723 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga2905fba7885cd95057e1655cb4d16bda">log_i</link>(<emphasis role="stringliteral">&quot;%#5x:&#32;%#5x\r\n&quot;</emphasis>,&#32;ii,&#32;data);
<anchor xml:id="_inv__mpu_8c_source_1l00724"/>00724 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l00725"/>00725 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga5c35a3363337014e11769a0ea7c0dfa9">mpu_read_reg</link>(<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga5448c351fc95ff052b110eee80e5f75c">reg</link>,&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;*data)
<anchor xml:id="_inv__mpu_8c_source_1l00736"/>00736 {
<anchor xml:id="_inv__mpu_8c_source_1l00737"/>00737 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<link linkend="_group___d_r_i_v_e_r_s_1ga5448c351fc95ff052b110eee80e5f75c">reg</link>&#32;==&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb6763dc5f368ea01ef7c733cea9dab4">fifo_r_w</link>&#32;||&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga5448c351fc95ff052b110eee80e5f75c">reg</link>&#32;==&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gae17166b43fa12a960c0eced9a3c04bf0">mem_r_w</link>)
<anchor xml:id="_inv__mpu_8c_source_1l00738"/>00738 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l00739"/>00739 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<link linkend="_group___d_r_i_v_e_r_s_1ga5448c351fc95ff052b110eee80e5f75c">reg</link>&#32;&gt;=&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga1039fa66b110194727938cd86be8c3c5">num_reg</link>)
<anchor xml:id="_inv__mpu_8c_source_1l00740"/>00740 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l00741"/>00741 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga5448c351fc95ff052b110eee80e5f75c">reg</link>,&#32;1,&#32;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>&#32;<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 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;data[6],&#32;rev;
<anchor xml:id="_inv__mpu_8c_source_1l00760"/>00760
<anchor xml:id="_inv__mpu_8c_source_1l00761"/>00761 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Reset&#32;device.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00762"/>00762 &#32;&#32;&#32;&#32;data[0]&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gaf4ce49fd1fc9b1461b5241f9ef4812f4">BIT_RESET</link>;
<anchor xml:id="_inv__mpu_8c_source_1l00763"/>00763 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gaa01fb0872030e8e2932f8d1d257ea86a">pwr_mgmt_1</link>,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l00764"/>00764 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l00765"/>00765 &#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Wake&#32;up&#32;chip.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00768"/>00768 &#32;&#32;&#32;&#32;data[0]&#32;=&#32;0x00;
<anchor xml:id="_inv__mpu_8c_source_1l00769"/>00769 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gaa01fb0872030e8e2932f8d1d257ea86a">pwr_mgmt_1</link>,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l00770"/>00770 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l00771"/>00771
<anchor xml:id="_inv__mpu_8c_source_1l00772"/>00772 <emphasis role="preprocessor">#if&#32;defined&#32;MPU6050</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00773"/>00773 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Check&#32;product&#32;revision.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00774"/>00774 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gab745dd73e0c3ef01f30f96444358cb89">accel_offs</link>,&#32;6,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l00775"/>00775 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l00776"/>00776 &#32;&#32;&#32;&#32;rev&#32;=&#32;((data[5]&#32;&amp;&#32;0x01)&#32;&lt;&lt;&#32;2)&#32;|&#32;((data[3]&#32;&amp;&#32;0x01)&#32;&lt;&lt;&#32;1)&#32;|
<anchor xml:id="_inv__mpu_8c_source_1l00777"/>00777 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(data[1]&#32;&amp;&#32;0x01);
<anchor xml:id="_inv__mpu_8c_source_1l00778"/>00778
<anchor xml:id="_inv__mpu_8c_source_1l00779"/>00779 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(rev)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l00780"/>00780 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Congrats,&#32;these&#32;parts&#32;are&#32;better.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00781"/>00781 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(rev&#32;==&#32;1)
<anchor xml:id="_inv__mpu_8c_source_1l00782"/>00782 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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>&#32;=&#32;1;
<anchor xml:id="_inv__mpu_8c_source_1l00783"/>00783 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(rev&#32;==&#32;2)
<anchor xml:id="_inv__mpu_8c_source_1l00784"/>00784 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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>&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l00785"/>00785 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l00786"/>00786 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gab354affc295f7d61fe8a355c9361cc5a">log_e</link>(<emphasis role="stringliteral">&quot;Unsupported&#32;software&#32;product&#32;rev&#32;%d.\n&quot;</emphasis>,&#32;rev);
<anchor xml:id="_inv__mpu_8c_source_1l00787"/>00787 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l00788"/>00788 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l00789"/>00789 &#32;&#32;&#32;&#32;}&#32;<emphasis role="keywordflow">else</emphasis>&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l00790"/>00790 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gaf418d8a6b0e262df54ab8a6a5228011c">prod_id</link>,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l00791"/>00791 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l00792"/>00792 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;rev&#32;=&#32;data[0]&#32;&amp;&#32;0x0F;
<anchor xml:id="_inv__mpu_8c_source_1l00793"/>00793 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!rev)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l00794"/>00794 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gab354affc295f7d61fe8a355c9361cc5a">log_e</link>(<emphasis role="stringliteral">&quot;Product&#32;ID&#32;read&#32;as&#32;0&#32;indicates&#32;device&#32;is&#32;either&#32;&quot;</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00795"/>00795 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="stringliteral">&quot;incompatible&#32;or&#32;an&#32;MPU3050.\n&quot;</emphasis>);
<anchor xml:id="_inv__mpu_8c_source_1l00796"/>00796 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l00797"/>00797 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(rev&#32;==&#32;4)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l00798"/>00798 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga2905fba7885cd95057e1655cb4d16bda">log_i</link>(<emphasis role="stringliteral">&quot;Half&#32;sensitivity&#32;part&#32;found.\n&quot;</emphasis>);
<anchor xml:id="_inv__mpu_8c_source_1l00799"/>00799 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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>&#32;=&#32;1;
<anchor xml:id="_inv__mpu_8c_source_1l00800"/>00800 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}&#32;<emphasis role="keywordflow">else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00801"/>00801 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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>&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l00802"/>00802 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l00803"/>00803 <emphasis role="preprocessor">#elif&#32;defined&#32;MPU6500</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00804"/>00804 <emphasis role="preprocessor">#define&#32;MPU6500_MEM_REV_ADDR&#32;&#32;&#32;&#32;(0x17)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00805"/>00805 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<link linkend="_group___d_r_i_v_e_r_s_1ga3374bececb6743893c9eab27645c1182">mpu_read_mem</link>(MPU6500_MEM_REV_ADDR,&#32;1,&#32;&amp;rev))
<anchor xml:id="_inv__mpu_8c_source_1l00806"/>00806 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l00807"/>00807 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(rev&#32;==&#32;0x1)
<anchor xml:id="_inv__mpu_8c_source_1l00808"/>00808 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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>&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l00809"/>00809 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l00810"/>00810 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gab354affc295f7d61fe8a355c9361cc5a">log_e</link>(<emphasis role="stringliteral">&quot;Unsupported&#32;software&#32;product&#32;rev&#32;%d.\n&quot;</emphasis>,&#32;rev);
<anchor xml:id="_inv__mpu_8c_source_1l00811"/>00811 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l00812"/>00812 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l00813"/>00813
<anchor xml:id="_inv__mpu_8c_source_1l00814"/>00814 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;MPU6500&#32;shares&#32;4kB&#32;of&#32;memory&#32;between&#32;the&#32;DMP&#32;and&#32;the&#32;FIFO.&#32;Since&#32;the</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00815"/>00815 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;*&#32;first&#32;3kB&#32;are&#32;needed&#32;by&#32;the&#32;DMP,&#32;we&apos;ll&#32;use&#32;the&#32;last&#32;1kB&#32;for&#32;the&#32;FIFO.</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00816"/>00816 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00817"/>00817 &#32;&#32;&#32;&#32;data[0]&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga3769fd3fa71deaef1e77ce14c26f679d">BIT_FIFO_SIZE_1024</link>&#32;|&#32;0x8;
<anchor xml:id="_inv__mpu_8c_source_1l00818"/>00818 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;accel_cfg2,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l00819"/>00819 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-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 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Set&#32;to&#32;invalid&#32;values&#32;to&#32;ensure&#32;no&#32;I2C&#32;writes&#32;are&#32;skipped.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00823"/>00823 &#32;&#32;&#32;&#32;<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>&#32;=&#32;0xFF;
<anchor xml:id="_inv__mpu_8c_source_1l00824"/>00824 &#32;&#32;&#32;&#32;<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>&#32;=&#32;0xFF;
<anchor xml:id="_inv__mpu_8c_source_1l00825"/>00825 &#32;&#32;&#32;&#32;<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>&#32;=&#32;0xFF;
<anchor xml:id="_inv__mpu_8c_source_1l00826"/>00826 &#32;&#32;&#32;&#32;<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>&#32;=&#32;0xFF;
<anchor xml:id="_inv__mpu_8c_source_1l00827"/>00827 &#32;&#32;&#32;&#32;<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>&#32;=&#32;0xFFFF;
<anchor xml:id="_inv__mpu_8c_source_1l00828"/>00828 &#32;&#32;&#32;&#32;<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>&#32;=&#32;0xFF;
<anchor xml:id="_inv__mpu_8c_source_1l00829"/>00829 &#32;&#32;&#32;&#32;<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>&#32;=&#32;0xFF;
<anchor xml:id="_inv__mpu_8c_source_1l00830"/>00830 <emphasis role="preprocessor">#ifdef&#32;AK89xx_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00831"/>00831 &#32;&#32;&#32;&#32;<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&#32;=&#32;0xFFFF;
<anchor xml:id="_inv__mpu_8c_source_1l00832"/>00832 <emphasis role="preprocessor">#endif</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00833"/>00833 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;mpu_set_sensors&#32;always&#32;preserves&#32;this&#32;setting.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00834"/>00834 &#32;&#32;&#32;&#32;<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>&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga75570f009627c6f4ddfb2d936d81e207a01b240917a78674d3e387110a6a8f94c">INV_CLK_PLL</link>;
<anchor xml:id="_inv__mpu_8c_source_1l00835"/>00835 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Handled&#32;in&#32;next&#32;call&#32;to&#32;mpu_set_bypass.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00836"/>00836 &#32;&#32;&#32;&#32;<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>&#32;=&#32;1;
<anchor xml:id="_inv__mpu_8c_source_1l00837"/>00837 &#32;&#32;&#32;&#32;<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>&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l00838"/>00838 &#32;&#32;&#32;&#32;<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>&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l00839"/>00839 &#32;&#32;&#32;&#32;<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>&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l00840"/>00840 &#32;&#32;&#32;&#32;memset(&amp;<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>,&#32;0,&#32;<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 &#32;&#32;&#32;&#32;<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>&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l00842"/>00842 &#32;&#32;&#32;&#32;<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>&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l00843"/>00843 &#32;&#32;&#32;&#32;<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>&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l00844"/>00844
<anchor xml:id="_inv__mpu_8c_source_1l00845"/>00845 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l00847"/>00847 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l00849"/>00849 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l00851"/>00851 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l00853"/>00853 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l00855"/>00855
<anchor xml:id="_inv__mpu_8c_source_1l00856"/>00856 <emphasis role="comment">//&#32;&#32;&#32;&#32;if&#32;(int_param)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00857"/>00857 <emphasis role="comment">//&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;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&#32;AK89xx_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00860"/>00860 &#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga4764ce0ba4e07a4c774f69ab3b83d1f9">setup_compass</link>();
<anchor xml:id="_inv__mpu_8c_source_1l00861"/>00861 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l00863"/>00863 <emphasis role="preprocessor">#else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00864"/>00864 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Already&#32;disabled&#32;by&#32;setup_compass.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00865"/>00865 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-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 &#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga3a4fea75686ab7d2e68634e81ccac04c">mpu_lp_accel_mode</link>(<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;rate)
<anchor xml:id="_inv__mpu_8c_source_1l00889"/>00889 {
<anchor xml:id="_inv__mpu_8c_source_1l00890"/>00890 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;tmp[2];
<anchor xml:id="_inv__mpu_8c_source_1l00891"/>00891
<anchor xml:id="_inv__mpu_8c_source_1l00892"/>00892 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(rate&#32;&gt;&#32;40)
<anchor xml:id="_inv__mpu_8c_source_1l00893"/>00893 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l00894"/>00894
<anchor xml:id="_inv__mpu_8c_source_1l00895"/>00895 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!rate)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l00896"/>00896 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp[0]&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l00898"/>00898 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp[1]&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga4e2ef22b94b90f9b83394dfe1f688ce4">BIT_STBY_XYZG</link>;
<anchor xml:id="_inv__mpu_8c_source_1l00899"/>00899 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gaa01fb0872030e8e2932f8d1d257ea86a">pwr_mgmt_1</link>,&#32;2,&#32;tmp))
<anchor xml:id="_inv__mpu_8c_source_1l00900"/>00900 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l00901"/>00901 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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>&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l00902"/>00902 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l00903"/>00903 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l00904"/>00904 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;For&#32;LP&#32;accel,&#32;we&#32;automatically&#32;configure&#32;the&#32;hardware&#32;to&#32;produce&#32;latched</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00905"/>00905 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;*&#32;interrupts.&#32;In&#32;LP&#32;accel&#32;mode,&#32;the&#32;hardware&#32;cycles&#32;into&#32;sleep&#32;mode&#32;before</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00906"/>00906 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;*&#32;it&#32;gets&#32;a&#32;chance&#32;to&#32;deassert&#32;the&#32;interrupt&#32;pin;&#32;therefore,&#32;we&#32;shift&#32;this</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00907"/>00907 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;*&#32;responsibility&#32;over&#32;to&#32;the&#32;MCU.</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00908"/>00908 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;*</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00909"/>00909 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;*&#32;Any&#32;register&#32;read&#32;will&#32;clear&#32;the&#32;interrupt.</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00910"/>00910 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00911"/>00911 &#32;&#32;&#32;&#32;<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&#32;defined&#32;MPU6050</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00913"/>00913 &#32;&#32;&#32;&#32;tmp[0]&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga63e6f23af37626aa1498d8c248f259e7">BIT_LPA_CYCLE</link>;
<anchor xml:id="_inv__mpu_8c_source_1l00914"/>00914 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(rate&#32;==&#32;1)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l00915"/>00915 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp[1]&#32;=&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;}&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(rate&#32;&lt;=&#32;5)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l00918"/>00918 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp[1]&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7a474cac76bff369dd656cc973207a1ca5">INV_LPA_5HZ</link>;
<anchor xml:id="_inv__mpu_8c_source_1l00919"/>00919 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;}&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(rate&#32;&lt;=&#32;20)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l00921"/>00921 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp[1]&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7accaaf47c58dfe32cbf2ffa11fdb83108">INV_LPA_20HZ</link>;
<anchor xml:id="_inv__mpu_8c_source_1l00922"/>00922 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;}&#32;<emphasis role="keywordflow">else</emphasis>&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l00924"/>00924 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp[1]&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7a798d2b86eafcf3fc7c7fe775f46cb4cb">INV_LPA_40HZ</link>;
<anchor xml:id="_inv__mpu_8c_source_1l00925"/>00925 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l00927"/>00927 &#32;&#32;&#32;&#32;tmp[1]&#32;=&#32;(tmp[1]&#32;&lt;&lt;&#32;6)&#32;|&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga4e2ef22b94b90f9b83394dfe1f688ce4">BIT_STBY_XYZG</link>;
<anchor xml:id="_inv__mpu_8c_source_1l00928"/>00928 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gaa01fb0872030e8e2932f8d1d257ea86a">pwr_mgmt_1</link>,&#32;2,&#32;tmp))
<anchor xml:id="_inv__mpu_8c_source_1l00929"/>00929 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l00930"/>00930 <emphasis role="preprocessor">#elif&#32;defined&#32;MPU6500</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00931"/>00931 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Set&#32;wake&#32;frequency.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00932"/>00932 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(rate&#32;==&#32;1)
<anchor xml:id="_inv__mpu_8c_source_1l00933"/>00933 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp[0]&#32;=&#32;<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 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(rate&#32;==&#32;2)
<anchor xml:id="_inv__mpu_8c_source_1l00935"/>00935 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp[0]&#32;=&#32;INV_LPA_2_5HZ;
<anchor xml:id="_inv__mpu_8c_source_1l00936"/>00936 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(rate&#32;&lt;=&#32;5)
<anchor xml:id="_inv__mpu_8c_source_1l00937"/>00937 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp[0]&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7a474cac76bff369dd656cc973207a1ca5">INV_LPA_5HZ</link>;
<anchor xml:id="_inv__mpu_8c_source_1l00938"/>00938 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(rate&#32;&lt;=&#32;10)
<anchor xml:id="_inv__mpu_8c_source_1l00939"/>00939 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp[0]&#32;=&#32;INV_LPA_10HZ;
<anchor xml:id="_inv__mpu_8c_source_1l00940"/>00940 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(rate&#32;&lt;=&#32;20)
<anchor xml:id="_inv__mpu_8c_source_1l00941"/>00941 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp[0]&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7accaaf47c58dfe32cbf2ffa11fdb83108">INV_LPA_20HZ</link>;
<anchor xml:id="_inv__mpu_8c_source_1l00942"/>00942 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(rate&#32;&lt;=&#32;40)
<anchor xml:id="_inv__mpu_8c_source_1l00943"/>00943 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp[0]&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7a798d2b86eafcf3fc7c7fe775f46cb4cb">INV_LPA_40HZ</link>;
<anchor xml:id="_inv__mpu_8c_source_1l00944"/>00944 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(rate&#32;&lt;=&#32;80)
<anchor xml:id="_inv__mpu_8c_source_1l00945"/>00945 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp[0]&#32;=&#32;INV_LPA_80HZ;
<anchor xml:id="_inv__mpu_8c_source_1l00946"/>00946 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(rate&#32;&lt;=&#32;160)
<anchor xml:id="_inv__mpu_8c_source_1l00947"/>00947 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp[0]&#32;=&#32;INV_LPA_160HZ;
<anchor xml:id="_inv__mpu_8c_source_1l00948"/>00948 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(rate&#32;&lt;=&#32;320)
<anchor xml:id="_inv__mpu_8c_source_1l00949"/>00949 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp[0]&#32;=&#32;INV_LPA_320HZ;
<anchor xml:id="_inv__mpu_8c_source_1l00950"/>00950 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00951"/>00951 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp[0]&#32;=&#32;INV_LPA_640HZ;
<anchor xml:id="_inv__mpu_8c_source_1l00952"/>00952 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;lp_accel_odr,&#32;1,&#32;tmp))
<anchor xml:id="_inv__mpu_8c_source_1l00953"/>00953 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l00954"/>00954 &#32;&#32;&#32;&#32;tmp[0]&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga63e6f23af37626aa1498d8c248f259e7">BIT_LPA_CYCLE</link>;
<anchor xml:id="_inv__mpu_8c_source_1l00955"/>00955 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gaa01fb0872030e8e2932f8d1d257ea86a">pwr_mgmt_1</link>,&#32;1,&#32;tmp))
<anchor xml:id="_inv__mpu_8c_source_1l00956"/>00956 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l00957"/>00957 <emphasis role="preprocessor">#endif</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l00958"/>00958 &#32;&#32;&#32;&#32;<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>&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gaa03f025a17ed491e70b88274e89c75c5">INV_XYZ_ACCEL</link>;
<anchor xml:id="_inv__mpu_8c_source_1l00959"/>00959 &#32;&#32;&#32;&#32;<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>&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l00960"/>00960 &#32;&#32;&#32;&#32;<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>&#32;=&#32;1;
<anchor xml:id="_inv__mpu_8c_source_1l00961"/>00961 &#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga5555854590ad11495c0e30401294bae2">mpu_get_gyro_reg</link>(<emphasis role="keywordtype">short</emphasis>&#32;*data,&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">long</emphasis>&#32;*timestamp)
<anchor xml:id="_inv__mpu_8c_source_1l00973"/>00973 {
<anchor xml:id="_inv__mpu_8c_source_1l00974"/>00974 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;tmp[6];
<anchor xml:id="_inv__mpu_8c_source_1l00975"/>00975
<anchor xml:id="_inv__mpu_8c_source_1l00976"/>00976 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!(<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>&#32;&amp;&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga3fdc30f9c0a26c2c4e2bb88921f91629">INV_XYZ_GYRO</link>))
<anchor xml:id="_inv__mpu_8c_source_1l00977"/>00977 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l00978"/>00978
<anchor xml:id="_inv__mpu_8c_source_1l00979"/>00979 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gab5c2246c44bb36b21596fe5acf7ec0d4">raw_gyro</link>,&#32;6,&#32;tmp))
<anchor xml:id="_inv__mpu_8c_source_1l00980"/>00980 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l00981"/>00981 &#32;&#32;&#32;&#32;data[0]&#32;=&#32;(tmp[0]&#32;&lt;&lt;&#32;8)&#32;|&#32;tmp[1];
<anchor xml:id="_inv__mpu_8c_source_1l00982"/>00982 &#32;&#32;&#32;&#32;data[1]&#32;=&#32;(tmp[2]&#32;&lt;&lt;&#32;8)&#32;|&#32;tmp[3];
<anchor xml:id="_inv__mpu_8c_source_1l00983"/>00983 &#32;&#32;&#32;&#32;data[2]&#32;=&#32;(tmp[4]&#32;&lt;&lt;&#32;8)&#32;|&#32;tmp[5];
<anchor xml:id="_inv__mpu_8c_source_1l00984"/>00984 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(timestamp)
<anchor xml:id="_inv__mpu_8c_source_1l00985"/>00985 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga3e6b6bc6d1cd2956353a31bfadd3c332">get_ms</link>(timestamp);
<anchor xml:id="_inv__mpu_8c_source_1l00986"/>00986 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gae4ae960e5df78049ece2647772a3d809">mpu_get_accel_reg</link>(<emphasis role="keywordtype">short</emphasis>&#32;*data,&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">long</emphasis>&#32;*timestamp)
<anchor xml:id="_inv__mpu_8c_source_1l00996"/>00996 {
<anchor xml:id="_inv__mpu_8c_source_1l00997"/>00997 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;tmp[6];
<anchor xml:id="_inv__mpu_8c_source_1l00998"/>00998
<anchor xml:id="_inv__mpu_8c_source_1l00999"/>00999 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!(<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>&#32;&amp;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gaa03f025a17ed491e70b88274e89c75c5">INV_XYZ_ACCEL</link>))
<anchor xml:id="_inv__mpu_8c_source_1l01000"/>01000 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01001"/>01001
<anchor xml:id="_inv__mpu_8c_source_1l01002"/>01002 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga9b7c162cea6a3deeaac41444c613b7bc">raw_accel</link>,&#32;6,&#32;tmp))
<anchor xml:id="_inv__mpu_8c_source_1l01003"/>01003 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01004"/>01004 &#32;&#32;&#32;&#32;data[0]&#32;=&#32;(tmp[0]&#32;&lt;&lt;&#32;8)&#32;|&#32;tmp[1];
<anchor xml:id="_inv__mpu_8c_source_1l01005"/>01005 &#32;&#32;&#32;&#32;data[1]&#32;=&#32;(tmp[2]&#32;&lt;&lt;&#32;8)&#32;|&#32;tmp[3];
<anchor xml:id="_inv__mpu_8c_source_1l01006"/>01006 &#32;&#32;&#32;&#32;data[2]&#32;=&#32;(tmp[4]&#32;&lt;&lt;&#32;8)&#32;|&#32;tmp[5];
<anchor xml:id="_inv__mpu_8c_source_1l01007"/>01007 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(timestamp)
<anchor xml:id="_inv__mpu_8c_source_1l01008"/>01008 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga3e6b6bc6d1cd2956353a31bfadd3c332">get_ms</link>(timestamp);
<anchor xml:id="_inv__mpu_8c_source_1l01009"/>01009 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gaa449b565a157b4b8ca0f491b7ed46018">mpu_get_temperature</link>(<emphasis role="keywordtype">long</emphasis>&#32;*data,&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">long</emphasis>&#32;*timestamp)
<anchor xml:id="_inv__mpu_8c_source_1l01019"/>01019 {
<anchor xml:id="_inv__mpu_8c_source_1l01020"/>01020 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;tmp[2];
<anchor xml:id="_inv__mpu_8c_source_1l01021"/>01021 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">short</emphasis>&#32;raw;
<anchor xml:id="_inv__mpu_8c_source_1l01022"/>01022
<anchor xml:id="_inv__mpu_8c_source_1l01023"/>01023 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!(<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01025"/>01025
<anchor xml:id="_inv__mpu_8c_source_1l01026"/>01026 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga47674fab0681811c1b733462944e0233">temp</link>,&#32;2,&#32;tmp))
<anchor xml:id="_inv__mpu_8c_source_1l01027"/>01027 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01028"/>01028 &#32;&#32;&#32;&#32;raw&#32;=&#32;(tmp[0]&#32;&lt;&lt;&#32;8)&#32;|&#32;tmp[1];
<anchor xml:id="_inv__mpu_8c_source_1l01029"/>01029 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(timestamp)
<anchor xml:id="_inv__mpu_8c_source_1l01030"/>01030 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;data[0]&#32;=&#32;(long)((35&#32;+&#32;((raw&#32;-&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga56f98c91a7c4d60ccea1ade1f3e88d04">temp_offset</link>)&#32;/&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gab2397f792a86b32b0957c24e3912bc63">temp_sens</link>))&#32;*&#32;65536L);
<anchor xml:id="_inv__mpu_8c_source_1l01033"/>01033 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga4968cc2ec80f0da0d72436551c81f134">mpu_set_accel_bias</link>(<emphasis role="keyword">const</emphasis>&#32;<emphasis role="keywordtype">long</emphasis>&#32;*accel_bias)
<anchor xml:id="_inv__mpu_8c_source_1l01044"/>01044 {
<anchor xml:id="_inv__mpu_8c_source_1l01045"/>01045 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;data[6];
<anchor xml:id="_inv__mpu_8c_source_1l01046"/>01046 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">short</emphasis>&#32;accel_hw[3];
<anchor xml:id="_inv__mpu_8c_source_1l01047"/>01047 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">short</emphasis>&#32;got_accel[3];
<anchor xml:id="_inv__mpu_8c_source_1l01048"/>01048 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">short</emphasis>&#32;fg[3];
<anchor xml:id="_inv__mpu_8c_source_1l01049"/>01049
<anchor xml:id="_inv__mpu_8c_source_1l01050"/>01050 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!accel_bias)
<anchor xml:id="_inv__mpu_8c_source_1l01051"/>01051 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01052"/>01052 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!accel_bias[0]&#32;&amp;&amp;&#32;!accel_bias[1]&#32;&amp;&amp;&#32;!accel_bias[2])
<anchor xml:id="_inv__mpu_8c_source_1l01053"/>01053 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01054"/>01054
<anchor xml:id="_inv__mpu_8c_source_1l01055"/>01055 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;3,&#32;3,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l01056"/>01056 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01057"/>01057 &#32;&#32;&#32;&#32;fg[0]&#32;=&#32;((data[0]&#32;&gt;&gt;&#32;4)&#32;+&#32;8)&#32;&amp;&#32;0xf;
<anchor xml:id="_inv__mpu_8c_source_1l01058"/>01058 &#32;&#32;&#32;&#32;fg[1]&#32;=&#32;((data[1]&#32;&gt;&gt;&#32;4)&#32;+&#32;8)&#32;&amp;&#32;0xf;
<anchor xml:id="_inv__mpu_8c_source_1l01059"/>01059 &#32;&#32;&#32;&#32;fg[2]&#32;=&#32;((data[2]&#32;&gt;&gt;&#32;4)&#32;+&#32;8)&#32;&amp;&#32;0xf;
<anchor xml:id="_inv__mpu_8c_source_1l01060"/>01060
<anchor xml:id="_inv__mpu_8c_source_1l01061"/>01061 &#32;&#32;&#32;&#32;accel_hw[0]&#32;=&#32;(short)(accel_bias[0]&#32;*&#32;2&#32;/&#32;(64&#32;+&#32;fg[0]));
<anchor xml:id="_inv__mpu_8c_source_1l01062"/>01062 &#32;&#32;&#32;&#32;accel_hw[1]&#32;=&#32;(short)(accel_bias[1]&#32;*&#32;2&#32;/&#32;(64&#32;+&#32;fg[1]));
<anchor xml:id="_inv__mpu_8c_source_1l01063"/>01063 &#32;&#32;&#32;&#32;accel_hw[2]&#32;=&#32;(short)(accel_bias[2]&#32;*&#32;2&#32;/&#32;(64&#32;+&#32;fg[2]));
<anchor xml:id="_inv__mpu_8c_source_1l01064"/>01064
<anchor xml:id="_inv__mpu_8c_source_1l01065"/>01065 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;0x06,&#32;6,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l01066"/>01066 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01067"/>01067
<anchor xml:id="_inv__mpu_8c_source_1l01068"/>01068 &#32;&#32;&#32;&#32;got_accel[0]&#32;=&#32;((short)data[0]&#32;&lt;&lt;&#32;8)&#32;|&#32;data[1];
<anchor xml:id="_inv__mpu_8c_source_1l01069"/>01069 &#32;&#32;&#32;&#32;got_accel[1]&#32;=&#32;((short)data[2]&#32;&lt;&lt;&#32;8)&#32;|&#32;data[3];
<anchor xml:id="_inv__mpu_8c_source_1l01070"/>01070 &#32;&#32;&#32;&#32;got_accel[2]&#32;=&#32;((short)data[4]&#32;&lt;&lt;&#32;8)&#32;|&#32;data[5];
<anchor xml:id="_inv__mpu_8c_source_1l01071"/>01071
<anchor xml:id="_inv__mpu_8c_source_1l01072"/>01072 &#32;&#32;&#32;&#32;accel_hw[0]&#32;+=&#32;got_accel[0];
<anchor xml:id="_inv__mpu_8c_source_1l01073"/>01073 &#32;&#32;&#32;&#32;accel_hw[1]&#32;+=&#32;got_accel[1];
<anchor xml:id="_inv__mpu_8c_source_1l01074"/>01074 &#32;&#32;&#32;&#32;accel_hw[2]&#32;+=&#32;got_accel[2];
<anchor xml:id="_inv__mpu_8c_source_1l01075"/>01075
<anchor xml:id="_inv__mpu_8c_source_1l01076"/>01076 &#32;&#32;&#32;&#32;data[0]&#32;=&#32;(accel_hw[0]&#32;&gt;&gt;&#32;8)&#32;&amp;&#32;0xff;
<anchor xml:id="_inv__mpu_8c_source_1l01077"/>01077 &#32;&#32;&#32;&#32;data[1]&#32;=&#32;(accel_hw[0])&#32;&amp;&#32;0xff;
<anchor xml:id="_inv__mpu_8c_source_1l01078"/>01078 &#32;&#32;&#32;&#32;data[2]&#32;=&#32;(accel_hw[1]&#32;&gt;&gt;&#32;8)&#32;&amp;&#32;0xff;
<anchor xml:id="_inv__mpu_8c_source_1l01079"/>01079 &#32;&#32;&#32;&#32;data[3]&#32;=&#32;(accel_hw[1])&#32;&amp;&#32;0xff;
<anchor xml:id="_inv__mpu_8c_source_1l01080"/>01080 &#32;&#32;&#32;&#32;data[4]&#32;=&#32;(accel_hw[2]&#32;&gt;&gt;&#32;8)&#32;&amp;&#32;0xff;
<anchor xml:id="_inv__mpu_8c_source_1l01081"/>01081 &#32;&#32;&#32;&#32;data[5]&#32;=&#32;(accel_hw[2])&#32;&amp;&#32;0xff;
<anchor xml:id="_inv__mpu_8c_source_1l01082"/>01082
<anchor xml:id="_inv__mpu_8c_source_1l01083"/>01083 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;0x06,&#32;6,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l01084"/>01084 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01085"/>01085 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<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 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;data;
<anchor xml:id="_inv__mpu_8c_source_1l01095"/>01095
<anchor xml:id="_inv__mpu_8c_source_1l01096"/>01096 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!(<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01098"/>01098
<anchor xml:id="_inv__mpu_8c_source_1l01099"/>01099 &#32;&#32;&#32;&#32;data&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01100"/>01100 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga48b47844d4b0570e60aa6806faa59eae">int_enable</link>,&#32;1,&#32;&amp;data))
<anchor xml:id="_inv__mpu_8c_source_1l01101"/>01101 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01102"/>01102 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga6a392b7ecae843c734db3d832f11af49">fifo_en</link>,&#32;1,&#32;&amp;data))
<anchor xml:id="_inv__mpu_8c_source_1l01103"/>01103 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01104"/>01104 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga12505a7d8cd7c976e5571f27a6160d23">user_ctrl</link>,&#32;1,&#32;&amp;data))
<anchor xml:id="_inv__mpu_8c_source_1l01105"/>01105 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01106"/>01106
<anchor xml:id="_inv__mpu_8c_source_1l01107"/>01107 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01108"/>01108 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gaeae2cc64314ad05f3a93d2358a2369db">BIT_FIFO_RST</link>&#32;|&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga37d5ceb74c3568e4bab6dcdd0afaa95b">BIT_DMP_RST</link>;
<anchor xml:id="_inv__mpu_8c_source_1l01109"/>01109 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga12505a7d8cd7c976e5571f27a6160d23">user_ctrl</link>,&#32;1,&#32;&amp;data))
<anchor xml:id="_inv__mpu_8c_source_1l01110"/>01110 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01111"/>01111 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gae36aca5baf9b6b7d74992aef00686d67">delay_ms</link>(50);
<anchor xml:id="_inv__mpu_8c_source_1l01112"/>01112 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga02c3e9ddd63128f1c3cf50bf1e9b5fe6">BIT_DMP_EN</link>&#32;|&#32;<link linkend="_group___d_r_i_v_e_r_s_1gae3c4a18accb84992faaf2534a84a147c">BIT_FIFO_EN</link>;
<anchor xml:id="_inv__mpu_8c_source_1l01113"/>01113 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>&#32;&amp;&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga7fc9c1dbdcb2ac8cc2a4128a5799482a">INV_XYZ_COMPASS</link>)
<anchor xml:id="_inv__mpu_8c_source_1l01114"/>01114 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;|=&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga12505a7d8cd7c976e5571f27a6160d23">user_ctrl</link>,&#32;1,&#32;&amp;data))
<anchor xml:id="_inv__mpu_8c_source_1l01116"/>01116 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01117"/>01117 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;=&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01120"/>01120 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01121"/>01121 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga48b47844d4b0570e60aa6806faa59eae">int_enable</link>,&#32;1,&#32;&amp;data))
<anchor xml:id="_inv__mpu_8c_source_1l01122"/>01122 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01123"/>01123 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01124"/>01124 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga6a392b7ecae843c734db3d832f11af49">fifo_en</link>,&#32;1,&#32;&amp;data))
<anchor xml:id="_inv__mpu_8c_source_1l01125"/>01125 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01126"/>01126 &#32;&#32;&#32;&#32;}&#32;<emphasis role="keywordflow">else</emphasis>&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01127"/>01127 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gaeae2cc64314ad05f3a93d2358a2369db">BIT_FIFO_RST</link>;
<anchor xml:id="_inv__mpu_8c_source_1l01128"/>01128 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga12505a7d8cd7c976e5571f27a6160d23">user_ctrl</link>,&#32;1,&#32;&amp;data))
<anchor xml:id="_inv__mpu_8c_source_1l01129"/>01129 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01130"/>01130 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>&#32;||&#32;!(<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>&#32;&amp;&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga7fc9c1dbdcb2ac8cc2a4128a5799482a">INV_XYZ_COMPASS</link>))
<anchor xml:id="_inv__mpu_8c_source_1l01131"/>01131 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gae3c4a18accb84992faaf2534a84a147c">BIT_FIFO_EN</link>;
<anchor xml:id="_inv__mpu_8c_source_1l01132"/>01132 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01133"/>01133 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gae3c4a18accb84992faaf2534a84a147c">BIT_FIFO_EN</link>&#32;|&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga12505a7d8cd7c976e5571f27a6160d23">user_ctrl</link>,&#32;1,&#32;&amp;data))
<anchor xml:id="_inv__mpu_8c_source_1l01135"/>01135 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01136"/>01136 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gae36aca5baf9b6b7d74992aef00686d67">delay_ms</link>(50);
<anchor xml:id="_inv__mpu_8c_source_1l01137"/>01137 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;=&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01140"/>01140 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01141"/>01141 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga48b47844d4b0570e60aa6806faa59eae">int_enable</link>,&#32;1,&#32;&amp;data))
<anchor xml:id="_inv__mpu_8c_source_1l01142"/>01142 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01143"/>01143 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga6a392b7ecae843c734db3d832f11af49">fifo_en</link>,&#32;1,&#32;&amp;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01145"/>01145 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l01146"/>01146 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gaf973c32c73ba912ff512aab948fc31ca">mpu_get_gyro_fsr</link>(<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;*fsr)
<anchor xml:id="_inv__mpu_8c_source_1l01155"/>01155 {
<anchor xml:id="_inv__mpu_8c_source_1l01156"/>01156 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">switch</emphasis>&#32;(<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>)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01157"/>01157 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">case</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90a5b8251a49db5cb8a676076b0b308ae35">INV_FSR_250DPS</link>:
<anchor xml:id="_inv__mpu_8c_source_1l01158"/>01158 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;fsr[0]&#32;=&#32;250;
<anchor xml:id="_inv__mpu_8c_source_1l01159"/>01159 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01160"/>01160 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">case</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90a50901470ff389927fd010081e2b8fd09">INV_FSR_500DPS</link>:
<anchor xml:id="_inv__mpu_8c_source_1l01161"/>01161 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;fsr[0]&#32;=&#32;500;
<anchor xml:id="_inv__mpu_8c_source_1l01162"/>01162 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01163"/>01163 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">case</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90aee922e0daa4fbb404c3db6c49d897a13">INV_FSR_1000DPS</link>:
<anchor xml:id="_inv__mpu_8c_source_1l01164"/>01164 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;fsr[0]&#32;=&#32;1000;
<anchor xml:id="_inv__mpu_8c_source_1l01165"/>01165 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01166"/>01166 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">case</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90ac0c37efc1c8acd6f70c0c5a768e5b8be">INV_FSR_2000DPS</link>:
<anchor xml:id="_inv__mpu_8c_source_1l01167"/>01167 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;fsr[0]&#32;=&#32;2000;
<anchor xml:id="_inv__mpu_8c_source_1l01168"/>01168 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01169"/>01169 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">default</emphasis>:
<anchor xml:id="_inv__mpu_8c_source_1l01170"/>01170 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;fsr[0]&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01171"/>01171 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01172"/>01172 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l01173"/>01173 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gad09e6031c8677adc0b8a39b6deea8e27">mpu_set_gyro_fsr</link>(<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;fsr)
<anchor xml:id="_inv__mpu_8c_source_1l01182"/>01182 {
<anchor xml:id="_inv__mpu_8c_source_1l01183"/>01183 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;data;
<anchor xml:id="_inv__mpu_8c_source_1l01184"/>01184
<anchor xml:id="_inv__mpu_8c_source_1l01185"/>01185 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!(<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01187"/>01187
<anchor xml:id="_inv__mpu_8c_source_1l01188"/>01188 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">switch</emphasis>&#32;(fsr)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01189"/>01189 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">case</emphasis>&#32;250:
<anchor xml:id="_inv__mpu_8c_source_1l01190"/>01190 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90a5b8251a49db5cb8a676076b0b308ae35">INV_FSR_250DPS</link>&#32;&lt;&lt;&#32;3;
<anchor xml:id="_inv__mpu_8c_source_1l01191"/>01191 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01192"/>01192 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">case</emphasis>&#32;500:
<anchor xml:id="_inv__mpu_8c_source_1l01193"/>01193 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90a50901470ff389927fd010081e2b8fd09">INV_FSR_500DPS</link>&#32;&lt;&lt;&#32;3;
<anchor xml:id="_inv__mpu_8c_source_1l01194"/>01194 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01195"/>01195 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">case</emphasis>&#32;1000:
<anchor xml:id="_inv__mpu_8c_source_1l01196"/>01196 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90aee922e0daa4fbb404c3db6c49d897a13">INV_FSR_1000DPS</link>&#32;&lt;&lt;&#32;3;
<anchor xml:id="_inv__mpu_8c_source_1l01197"/>01197 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01198"/>01198 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">case</emphasis>&#32;2000:
<anchor xml:id="_inv__mpu_8c_source_1l01199"/>01199 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90ac0c37efc1c8acd6f70c0c5a768e5b8be">INV_FSR_2000DPS</link>&#32;&lt;&lt;&#32;3;
<anchor xml:id="_inv__mpu_8c_source_1l01200"/>01200 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01201"/>01201 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">default</emphasis>:
<anchor xml:id="_inv__mpu_8c_source_1l01202"/>01202 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01203"/>01203 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l01204"/>01204
<anchor xml:id="_inv__mpu_8c_source_1l01205"/>01205 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>&#32;==&#32;(data&#32;&gt;&gt;&#32;3))
<anchor xml:id="_inv__mpu_8c_source_1l01206"/>01206 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01207"/>01207 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gada0b973f74cc874552f079fd58c435a6">gyro_cfg</link>,&#32;1,&#32;&amp;data))
<anchor xml:id="_inv__mpu_8c_source_1l01208"/>01208 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01209"/>01209 &#32;&#32;&#32;&#32;<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>&#32;=&#32;data&#32;&gt;&gt;&#32;3;
<anchor xml:id="_inv__mpu_8c_source_1l01210"/>01210 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gab6087a15ee23db23b6aec41590329a60">mpu_get_accel_fsr</link>(<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;*fsr)
<anchor xml:id="_inv__mpu_8c_source_1l01219"/>01219 {
<anchor xml:id="_inv__mpu_8c_source_1l01220"/>01220 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">switch</emphasis>&#32;(<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>)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01221"/>01221 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">case</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81eae27c6f69463dab7de81fac0c51ff8aa7">INV_FSR_2G</link>:
<anchor xml:id="_inv__mpu_8c_source_1l01222"/>01222 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;fsr[0]&#32;=&#32;2;
<anchor xml:id="_inv__mpu_8c_source_1l01223"/>01223 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01224"/>01224 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">case</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81eaa91e3a89d0bbd01149fe71148595be6d">INV_FSR_4G</link>:
<anchor xml:id="_inv__mpu_8c_source_1l01225"/>01225 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;fsr[0]&#32;=&#32;4;
<anchor xml:id="_inv__mpu_8c_source_1l01226"/>01226 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01227"/>01227 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">case</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81ea0a40371bdda397d234c53d0ee2f3be8b">INV_FSR_8G</link>:
<anchor xml:id="_inv__mpu_8c_source_1l01228"/>01228 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;fsr[0]&#32;=&#32;8;
<anchor xml:id="_inv__mpu_8c_source_1l01229"/>01229 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01230"/>01230 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">case</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81ea6712e8563c97c11b458ef721d4f5f9d5">INV_FSR_16G</link>:
<anchor xml:id="_inv__mpu_8c_source_1l01231"/>01231 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;fsr[0]&#32;=&#32;16;
<anchor xml:id="_inv__mpu_8c_source_1l01232"/>01232 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01233"/>01233 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">default</emphasis>:
<anchor xml:id="_inv__mpu_8c_source_1l01234"/>01234 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01235"/>01235 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l01236"/>01236 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;fsr[0]&#32;&lt;&lt;=&#32;1;
<anchor xml:id="_inv__mpu_8c_source_1l01238"/>01238 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga2713a96af104cfb2ae8e0ed4c3718119">mpu_set_accel_fsr</link>(<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;fsr)
<anchor xml:id="_inv__mpu_8c_source_1l01247"/>01247 {
<anchor xml:id="_inv__mpu_8c_source_1l01248"/>01248 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;data;
<anchor xml:id="_inv__mpu_8c_source_1l01249"/>01249
<anchor xml:id="_inv__mpu_8c_source_1l01250"/>01250 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!(<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01252"/>01252
<anchor xml:id="_inv__mpu_8c_source_1l01253"/>01253 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">switch</emphasis>&#32;(fsr)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01254"/>01254 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">case</emphasis>&#32;2:
<anchor xml:id="_inv__mpu_8c_source_1l01255"/>01255 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81eae27c6f69463dab7de81fac0c51ff8aa7">INV_FSR_2G</link>&#32;&lt;&lt;&#32;3;
<anchor xml:id="_inv__mpu_8c_source_1l01256"/>01256 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01257"/>01257 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">case</emphasis>&#32;4:
<anchor xml:id="_inv__mpu_8c_source_1l01258"/>01258 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81eaa91e3a89d0bbd01149fe71148595be6d">INV_FSR_4G</link>&#32;&lt;&lt;&#32;3;
<anchor xml:id="_inv__mpu_8c_source_1l01259"/>01259 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01260"/>01260 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">case</emphasis>&#32;8:
<anchor xml:id="_inv__mpu_8c_source_1l01261"/>01261 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81ea0a40371bdda397d234c53d0ee2f3be8b">INV_FSR_8G</link>&#32;&lt;&lt;&#32;3;
<anchor xml:id="_inv__mpu_8c_source_1l01262"/>01262 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01263"/>01263 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">case</emphasis>&#32;16:
<anchor xml:id="_inv__mpu_8c_source_1l01264"/>01264 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81ea6712e8563c97c11b458ef721d4f5f9d5">INV_FSR_16G</link>&#32;&lt;&lt;&#32;3;
<anchor xml:id="_inv__mpu_8c_source_1l01265"/>01265 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01266"/>01266 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">default</emphasis>:
<anchor xml:id="_inv__mpu_8c_source_1l01267"/>01267 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01268"/>01268 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l01269"/>01269
<anchor xml:id="_inv__mpu_8c_source_1l01270"/>01270 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>&#32;==&#32;(data&#32;&gt;&gt;&#32;3))
<anchor xml:id="_inv__mpu_8c_source_1l01271"/>01271 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01272"/>01272 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gae93a446c54cc00bc7f11209d7af0025e">accel_cfg</link>,&#32;1,&#32;&amp;data))
<anchor xml:id="_inv__mpu_8c_source_1l01273"/>01273 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01274"/>01274 &#32;&#32;&#32;&#32;<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>&#32;=&#32;data&#32;&gt;&gt;&#32;3;
<anchor xml:id="_inv__mpu_8c_source_1l01275"/>01275 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gaa95c7e216dcb2d888e9796001ca555f8">mpu_get_lpf</link>(<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;*lpf)
<anchor xml:id="_inv__mpu_8c_source_1l01284"/>01284 {
<anchor xml:id="_inv__mpu_8c_source_1l01285"/>01285 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">switch</emphasis>&#32;(<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>)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01286"/>01286 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">case</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9ab58e52e0b6be4cbaf0c7f32705a9fcec">INV_FILTER_188HZ</link>:
<anchor xml:id="_inv__mpu_8c_source_1l01287"/>01287 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;lpf[0]&#32;=&#32;188;
<anchor xml:id="_inv__mpu_8c_source_1l01288"/>01288 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01289"/>01289 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">case</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9a0f288da0c97b325a6cb57f1223f0cf98">INV_FILTER_98HZ</link>:
<anchor xml:id="_inv__mpu_8c_source_1l01290"/>01290 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;lpf[0]&#32;=&#32;98;
<anchor xml:id="_inv__mpu_8c_source_1l01291"/>01291 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01292"/>01292 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">case</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9a995b18a52a5bd919aa9c1411a2292110">INV_FILTER_42HZ</link>:
<anchor xml:id="_inv__mpu_8c_source_1l01293"/>01293 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;lpf[0]&#32;=&#32;42;
<anchor xml:id="_inv__mpu_8c_source_1l01294"/>01294 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01295"/>01295 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">case</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9aebecb86604e475ed8e2cb68340010ff1">INV_FILTER_20HZ</link>:
<anchor xml:id="_inv__mpu_8c_source_1l01296"/>01296 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;lpf[0]&#32;=&#32;20;
<anchor xml:id="_inv__mpu_8c_source_1l01297"/>01297 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01298"/>01298 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">case</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9a327619f406c6b2f6a221793881013508">INV_FILTER_10HZ</link>:
<anchor xml:id="_inv__mpu_8c_source_1l01299"/>01299 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;lpf[0]&#32;=&#32;10;
<anchor xml:id="_inv__mpu_8c_source_1l01300"/>01300 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01301"/>01301 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">case</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9abdaaf85666fd6a490ee01dcd8a315678">INV_FILTER_5HZ</link>:
<anchor xml:id="_inv__mpu_8c_source_1l01302"/>01302 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;lpf[0]&#32;=&#32;5;
<anchor xml:id="_inv__mpu_8c_source_1l01303"/>01303 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01304"/>01304 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">case</emphasis>&#32;<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 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">case</emphasis>&#32;<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 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">default</emphasis>:
<anchor xml:id="_inv__mpu_8c_source_1l01307"/>01307 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;lpf[0]&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01308"/>01308 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01309"/>01309 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l01310"/>01310 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga5661a9dee25152166769910767a2a93d">mpu_set_lpf</link>(<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;lpf)
<anchor xml:id="_inv__mpu_8c_source_1l01320"/>01320 {
<anchor xml:id="_inv__mpu_8c_source_1l01321"/>01321 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;data;
<anchor xml:id="_inv__mpu_8c_source_1l01322"/>01322
<anchor xml:id="_inv__mpu_8c_source_1l01323"/>01323 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!(<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01325"/>01325
<anchor xml:id="_inv__mpu_8c_source_1l01326"/>01326 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(lpf&#32;&gt;=&#32;188)
<anchor xml:id="_inv__mpu_8c_source_1l01327"/>01327 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9ab58e52e0b6be4cbaf0c7f32705a9fcec">INV_FILTER_188HZ</link>;
<anchor xml:id="_inv__mpu_8c_source_1l01328"/>01328 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(lpf&#32;&gt;=&#32;98)
<anchor xml:id="_inv__mpu_8c_source_1l01329"/>01329 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9a0f288da0c97b325a6cb57f1223f0cf98">INV_FILTER_98HZ</link>;
<anchor xml:id="_inv__mpu_8c_source_1l01330"/>01330 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(lpf&#32;&gt;=&#32;42)
<anchor xml:id="_inv__mpu_8c_source_1l01331"/>01331 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9a995b18a52a5bd919aa9c1411a2292110">INV_FILTER_42HZ</link>;
<anchor xml:id="_inv__mpu_8c_source_1l01332"/>01332 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(lpf&#32;&gt;=&#32;20)
<anchor xml:id="_inv__mpu_8c_source_1l01333"/>01333 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9aebecb86604e475ed8e2cb68340010ff1">INV_FILTER_20HZ</link>;
<anchor xml:id="_inv__mpu_8c_source_1l01334"/>01334 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(lpf&#32;&gt;=&#32;10)
<anchor xml:id="_inv__mpu_8c_source_1l01335"/>01335 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga91c762a5bd71461f7911dc49ee7696e9a327619f406c6b2f6a221793881013508">INV_FILTER_10HZ</link>;
<anchor xml:id="_inv__mpu_8c_source_1l01336"/>01336 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01337"/>01337 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;=&#32;<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 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>&#32;==&#32;data)
<anchor xml:id="_inv__mpu_8c_source_1l01340"/>01340 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01341"/>01341 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga22eeac0bd77e7d99b3e15dda52f1bd08">lpf</link>,&#32;1,&#32;&amp;data))
<anchor xml:id="_inv__mpu_8c_source_1l01342"/>01342 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01343"/>01343 &#32;&#32;&#32;&#32;<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>&#32;=&#32;data;
<anchor xml:id="_inv__mpu_8c_source_1l01344"/>01344 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga2487dd551b701c1c7ed4d6335f02b2f1">mpu_get_sample_rate</link>(<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;*rate)
<anchor xml:id="_inv__mpu_8c_source_1l01353"/>01353 {
<anchor xml:id="_inv__mpu_8c_source_1l01354"/>01354 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01356"/>01356 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01357"/>01357 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;rate[0]&#32;=&#32;<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 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga0144d666a67a82888b8580002afe8b55">mpu_set_sample_rate</link>(<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;rate)
<anchor xml:id="_inv__mpu_8c_source_1l01368"/>01368 {
<anchor xml:id="_inv__mpu_8c_source_1l01369"/>01369 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;data;
<anchor xml:id="_inv__mpu_8c_source_1l01370"/>01370
<anchor xml:id="_inv__mpu_8c_source_1l01371"/>01371 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!(<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01373"/>01373
<anchor xml:id="_inv__mpu_8c_source_1l01374"/>01374 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01376"/>01376 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01377"/>01377 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01378"/>01378 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(rate&#32;&amp;&amp;&#32;(rate&#32;&lt;=&#32;40))&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01379"/>01379 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Just&#32;stay&#32;in&#32;low-power&#32;accel&#32;mode.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01380"/>01380 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01382"/>01382 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l01383"/>01383 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Requested&#32;rate&#32;exceeds&#32;the&#32;allowed&#32;frequencies&#32;in&#32;LP&#32;accel&#32;mode,</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01384"/>01384 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;*&#32;switch&#32;back&#32;to&#32;full-power&#32;mode.</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01385"/>01385 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01386"/>01386 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l01388"/>01388 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(rate&#32;&lt;&#32;4)
<anchor xml:id="_inv__mpu_8c_source_1l01389"/>01389 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;rate&#32;=&#32;4;
<anchor xml:id="_inv__mpu_8c_source_1l01390"/>01390 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(rate&#32;&gt;&#32;1000)
<anchor xml:id="_inv__mpu_8c_source_1l01391"/>01391 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;rate&#32;=&#32;1000;
<anchor xml:id="_inv__mpu_8c_source_1l01392"/>01392
<anchor xml:id="_inv__mpu_8c_source_1l01393"/>01393 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;=&#32;1000&#32;/&#32;rate&#32;-&#32;1;
<anchor xml:id="_inv__mpu_8c_source_1l01394"/>01394 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga27dd9db31f16ca170520b3009255e6d0">rate_div</link>,&#32;1,&#32;&amp;data))
<anchor xml:id="_inv__mpu_8c_source_1l01395"/>01395 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01396"/>01396
<anchor xml:id="_inv__mpu_8c_source_1l01397"/>01397 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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>&#32;=&#32;1000&#32;/&#32;(1&#32;+&#32;data);
<anchor xml:id="_inv__mpu_8c_source_1l01398"/>01398
<anchor xml:id="_inv__mpu_8c_source_1l01399"/>01399 <emphasis role="preprocessor">#ifdef&#32;AK89xx_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01400"/>01400 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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,&#32;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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Automatically&#32;set&#32;LPF&#32;to&#32;1/2&#32;sampling&#32;rate.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01404"/>01404 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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>&#32;&gt;&gt;&#32;1);
<anchor xml:id="_inv__mpu_8c_source_1l01405"/>01405 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01406"/>01406 &#32;&#32;&#32;&#32;}
<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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gab5a45cd7783f6937788c0decb0b18b16">mpu_get_compass_sample_rate</link>(<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;*rate)
<anchor xml:id="_inv__mpu_8c_source_1l01415"/>01415 {
<anchor xml:id="_inv__mpu_8c_source_1l01416"/>01416 <emphasis role="preprocessor">#ifdef&#32;AK89xx_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01417"/>01417 &#32;&#32;&#32;&#32;rate[0]&#32;=&#32;<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 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01419"/>01419 <emphasis role="preprocessor">#else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01420"/>01420 &#32;&#32;&#32;&#32;rate[0]&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01421"/>01421 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga78da3828de0ef9d080c4d03e7bc45e7b">mpu_set_compass_sample_rate</link>(<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;rate)
<anchor xml:id="_inv__mpu_8c_source_1l01437"/>01437 {
<anchor xml:id="_inv__mpu_8c_source_1l01438"/>01438 <emphasis role="preprocessor">#ifdef&#32;AK89xx_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01439"/>01439 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;div;
<anchor xml:id="_inv__mpu_8c_source_1l01440"/>01440 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!rate&#32;||&#32;rate&#32;&gt;&#32;<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>&#32;||&#32;rate&#32;&gt;&#32;MAX_COMPASS_SAMPLE_RATE)
<anchor xml:id="_inv__mpu_8c_source_1l01441"/>01441 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01442"/>01442
<anchor xml:id="_inv__mpu_8c_source_1l01443"/>01443 &#32;&#32;&#32;&#32;div&#32;=&#32;<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>&#32;/&#32;rate&#32;-&#32;1;
<anchor xml:id="_inv__mpu_8c_source_1l01444"/>01444 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;s4_ctrl,&#32;1,&#32;&amp;div))
<anchor xml:id="_inv__mpu_8c_source_1l01445"/>01445 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01446"/>01446 &#32;&#32;&#32;&#32;<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&#32;=&#32;<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>&#32;/&#32;(div&#32;+&#32;1);
<anchor xml:id="_inv__mpu_8c_source_1l01447"/>01447 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01448"/>01448 <emphasis role="preprocessor">#else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01449"/>01449 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga023c0cc94aa8f162dc33b15048a49421">mpu_get_gyro_sens</link>(<emphasis role="keywordtype">float</emphasis>&#32;*sens)
<anchor xml:id="_inv__mpu_8c_source_1l01459"/>01459 {
<anchor xml:id="_inv__mpu_8c_source_1l01460"/>01460 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">switch</emphasis>&#32;(<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>)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01461"/>01461 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">case</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90a5b8251a49db5cb8a676076b0b308ae35">INV_FSR_250DPS</link>:
<anchor xml:id="_inv__mpu_8c_source_1l01462"/>01462 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;sens[0]&#32;=&#32;131.f;
<anchor xml:id="_inv__mpu_8c_source_1l01463"/>01463 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01464"/>01464 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">case</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90a50901470ff389927fd010081e2b8fd09">INV_FSR_500DPS</link>:
<anchor xml:id="_inv__mpu_8c_source_1l01465"/>01465 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;sens[0]&#32;=&#32;65.5f;
<anchor xml:id="_inv__mpu_8c_source_1l01466"/>01466 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01467"/>01467 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">case</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90aee922e0daa4fbb404c3db6c49d897a13">INV_FSR_1000DPS</link>:
<anchor xml:id="_inv__mpu_8c_source_1l01468"/>01468 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;sens[0]&#32;=&#32;32.8f;
<anchor xml:id="_inv__mpu_8c_source_1l01469"/>01469 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01470"/>01470 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">case</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga83acdc0eb37e8bfe0c2ae2348ded0a90ac0c37efc1c8acd6f70c0c5a768e5b8be">INV_FSR_2000DPS</link>:
<anchor xml:id="_inv__mpu_8c_source_1l01471"/>01471 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;sens[0]&#32;=&#32;16.4f;
<anchor xml:id="_inv__mpu_8c_source_1l01472"/>01472 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01473"/>01473 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">default</emphasis>:
<anchor xml:id="_inv__mpu_8c_source_1l01474"/>01474 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01475"/>01475 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l01476"/>01476 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga620408949052b96e856cad920f856583">mpu_get_accel_sens</link>(<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;*sens)
<anchor xml:id="_inv__mpu_8c_source_1l01485"/>01485 {
<anchor xml:id="_inv__mpu_8c_source_1l01486"/>01486 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">switch</emphasis>&#32;(<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>)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01487"/>01487 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">case</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81eae27c6f69463dab7de81fac0c51ff8aa7">INV_FSR_2G</link>:
<anchor xml:id="_inv__mpu_8c_source_1l01488"/>01488 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;sens[0]&#32;=&#32;16384;
<anchor xml:id="_inv__mpu_8c_source_1l01489"/>01489 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01490"/>01490 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">case</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81eaa91e3a89d0bbd01149fe71148595be6d">INV_FSR_4G</link>:
<anchor xml:id="_inv__mpu_8c_source_1l01491"/>01491 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;sens[0]&#32;=&#32;8092;
<anchor xml:id="_inv__mpu_8c_source_1l01492"/>01492 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01493"/>01493 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">case</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81ea0a40371bdda397d234c53d0ee2f3be8b">INV_FSR_8G</link>:
<anchor xml:id="_inv__mpu_8c_source_1l01494"/>01494 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;sens[0]&#32;=&#32;4096;
<anchor xml:id="_inv__mpu_8c_source_1l01495"/>01495 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01496"/>01496 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">case</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ggaec8501b935143099e5f729dee221a81ea6712e8563c97c11b458ef721d4f5f9d5">INV_FSR_16G</link>:
<anchor xml:id="_inv__mpu_8c_source_1l01497"/>01497 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;sens[0]&#32;=&#32;2048;
<anchor xml:id="_inv__mpu_8c_source_1l01498"/>01498 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01499"/>01499 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">default</emphasis>:
<anchor xml:id="_inv__mpu_8c_source_1l01500"/>01500 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01501"/>01501 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l01502"/>01502 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;sens[0]&#32;&gt;&gt;=&#32;1;
<anchor xml:id="_inv__mpu_8c_source_1l01504"/>01504 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga093f11eb10b2639a4b9fe344ea348c54">mpu_get_fifo_config</link>(<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;*sensors)
<anchor xml:id="_inv__mpu_8c_source_1l01517"/>01517 {
<anchor xml:id="_inv__mpu_8c_source_1l01518"/>01518 &#32;&#32;&#32;&#32;sensors[0]&#32;=&#32;<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 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gababbdda287e1f19323489f90a0889dd7">mpu_configure_fifo</link>(<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;sensors)
<anchor xml:id="_inv__mpu_8c_source_1l01532"/>01532 {
<anchor xml:id="_inv__mpu_8c_source_1l01533"/>01533 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;prev;
<anchor xml:id="_inv__mpu_8c_source_1l01534"/>01534 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">int</emphasis>&#32;result&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01535"/>01535
<anchor xml:id="_inv__mpu_8c_source_1l01536"/>01536 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Compass&#32;data&#32;isn&apos;t&#32;going&#32;into&#32;the&#32;FIFO.&#32;Stop&#32;trying.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01537"/>01537 &#32;&#32;&#32;&#32;sensors&#32;&amp;=&#32;~INV_XYZ_COMPASS;
<anchor xml:id="_inv__mpu_8c_source_1l01538"/>01538
<anchor xml:id="_inv__mpu_8c_source_1l01539"/>01539 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01541"/>01541 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01542"/>01542 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!(<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01544"/>01544 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;prev&#32;=&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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>&#32;=&#32;sensors&#32;&amp;&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>&#32;!=&#32;sensors)
<anchor xml:id="_inv__mpu_8c_source_1l01547"/>01547 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;You&apos;re&#32;not&#32;getting&#32;what&#32;you&#32;asked&#32;for.&#32;Some&#32;sensors&#32;are</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01548"/>01548 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;*&#32;asleep.</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01549"/>01549 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01550"/>01550 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;result&#32;=&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01551"/>01551 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01552"/>01552 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;result&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01553"/>01553 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(sensors&#32;||&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01556"/>01556 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(sensors)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01558"/>01558 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<link linkend="_group___d_r_i_v_e_r_s_1gaf23e9f57c0059be6ec57862f0584de10">mpu_reset_fifo</link>())&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01559"/>01559 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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>&#32;=&#32;prev;
<anchor xml:id="_inv__mpu_8c_source_1l01560"/>01560 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01561"/>01561 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l01562"/>01562 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l01563"/>01563 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l01564"/>01564
<anchor xml:id="_inv__mpu_8c_source_1l01565"/>01565 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gaec8fa7a067988d174516bb735a4a0bc9">mpu_get_power_state</link>(<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;*power_on)
<anchor xml:id="_inv__mpu_8c_source_1l01574"/>01574 {
<anchor xml:id="_inv__mpu_8c_source_1l01575"/>01575 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;power_on[0]&#32;=&#32;1;
<anchor xml:id="_inv__mpu_8c_source_1l01577"/>01577 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01578"/>01578 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;power_on[0]&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01579"/>01579 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga6e77e7cc1cf6be5e8fdf617c5b4586d1">mpu_set_sensors</link>(<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;sensors)
<anchor xml:id="_inv__mpu_8c_source_1l01593"/>01593 {
<anchor xml:id="_inv__mpu_8c_source_1l01594"/>01594 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;data;
<anchor xml:id="_inv__mpu_8c_source_1l01595"/>01595 <emphasis role="preprocessor">#ifdef&#32;AK89xx_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01596"/>01596 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;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 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(sensors&#32;&amp;&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga3fdc30f9c0a26c2c4e2bb88921f91629">INV_XYZ_GYRO</link>)
<anchor xml:id="_inv__mpu_8c_source_1l01600"/>01600 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga75570f009627c6f4ddfb2d936d81e207a01b240917a78674d3e387110a6a8f94c">INV_CLK_PLL</link>;
<anchor xml:id="_inv__mpu_8c_source_1l01601"/>01601 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(sensors)
<anchor xml:id="_inv__mpu_8c_source_1l01602"/>01602 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01603"/>01603 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01604"/>01604 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga1fed8bd436e9b7dfccb1cae99ca89103">BIT_SLEEP</link>;
<anchor xml:id="_inv__mpu_8c_source_1l01605"/>01605 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gaa01fb0872030e8e2932f8d1d257ea86a">pwr_mgmt_1</link>,&#32;1,&#32;&amp;data))&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01606"/>01606 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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>&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01607"/>01607 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01608"/>01608 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l01609"/>01609 &#32;&#32;&#32;&#32;<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>&#32;=&#32;data&#32;&amp;&#32;~BIT_SLEEP;
<anchor xml:id="_inv__mpu_8c_source_1l01610"/>01610
<anchor xml:id="_inv__mpu_8c_source_1l01611"/>01611 &#32;&#32;&#32;&#32;data&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01612"/>01612 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!(sensors&#32;&amp;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gabf02bf28541421d59f8be764f2b95407">INV_X_GYRO</link>))
<anchor xml:id="_inv__mpu_8c_source_1l01613"/>01613 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;|=&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga82256fedeffe5b2443ab3ae34cf032d9">BIT_STBY_XG</link>;
<anchor xml:id="_inv__mpu_8c_source_1l01614"/>01614 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!(sensors&#32;&amp;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gacdd8ff833a34dba08ca2aa145eb92b44">INV_Y_GYRO</link>))
<anchor xml:id="_inv__mpu_8c_source_1l01615"/>01615 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;|=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gabf1c0a844906a5e887a659971a4af417">BIT_STBY_YG</link>;
<anchor xml:id="_inv__mpu_8c_source_1l01616"/>01616 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!(sensors&#32;&amp;&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga50205b5cc6089b33b2561c854eb8b0fd">INV_Z_GYRO</link>))
<anchor xml:id="_inv__mpu_8c_source_1l01617"/>01617 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;|=&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga30967a4efdf3c3f1e39814e72a4168b0">BIT_STBY_ZG</link>;
<anchor xml:id="_inv__mpu_8c_source_1l01618"/>01618 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!(sensors&#32;&amp;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gaa03f025a17ed491e70b88274e89c75c5">INV_XYZ_ACCEL</link>))
<anchor xml:id="_inv__mpu_8c_source_1l01619"/>01619 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;|=&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga04a57159e34387dafe9b86b171c4654c">BIT_STBY_XYZA</link>;
<anchor xml:id="_inv__mpu_8c_source_1l01620"/>01620 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga3e378b0c77e9529ee93ac6eba11e1031">pwr_mgmt_2</link>,&#32;1,&#32;&amp;data))&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01621"/>01621 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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>&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01622"/>01622 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01623"/>01623 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l01624"/>01624
<anchor xml:id="_inv__mpu_8c_source_1l01625"/>01625 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(sensors&#32;&amp;&amp;&#32;(sensors&#32;!=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gaa03f025a17ed491e70b88274e89c75c5">INV_XYZ_ACCEL</link>))
<anchor xml:id="_inv__mpu_8c_source_1l01626"/>01626 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Latched&#32;interrupts&#32;only&#32;used&#32;in&#32;LP&#32;accel&#32;mode.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01627"/>01627 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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&#32;AK89xx_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01630"/>01630 <emphasis role="preprocessor">#ifdef&#32;AK89xx_BYPASS</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01631"/>01631 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(sensors&#32;&amp;&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga7fc9c1dbdcb2ac8cc2a4128a5799482a">INV_XYZ_COMPASS</link>)
<anchor xml:id="_inv__mpu_8c_source_1l01632"/>01632 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01634"/>01634 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga12505a7d8cd7c976e5571f27a6160d23">user_ctrl</link>,&#32;1,&#32;&amp;user_ctrl))
<anchor xml:id="_inv__mpu_8c_source_1l01637"/>01637 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01638"/>01638 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Handle&#32;AKM&#32;power&#32;management.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01639"/>01639 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(sensors&#32;&amp;&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga7fc9c1dbdcb2ac8cc2a4128a5799482a">INV_XYZ_COMPASS</link>)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01640"/>01640 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;=&#32;AKM_SINGLE_MEASUREMENT;
<anchor xml:id="_inv__mpu_8c_source_1l01641"/>01641 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;user_ctrl&#32;|=&#32;<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 &#32;&#32;&#32;&#32;}&#32;<emphasis role="keywordflow">else</emphasis>&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01643"/>01643 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data&#32;=&#32;AKM_POWER_DOWN;
<anchor xml:id="_inv__mpu_8c_source_1l01644"/>01644 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;user_ctrl&#32;&amp;=&#32;~BIT_AUX_IF_EN;
<anchor xml:id="_inv__mpu_8c_source_1l01645"/>01645 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l01646"/>01646 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;user_ctrl&#32;|=&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga02c3e9ddd63128f1c3cf50bf1e9b5fe6">BIT_DMP_EN</link>;
<anchor xml:id="_inv__mpu_8c_source_1l01648"/>01648 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01649"/>01649 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;user_ctrl&#32;&amp;=&#32;~BIT_DMP_EN;
<anchor xml:id="_inv__mpu_8c_source_1l01650"/>01650 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;s1_do,&#32;1,&#32;&amp;data))
<anchor xml:id="_inv__mpu_8c_source_1l01651"/>01651 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01652"/>01652 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Enable/disable&#32;I2C&#32;master&#32;mode.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01653"/>01653 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga12505a7d8cd7c976e5571f27a6160d23">user_ctrl</link>,&#32;1,&#32;&amp;user_ctrl))
<anchor xml:id="_inv__mpu_8c_source_1l01654"/>01654 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-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 &#32;&#32;&#32;&#32;<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>&#32;=&#32;sensors;
<anchor xml:id="_inv__mpu_8c_source_1l01659"/>01659 &#32;&#32;&#32;&#32;<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>&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01660"/>01660 &#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gae36aca5baf9b6b7d74992aef00686d67">delay_ms</link>(50);
<anchor xml:id="_inv__mpu_8c_source_1l01661"/>01661 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga0afd02d8c76d3278b488ef7038c26e3e">mpu_get_int_status</link>(<emphasis role="keywordtype">short</emphasis>&#32;*status)
<anchor xml:id="_inv__mpu_8c_source_1l01670"/>01670 {
<anchor xml:id="_inv__mpu_8c_source_1l01671"/>01671 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;tmp[2];
<anchor xml:id="_inv__mpu_8c_source_1l01672"/>01672 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01674"/>01674 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gaea6ad456241786750b3f211bc92032eb">dmp_int_status</link>,&#32;2,&#32;tmp))
<anchor xml:id="_inv__mpu_8c_source_1l01675"/>01675 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01676"/>01676 &#32;&#32;&#32;&#32;status[0]&#32;=&#32;(tmp[0]&#32;&lt;&lt;&#32;8)&#32;|&#32;tmp[1];
<anchor xml:id="_inv__mpu_8c_source_1l01677"/>01677 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga2da20453aafbbba4a0f6fb9fbdd25572">mpu_read_fifo</link>(<emphasis role="keywordtype">short</emphasis>&#32;*gyro,&#32;<emphasis role="keywordtype">short</emphasis>&#32;*accel,&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">long</emphasis>&#32;*timestamp,
<anchor xml:id="_inv__mpu_8c_source_1l01699"/>01699 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;*sensors,&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;*more)
<anchor xml:id="_inv__mpu_8c_source_1l01700"/>01700 {
<anchor xml:id="_inv__mpu_8c_source_1l01701"/>01701 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Assumes&#32;maximum&#32;packet&#32;size&#32;is&#32;gyro&#32;(6)&#32;+&#32;accel&#32;(6).&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01702"/>01702 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;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 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;packet_size&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01704"/>01704 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;fifo_count,&#32;index&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01705"/>01705
<anchor xml:id="_inv__mpu_8c_source_1l01706"/>01706 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01708"/>01708
<anchor xml:id="_inv__mpu_8c_source_1l01709"/>01709 &#32;&#32;&#32;&#32;sensors[0]&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01710"/>01710 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01712"/>01712 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01714"/>01714
<anchor xml:id="_inv__mpu_8c_source_1l01715"/>01715 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>&#32;&amp;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gabf02bf28541421d59f8be764f2b95407">INV_X_GYRO</link>)
<anchor xml:id="_inv__mpu_8c_source_1l01716"/>01716 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;packet_size&#32;+=&#32;2;
<anchor xml:id="_inv__mpu_8c_source_1l01717"/>01717 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>&#32;&amp;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gacdd8ff833a34dba08ca2aa145eb92b44">INV_Y_GYRO</link>)
<anchor xml:id="_inv__mpu_8c_source_1l01718"/>01718 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;packet_size&#32;+=&#32;2;
<anchor xml:id="_inv__mpu_8c_source_1l01719"/>01719 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>&#32;&amp;&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga50205b5cc6089b33b2561c854eb8b0fd">INV_Z_GYRO</link>)
<anchor xml:id="_inv__mpu_8c_source_1l01720"/>01720 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;packet_size&#32;+=&#32;2;
<anchor xml:id="_inv__mpu_8c_source_1l01721"/>01721 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>&#32;&amp;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gaa03f025a17ed491e70b88274e89c75c5">INV_XYZ_ACCEL</link>)
<anchor xml:id="_inv__mpu_8c_source_1l01722"/>01722 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;packet_size&#32;+=&#32;6;
<anchor xml:id="_inv__mpu_8c_source_1l01723"/>01723
<anchor xml:id="_inv__mpu_8c_source_1l01724"/>01724 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gab7503974d62cf9c2d688579fcd1abd48">fifo_count_h</link>,&#32;2,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l01725"/>01725 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01726"/>01726 &#32;&#32;&#32;&#32;fifo_count&#32;=&#32;(data[0]&#32;&lt;&lt;&#32;8)&#32;|&#32;data[1];
<anchor xml:id="_inv__mpu_8c_source_1l01727"/>01727 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(fifo_count&#32;&lt;&#32;packet_size)
<anchor xml:id="_inv__mpu_8c_source_1l01728"/>01728 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01729"/>01729 <emphasis role="comment">//&#32;&#32;&#32;&#32;log_i(&quot;FIFO&#32;count:&#32;%hd\n&quot;,&#32;fifo_count);</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01730"/>01730 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(fifo_count&#32;&gt;&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga5f77e9f55285abb4d214b80281f69c1f">max_fifo</link>&#32;&gt;&gt;&#32;1))&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01731"/>01731 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;FIFO&#32;is&#32;50%&#32;full,&#32;better&#32;check&#32;overflow&#32;bit.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01732"/>01732 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga837724080c34ff5a190751427febaf91">int_status</link>,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l01733"/>01733 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01734"/>01734 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(data[0]&#32;&amp;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gafb9b49ce5dd973b3c29ae72680924fa7">BIT_FIFO_OVERFLOW</link>)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01735"/>01735 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gaf23e9f57c0059be6ec57862f0584de10">mpu_reset_fifo</link>();
<anchor xml:id="_inv__mpu_8c_source_1l01736"/>01736 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-2;
<anchor xml:id="_inv__mpu_8c_source_1l01737"/>01737 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l01738"/>01738 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l01739"/>01739 &#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga3e6b6bc6d1cd2956353a31bfadd3c332">get_ms</link>((<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">long</emphasis>*)timestamp);
<anchor xml:id="_inv__mpu_8c_source_1l01740"/>01740
<anchor xml:id="_inv__mpu_8c_source_1l01741"/>01741 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb6763dc5f368ea01ef7c733cea9dab4">fifo_r_w</link>,&#32;packet_size,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l01742"/>01742 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01743"/>01743 &#32;&#32;&#32;&#32;more[0]&#32;=&#32;fifo_count&#32;/&#32;packet_size&#32;-&#32;1;
<anchor xml:id="_inv__mpu_8c_source_1l01744"/>01744 &#32;&#32;&#32;&#32;sensors[0]&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01745"/>01745
<anchor xml:id="_inv__mpu_8c_source_1l01746"/>01746 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;((index&#32;!=&#32;packet_size)&#32;&amp;&amp;&#32;<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>&#32;&amp;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gaa03f025a17ed491e70b88274e89c75c5">INV_XYZ_ACCEL</link>)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01747"/>01747 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;accel[0]&#32;=&#32;(data[index+0]&#32;&lt;&lt;&#32;8)&#32;|&#32;data[index+1];
<anchor xml:id="_inv__mpu_8c_source_1l01748"/>01748 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;accel[1]&#32;=&#32;(data[index+2]&#32;&lt;&lt;&#32;8)&#32;|&#32;data[index+3];
<anchor xml:id="_inv__mpu_8c_source_1l01749"/>01749 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;accel[2]&#32;=&#32;(data[index+4]&#32;&lt;&lt;&#32;8)&#32;|&#32;data[index+5];
<anchor xml:id="_inv__mpu_8c_source_1l01750"/>01750 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;sensors[0]&#32;|=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gaa03f025a17ed491e70b88274e89c75c5">INV_XYZ_ACCEL</link>;
<anchor xml:id="_inv__mpu_8c_source_1l01751"/>01751 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;index&#32;+=&#32;6;
<anchor xml:id="_inv__mpu_8c_source_1l01752"/>01752 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l01753"/>01753 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;((index&#32;!=&#32;packet_size)&#32;&amp;&amp;&#32;<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>&#32;&amp;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gabf02bf28541421d59f8be764f2b95407">INV_X_GYRO</link>)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01754"/>01754 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;gyro[0]&#32;=&#32;(data[index+0]&#32;&lt;&lt;&#32;8)&#32;|&#32;data[index+1];
<anchor xml:id="_inv__mpu_8c_source_1l01755"/>01755 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;sensors[0]&#32;|=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gabf02bf28541421d59f8be764f2b95407">INV_X_GYRO</link>;
<anchor xml:id="_inv__mpu_8c_source_1l01756"/>01756 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;index&#32;+=&#32;2;
<anchor xml:id="_inv__mpu_8c_source_1l01757"/>01757 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l01758"/>01758 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;((index&#32;!=&#32;packet_size)&#32;&amp;&amp;&#32;<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>&#32;&amp;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gacdd8ff833a34dba08ca2aa145eb92b44">INV_Y_GYRO</link>)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01759"/>01759 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;gyro[1]&#32;=&#32;(data[index+0]&#32;&lt;&lt;&#32;8)&#32;|&#32;data[index+1];
<anchor xml:id="_inv__mpu_8c_source_1l01760"/>01760 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;sensors[0]&#32;|=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gacdd8ff833a34dba08ca2aa145eb92b44">INV_Y_GYRO</link>;
<anchor xml:id="_inv__mpu_8c_source_1l01761"/>01761 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;index&#32;+=&#32;2;
<anchor xml:id="_inv__mpu_8c_source_1l01762"/>01762 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l01763"/>01763 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;((index&#32;!=&#32;packet_size)&#32;&amp;&amp;&#32;<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>&#32;&amp;&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga50205b5cc6089b33b2561c854eb8b0fd">INV_Z_GYRO</link>)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01764"/>01764 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;gyro[2]&#32;=&#32;(data[index+0]&#32;&lt;&lt;&#32;8)&#32;|&#32;data[index+1];
<anchor xml:id="_inv__mpu_8c_source_1l01765"/>01765 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;sensors[0]&#32;|=&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga50205b5cc6089b33b2561c854eb8b0fd">INV_Z_GYRO</link>;
<anchor xml:id="_inv__mpu_8c_source_1l01766"/>01766 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;index&#32;+=&#32;2;
<anchor xml:id="_inv__mpu_8c_source_1l01767"/>01767 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l01768"/>01768
<anchor xml:id="_inv__mpu_8c_source_1l01769"/>01769 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga13593044949b460e9f571eb57e9a0788">mpu_read_fifo_stream</link>(<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;length,&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;*data,
<anchor xml:id="_inv__mpu_8c_source_1l01780"/>01780 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;*more)
<anchor xml:id="_inv__mpu_8c_source_1l01781"/>01781 {
<anchor xml:id="_inv__mpu_8c_source_1l01782"/>01782 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;tmp[2];
<anchor xml:id="_inv__mpu_8c_source_1l01783"/>01783 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;fifo_count;
<anchor xml:id="_inv__mpu_8c_source_1l01784"/>01784 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01786"/>01786 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01788"/>01788
<anchor xml:id="_inv__mpu_8c_source_1l01789"/>01789 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gab7503974d62cf9c2d688579fcd1abd48">fifo_count_h</link>,&#32;2,&#32;tmp))
<anchor xml:id="_inv__mpu_8c_source_1l01790"/>01790 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01791"/>01791 &#32;&#32;&#32;&#32;fifo_count&#32;=&#32;(tmp[0]&#32;&lt;&lt;&#32;8)&#32;|&#32;tmp[1];
<anchor xml:id="_inv__mpu_8c_source_1l01792"/>01792 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(fifo_count&#32;&lt;&#32;length)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01793"/>01793 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;more[0]&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01794"/>01794 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01795"/>01795 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l01796"/>01796 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(fifo_count&#32;&gt;&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga5f77e9f55285abb4d214b80281f69c1f">max_fifo</link>&#32;&gt;&gt;&#32;1))&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01797"/>01797 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;FIFO&#32;is&#32;50%&#32;full,&#32;better&#32;check&#32;overflow&#32;bit.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01798"/>01798 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga837724080c34ff5a190751427febaf91">int_status</link>,&#32;1,&#32;tmp))
<anchor xml:id="_inv__mpu_8c_source_1l01799"/>01799 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01800"/>01800 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(tmp[0]&#32;&amp;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gafb9b49ce5dd973b3c29ae72680924fa7">BIT_FIFO_OVERFLOW</link>)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01801"/>01801 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gaf23e9f57c0059be6ec57862f0584de10">mpu_reset_fifo</link>();
<anchor xml:id="_inv__mpu_8c_source_1l01802"/>01802 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-2;
<anchor xml:id="_inv__mpu_8c_source_1l01803"/>01803 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l01804"/>01804 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l01805"/>01805
<anchor xml:id="_inv__mpu_8c_source_1l01806"/>01806 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb6763dc5f368ea01ef7c733cea9dab4">fifo_r_w</link>,&#32;length,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l01807"/>01807 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01808"/>01808 &#32;&#32;&#32;&#32;more[0]&#32;=&#32;fifo_count&#32;/&#32;length&#32;-&#32;1;
<anchor xml:id="_inv__mpu_8c_source_1l01809"/>01809 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga36f70f38371b48d81094d3b061233e15">mpu_set_bypass</link>(<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;bypass_on)
<anchor xml:id="_inv__mpu_8c_source_1l01818"/>01818 {
<anchor xml:id="_inv__mpu_8c_source_1l01819"/>01819 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;tmp;
<anchor xml:id="_inv__mpu_8c_source_1l01820"/>01820
<anchor xml:id="_inv__mpu_8c_source_1l01821"/>01821 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>&#32;==&#32;bypass_on)
<anchor xml:id="_inv__mpu_8c_source_1l01822"/>01822 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01823"/>01823
<anchor xml:id="_inv__mpu_8c_source_1l01824"/>01824 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(bypass_on)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01825"/>01825 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga12505a7d8cd7c976e5571f27a6160d23">user_ctrl</link>,&#32;1,&#32;&amp;tmp))
<anchor xml:id="_inv__mpu_8c_source_1l01826"/>01826 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01827"/>01827 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp&#32;&amp;=&#32;~BIT_AUX_IF_EN;
<anchor xml:id="_inv__mpu_8c_source_1l01828"/>01828 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga12505a7d8cd7c976e5571f27a6160d23">user_ctrl</link>,&#32;1,&#32;&amp;tmp))
<anchor xml:id="_inv__mpu_8c_source_1l01829"/>01829 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01830"/>01830 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gae36aca5baf9b6b7d74992aef00686d67">delay_ms</link>(3);
<anchor xml:id="_inv__mpu_8c_source_1l01831"/>01831 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gadd12a8d89e1a4c4e008b12a96dd4c75d">BIT_BYPASS_EN</link>;
<anchor xml:id="_inv__mpu_8c_source_1l01832"/>01832 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp&#32;|=&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga8467782bedc44051c95643e303543655">BIT_ACTL</link>;
<anchor xml:id="_inv__mpu_8c_source_1l01834"/>01834 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp&#32;|=&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga588b5a95724c4a68c6868faa78fd3a7f">BIT_LATCH_EN</link>&#32;|&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gaae7bdbff2a1029245890b555b2d8d519">int_pin_cfg</link>,&#32;1,&#32;&amp;tmp))
<anchor xml:id="_inv__mpu_8c_source_1l01837"/>01837 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01838"/>01838 &#32;&#32;&#32;&#32;}&#32;<emphasis role="keywordflow">else</emphasis>&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01839"/>01839 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Enable&#32;I2C&#32;master&#32;mode&#32;if&#32;compass&#32;is&#32;being&#32;used.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01840"/>01840 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga12505a7d8cd7c976e5571f27a6160d23">user_ctrl</link>,&#32;1,&#32;&amp;tmp))
<anchor xml:id="_inv__mpu_8c_source_1l01841"/>01841 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01842"/>01842 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>&#32;&amp;&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga7fc9c1dbdcb2ac8cc2a4128a5799482a">INV_XYZ_COMPASS</link>)
<anchor xml:id="_inv__mpu_8c_source_1l01843"/>01843 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp&#32;|=&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01845"/>01845 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp&#32;&amp;=&#32;~BIT_AUX_IF_EN;
<anchor xml:id="_inv__mpu_8c_source_1l01846"/>01846 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga12505a7d8cd7c976e5571f27a6160d23">user_ctrl</link>,&#32;1,&#32;&amp;tmp))
<anchor xml:id="_inv__mpu_8c_source_1l01847"/>01847 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01848"/>01848 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gae36aca5baf9b6b7d74992aef00686d67">delay_ms</link>(3);
<anchor xml:id="_inv__mpu_8c_source_1l01849"/>01849 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga8467782bedc44051c95643e303543655">BIT_ACTL</link>;
<anchor xml:id="_inv__mpu_8c_source_1l01851"/>01851 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01852"/>01852 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01853"/>01853 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp&#32;|=&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga588b5a95724c4a68c6868faa78fd3a7f">BIT_LATCH_EN</link>&#32;|&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gaae7bdbff2a1029245890b555b2d8d519">int_pin_cfg</link>,&#32;1,&#32;&amp;tmp))
<anchor xml:id="_inv__mpu_8c_source_1l01856"/>01856 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01857"/>01857 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l01858"/>01858 &#32;&#32;&#32;&#32;<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>&#32;=&#32;bypass_on;
<anchor xml:id="_inv__mpu_8c_source_1l01859"/>01859 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gacc92fb1489ef32a04bcb6b0ebde4d657">mpu_set_int_level</link>(<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;active_low)
<anchor xml:id="_inv__mpu_8c_source_1l01868"/>01868 {
<anchor xml:id="_inv__mpu_8c_source_1l01869"/>01869 &#32;&#32;&#32;&#32;<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>&#32;=&#32;active_low;
<anchor xml:id="_inv__mpu_8c_source_1l01870"/>01870 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga653cb855300bff9285ce4b8dca6a503b">mpu_set_int_latched</link>(<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;enable)
<anchor xml:id="_inv__mpu_8c_source_1l01880"/>01880 {
<anchor xml:id="_inv__mpu_8c_source_1l01881"/>01881 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;tmp;
<anchor xml:id="_inv__mpu_8c_source_1l01882"/>01882 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>&#32;==&#32;enable)
<anchor xml:id="_inv__mpu_8c_source_1l01883"/>01883 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01884"/>01884
<anchor xml:id="_inv__mpu_8c_source_1l01885"/>01885 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(enable)
<anchor xml:id="_inv__mpu_8c_source_1l01886"/>01886 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga588b5a95724c4a68c6868faa78fd3a7f">BIT_LATCH_EN</link>&#32;|&#32;<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 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01888"/>01888 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01889"/>01889 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp&#32;|=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gadd12a8d89e1a4c4e008b12a96dd4c75d">BIT_BYPASS_EN</link>;
<anchor xml:id="_inv__mpu_8c_source_1l01891"/>01891 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp&#32;|=&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga8467782bedc44051c95643e303543655">BIT_ACTL</link>;
<anchor xml:id="_inv__mpu_8c_source_1l01893"/>01893 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gaae7bdbff2a1029245890b555b2d8d519">int_pin_cfg</link>,&#32;1,&#32;&amp;tmp))
<anchor xml:id="_inv__mpu_8c_source_1l01894"/>01894 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l01895"/>01895 &#32;&#32;&#32;&#32;<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>&#32;=&#32;enable;
<anchor xml:id="_inv__mpu_8c_source_1l01896"/>01896 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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&#32;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>&#32;<emphasis role="keywordtype">int</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gab7ebbe13328466605a20f6ce1a106de8">get_accel_prod_shift</link>(<emphasis role="keywordtype">float</emphasis>&#32;*st_shift)
<anchor xml:id="_inv__mpu_8c_source_1l01901"/>01901 {
<anchor xml:id="_inv__mpu_8c_source_1l01902"/>01902 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;tmp[4],&#32;shift_code[3],&#32;ii;
<anchor xml:id="_inv__mpu_8c_source_1l01903"/>01903
<anchor xml:id="_inv__mpu_8c_source_1l01904"/>01904 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;0x0D,&#32;4,&#32;tmp))
<anchor xml:id="_inv__mpu_8c_source_1l01905"/>01905 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;0x07;
<anchor xml:id="_inv__mpu_8c_source_1l01906"/>01906
<anchor xml:id="_inv__mpu_8c_source_1l01907"/>01907 &#32;&#32;&#32;&#32;shift_code[0]&#32;=&#32;((tmp[0]&#32;&amp;&#32;0xE0)&#32;&gt;&gt;&#32;3)&#32;|&#32;((tmp[3]&#32;&amp;&#32;0x30)&#32;&gt;&gt;&#32;4);
<anchor xml:id="_inv__mpu_8c_source_1l01908"/>01908 &#32;&#32;&#32;&#32;shift_code[1]&#32;=&#32;((tmp[1]&#32;&amp;&#32;0xE0)&#32;&gt;&gt;&#32;3)&#32;|&#32;((tmp[3]&#32;&amp;&#32;0x0C)&#32;&gt;&gt;&#32;2);
<anchor xml:id="_inv__mpu_8c_source_1l01909"/>01909 &#32;&#32;&#32;&#32;shift_code[2]&#32;=&#32;((tmp[2]&#32;&amp;&#32;0xE0)&#32;&gt;&gt;&#32;3)&#32;|&#32;(tmp[3]&#32;&amp;&#32;0x03);
<anchor xml:id="_inv__mpu_8c_source_1l01910"/>01910 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">for</emphasis>&#32;(ii&#32;=&#32;0;&#32;ii&#32;&lt;&#32;3;&#32;ii++)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01911"/>01911 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!shift_code[ii])&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01912"/>01912 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;st_shift[ii]&#32;=&#32;0.f;
<anchor xml:id="_inv__mpu_8c_source_1l01913"/>01913 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">continue</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l01914"/>01914 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l01915"/>01915 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Equivalent&#32;to..</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01916"/>01916 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;*&#32;st_shift[ii]&#32;=&#32;0.34f&#32;*&#32;powf(0.92f/0.34f,&#32;(shift_code[ii]-1)&#32;/&#32;30.f)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01917"/>01917 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01918"/>01918 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;st_shift[ii]&#32;=&#32;0.34f;
<anchor xml:id="_inv__mpu_8c_source_1l01919"/>01919 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">while</emphasis>&#32;(--shift_code[ii])
<anchor xml:id="_inv__mpu_8c_source_1l01920"/>01920 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;st_shift[ii]&#32;*=&#32;1.034f;
<anchor xml:id="_inv__mpu_8c_source_1l01921"/>01921 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l01922"/>01922 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<emphasis role="keywordtype">int</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gaab48ddb3bd05cea3f0fc85a68db9934d">accel_self_test</link>(<emphasis role="keywordtype">long</emphasis>&#32;*bias_regular,&#32;<emphasis role="keywordtype">long</emphasis>&#32;*bias_st)
<anchor xml:id="_inv__mpu_8c_source_1l01926"/>01926 {
<anchor xml:id="_inv__mpu_8c_source_1l01927"/>01927 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">int</emphasis>&#32;jj,&#32;result&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01928"/>01928 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">float</emphasis>&#32;st_shift[3],&#32;st_shift_cust,&#32;st_shift_var;
<anchor xml:id="_inv__mpu_8c_source_1l01929"/>01929
<anchor xml:id="_inv__mpu_8c_source_1l01930"/>01930 &#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">for</emphasis>(jj&#32;=&#32;0;&#32;jj&#32;&lt;&#32;3;&#32;jj++)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01932"/>01932 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;st_shift_cust&#32;=&#32;labs(bias_regular[jj]&#32;-&#32;bias_st[jj])&#32;/&#32;65536.f;
<anchor xml:id="_inv__mpu_8c_source_1l01933"/>01933 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(st_shift[jj])&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01934"/>01934 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;st_shift_var&#32;=&#32;st_shift_cust&#32;/&#32;st_shift[jj]&#32;-&#32;1.f;
<anchor xml:id="_inv__mpu_8c_source_1l01935"/>01935 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<link linkend="_group___d_r_i_v_e_r_s_1ga95bcc5f260df5ce993730008a1dcb45a">fabs</link>(st_shift_var)&#32;&gt;&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;result&#32;|=&#32;1&#32;&lt;&lt;&#32;jj;
<anchor xml:id="_inv__mpu_8c_source_1l01937"/>01937 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;((st_shift_cust&#32;&lt;&#32;<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>)&#32;||
<anchor xml:id="_inv__mpu_8c_source_1l01938"/>01938 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(st_shift_cust&#32;&gt;&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;result&#32;|=&#32;1&#32;&lt;&lt;&#32;jj;
<anchor xml:id="_inv__mpu_8c_source_1l01940"/>01940 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l01941"/>01941
<anchor xml:id="_inv__mpu_8c_source_1l01942"/>01942 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<emphasis role="keywordtype">int</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga267d6f443d5be8b2a7a06aa007116f7a">gyro_self_test</link>(<emphasis role="keywordtype">long</emphasis>&#32;*bias_regular,&#32;<emphasis role="keywordtype">long</emphasis>&#32;*bias_st)
<anchor xml:id="_inv__mpu_8c_source_1l01946"/>01946 {
<anchor xml:id="_inv__mpu_8c_source_1l01947"/>01947 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">int</emphasis>&#32;jj,&#32;result&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l01948"/>01948 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;tmp[3];
<anchor xml:id="_inv__mpu_8c_source_1l01949"/>01949 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">float</emphasis>&#32;st_shift,&#32;st_shift_cust,&#32;st_shift_var;
<anchor xml:id="_inv__mpu_8c_source_1l01950"/>01950
<anchor xml:id="_inv__mpu_8c_source_1l01951"/>01951 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;0x0D,&#32;3,&#32;tmp))
<anchor xml:id="_inv__mpu_8c_source_1l01952"/>01952 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;0x07;
<anchor xml:id="_inv__mpu_8c_source_1l01953"/>01953
<anchor xml:id="_inv__mpu_8c_source_1l01954"/>01954 &#32;&#32;&#32;&#32;tmp[0]&#32;&amp;=&#32;0x1F;
<anchor xml:id="_inv__mpu_8c_source_1l01955"/>01955 &#32;&#32;&#32;&#32;tmp[1]&#32;&amp;=&#32;0x1F;
<anchor xml:id="_inv__mpu_8c_source_1l01956"/>01956 &#32;&#32;&#32;&#32;tmp[2]&#32;&amp;=&#32;0x1F;
<anchor xml:id="_inv__mpu_8c_source_1l01957"/>01957
<anchor xml:id="_inv__mpu_8c_source_1l01958"/>01958 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">for</emphasis>&#32;(jj&#32;=&#32;0;&#32;jj&#32;&lt;&#32;3;&#32;jj++)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01959"/>01959 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;st_shift_cust&#32;=&#32;labs(bias_regular[jj]&#32;-&#32;bias_st[jj])&#32;/&#32;65536.f;
<anchor xml:id="_inv__mpu_8c_source_1l01960"/>01960 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(tmp[jj])&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01961"/>01961 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;st_shift&#32;=&#32;3275.f&#32;/&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">while</emphasis>&#32;(--tmp[jj])
<anchor xml:id="_inv__mpu_8c_source_1l01963"/>01963 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;st_shift&#32;*=&#32;1.046f;
<anchor xml:id="_inv__mpu_8c_source_1l01964"/>01964 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;st_shift_var&#32;=&#32;st_shift_cust&#32;/&#32;st_shift&#32;-&#32;1.f;
<anchor xml:id="_inv__mpu_8c_source_1l01965"/>01965 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<link linkend="_group___d_r_i_v_e_r_s_1ga95bcc5f260df5ce993730008a1dcb45a">fabs</link>(st_shift_var)&#32;&gt;&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;result&#32;|=&#32;1&#32;&lt;&lt;&#32;jj;
<anchor xml:id="_inv__mpu_8c_source_1l01967"/>01967 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;((st_shift_cust&#32;&lt;&#32;<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>)&#32;||
<anchor xml:id="_inv__mpu_8c_source_1l01968"/>01968 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;(st_shift_cust&#32;&gt;&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;result&#32;|=&#32;1&#32;&lt;&lt;&#32;jj;
<anchor xml:id="_inv__mpu_8c_source_1l01970"/>01970 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l01971"/>01971 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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&#32;AK89xx_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l01975"/>01975 <emphasis role="keyword">static</emphasis>&#32;<emphasis role="keywordtype">int</emphasis>&#32;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 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;tmp[6];
<anchor xml:id="_inv__mpu_8c_source_1l01978"/>01978 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;tries&#32;=&#32;10;
<anchor xml:id="_inv__mpu_8c_source_1l01979"/>01979 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">int</emphasis>&#32;result&#32;=&#32;0x07;
<anchor xml:id="_inv__mpu_8c_source_1l01980"/>01980 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">short</emphasis>&#32;data;
<anchor xml:id="_inv__mpu_8c_source_1l01981"/>01981
<anchor xml:id="_inv__mpu_8c_source_1l01982"/>01982 &#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;tmp[0]&#32;=&#32;AKM_POWER_DOWN;
<anchor xml:id="_inv__mpu_8c_source_1l01985"/>01985 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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,&#32;AKM_REG_CNTL,&#32;1,&#32;tmp))
<anchor xml:id="_inv__mpu_8c_source_1l01986"/>01986 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;0x07;
<anchor xml:id="_inv__mpu_8c_source_1l01987"/>01987 &#32;&#32;&#32;&#32;tmp[0]&#32;=&#32;AKM_BIT_SELF_TEST;
<anchor xml:id="_inv__mpu_8c_source_1l01988"/>01988 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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,&#32;AKM_REG_ASTC,&#32;1,&#32;tmp))
<anchor xml:id="_inv__mpu_8c_source_1l01989"/>01989 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">goto</emphasis>&#32;AKM_restore;
<anchor xml:id="_inv__mpu_8c_source_1l01990"/>01990 &#32;&#32;&#32;&#32;tmp[0]&#32;=&#32;AKM_MODE_SELF_TEST;
<anchor xml:id="_inv__mpu_8c_source_1l01991"/>01991 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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,&#32;AKM_REG_CNTL,&#32;1,&#32;tmp))
<anchor xml:id="_inv__mpu_8c_source_1l01992"/>01992 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">goto</emphasis>&#32;AKM_restore;
<anchor xml:id="_inv__mpu_8c_source_1l01993"/>01993
<anchor xml:id="_inv__mpu_8c_source_1l01994"/>01994 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">do</emphasis>&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l01995"/>01995 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gae36aca5baf9b6b7d74992aef00686d67">delay_ms</link>(10);
<anchor xml:id="_inv__mpu_8c_source_1l01996"/>01996 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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,&#32;AKM_REG_ST1,&#32;1,&#32;tmp))
<anchor xml:id="_inv__mpu_8c_source_1l01997"/>01997 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">goto</emphasis>&#32;AKM_restore;
<anchor xml:id="_inv__mpu_8c_source_1l01998"/>01998 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(tmp[0]&#32;&amp;&#32;AKM_DATA_READY)
<anchor xml:id="_inv__mpu_8c_source_1l01999"/>01999 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l02000"/>02000 &#32;&#32;&#32;&#32;}&#32;<emphasis role="keywordflow">while</emphasis>&#32;(tries--);
<anchor xml:id="_inv__mpu_8c_source_1l02001"/>02001 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!(tmp[0]&#32;&amp;&#32;AKM_DATA_READY))
<anchor xml:id="_inv__mpu_8c_source_1l02002"/>02002 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">goto</emphasis>&#32;AKM_restore;
<anchor xml:id="_inv__mpu_8c_source_1l02003"/>02003
<anchor xml:id="_inv__mpu_8c_source_1l02004"/>02004 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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,&#32;AKM_REG_HXL,&#32;6,&#32;tmp))
<anchor xml:id="_inv__mpu_8c_source_1l02005"/>02005 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">goto</emphasis>&#32;AKM_restore;
<anchor xml:id="_inv__mpu_8c_source_1l02006"/>02006
<anchor xml:id="_inv__mpu_8c_source_1l02007"/>02007 &#32;&#32;&#32;&#32;result&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l02008"/>02008 &#32;&#32;&#32;&#32;data&#32;=&#32;(short)(tmp[1]&#32;&lt;&lt;&#32;8)&#32;|&#32;tmp[0];
<anchor xml:id="_inv__mpu_8c_source_1l02009"/>02009 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;((data&#32;&gt;&#32;100)&#32;||&#32;(data&#32;&lt;&#32;-100))
<anchor xml:id="_inv__mpu_8c_source_1l02010"/>02010 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;result&#32;|=&#32;0x01;
<anchor xml:id="_inv__mpu_8c_source_1l02011"/>02011 &#32;&#32;&#32;&#32;data&#32;=&#32;(short)(tmp[3]&#32;&lt;&lt;&#32;8)&#32;|&#32;tmp[2];
<anchor xml:id="_inv__mpu_8c_source_1l02012"/>02012 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;((data&#32;&gt;&#32;100)&#32;||&#32;(data&#32;&lt;&#32;-100))
<anchor xml:id="_inv__mpu_8c_source_1l02013"/>02013 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;result&#32;|=&#32;0x02;
<anchor xml:id="_inv__mpu_8c_source_1l02014"/>02014 &#32;&#32;&#32;&#32;data&#32;=&#32;(short)(tmp[5]&#32;&lt;&lt;&#32;8)&#32;|&#32;tmp[4];
<anchor xml:id="_inv__mpu_8c_source_1l02015"/>02015 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;((data&#32;&gt;&#32;-300)&#32;||&#32;(data&#32;&lt;&#32;-1000))
<anchor xml:id="_inv__mpu_8c_source_1l02016"/>02016 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;result&#32;|=&#32;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 &#32;&#32;&#32;&#32;tmp[0]&#32;=&#32;0&#32;|&#32;SUPPORTS_AK89xx_HIGH_SENS;
<anchor xml:id="_inv__mpu_8c_source_1l02020"/>02020 &#32;&#32;&#32;&#32;<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,&#32;AKM_REG_ASTC,&#32;1,&#32;tmp);
<anchor xml:id="_inv__mpu_8c_source_1l02021"/>02021 &#32;&#32;&#32;&#32;tmp[0]&#32;=&#32;SUPPORTS_AK89xx_HIGH_SENS;
<anchor xml:id="_inv__mpu_8c_source_1l02022"/>02022 &#32;&#32;&#32;&#32;<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,&#32;AKM_REG_CNTL,&#32;1,&#32;tmp);
<anchor xml:id="_inv__mpu_8c_source_1l02023"/>02023 &#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<emphasis role="keywordtype">int</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga8d087842b07e9710be2267adea4b497a">get_st_biases</link>(<emphasis role="keywordtype">long</emphasis>&#32;*gyro,&#32;<emphasis role="keywordtype">long</emphasis>&#32;*accel,&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;hw_test)
<anchor xml:id="_inv__mpu_8c_source_1l02030"/>02030 {
<anchor xml:id="_inv__mpu_8c_source_1l02031"/>02031 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;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 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;packet_count,&#32;ii;
<anchor xml:id="_inv__mpu_8c_source_1l02033"/>02033 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;fifo_count;
<anchor xml:id="_inv__mpu_8c_source_1l02034"/>02034
<anchor xml:id="_inv__mpu_8c_source_1l02035"/>02035 &#32;&#32;&#32;&#32;data[0]&#32;=&#32;0x01;
<anchor xml:id="_inv__mpu_8c_source_1l02036"/>02036 &#32;&#32;&#32;&#32;data[1]&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l02037"/>02037 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gaa01fb0872030e8e2932f8d1d257ea86a">pwr_mgmt_1</link>,&#32;2,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02038"/>02038 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02039"/>02039 &#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gae36aca5baf9b6b7d74992aef00686d67">delay_ms</link>(200);
<anchor xml:id="_inv__mpu_8c_source_1l02040"/>02040 &#32;&#32;&#32;&#32;data[0]&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l02041"/>02041 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga48b47844d4b0570e60aa6806faa59eae">int_enable</link>,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02042"/>02042 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02043"/>02043 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga6a392b7ecae843c734db3d832f11af49">fifo_en</link>,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02044"/>02044 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02045"/>02045 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gaa01fb0872030e8e2932f8d1d257ea86a">pwr_mgmt_1</link>,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02046"/>02046 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02047"/>02047 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga2bf6dc826bcb17168013f303c904544b">i2c_mst</link>,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02048"/>02048 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02049"/>02049 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga12505a7d8cd7c976e5571f27a6160d23">user_ctrl</link>,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02050"/>02050 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02051"/>02051 &#32;&#32;&#32;&#32;data[0]&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gaeae2cc64314ad05f3a93d2358a2369db">BIT_FIFO_RST</link>&#32;|&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga37d5ceb74c3568e4bab6dcdd0afaa95b">BIT_DMP_RST</link>;
<anchor xml:id="_inv__mpu_8c_source_1l02052"/>02052 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga12505a7d8cd7c976e5571f27a6160d23">user_ctrl</link>,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02053"/>02053 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02054"/>02054 &#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gae36aca5baf9b6b7d74992aef00686d67">delay_ms</link>(15);
<anchor xml:id="_inv__mpu_8c_source_1l02055"/>02055 &#32;&#32;&#32;&#32;data[0]&#32;=&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga09f5a9ab86d36f3b83e7f4abdea73e39">reg_lpf</link>;
<anchor xml:id="_inv__mpu_8c_source_1l02056"/>02056 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga22eeac0bd77e7d99b3e15dda52f1bd08">lpf</link>,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02057"/>02057 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02058"/>02058 &#32;&#32;&#32;&#32;data[0]&#32;=&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga3bef0c9f009cea4cbe01d0ee91126d83">reg_rate_div</link>;
<anchor xml:id="_inv__mpu_8c_source_1l02059"/>02059 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga27dd9db31f16ca170520b3009255e6d0">rate_div</link>,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02060"/>02060 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02061"/>02061 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(hw_test)
<anchor xml:id="_inv__mpu_8c_source_1l02062"/>02062 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data[0]&#32;=&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gaa0dfe8b2c29358e9e045aaa8beff244d">reg_gyro_fsr</link>&#32;|&#32;0xE0;
<anchor xml:id="_inv__mpu_8c_source_1l02063"/>02063 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02064"/>02064 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data[0]&#32;=&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gaa0dfe8b2c29358e9e045aaa8beff244d">reg_gyro_fsr</link>;
<anchor xml:id="_inv__mpu_8c_source_1l02065"/>02065 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gada0b973f74cc874552f079fd58c435a6">gyro_cfg</link>,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02066"/>02066 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02067"/>02067
<anchor xml:id="_inv__mpu_8c_source_1l02068"/>02068 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(hw_test)
<anchor xml:id="_inv__mpu_8c_source_1l02069"/>02069 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data[0]&#32;=&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga3b54f67ea7f1dd47fd8aa48dda051032">reg_accel_fsr</link>&#32;|&#32;0xE0;
<anchor xml:id="_inv__mpu_8c_source_1l02070"/>02070 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02071"/>02071 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data[0]&#32;=&#32;<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 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gae93a446c54cc00bc7f11209d7af0025e">accel_cfg</link>,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02073"/>02073 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02074"/>02074 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(hw_test)
<anchor xml:id="_inv__mpu_8c_source_1l02075"/>02075 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Fill&#32;FIFO&#32;for&#32;test.wait_ms&#32;milliseconds.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02078"/>02078 &#32;&#32;&#32;&#32;data[0]&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gae3c4a18accb84992faaf2534a84a147c">BIT_FIFO_EN</link>;
<anchor xml:id="_inv__mpu_8c_source_1l02079"/>02079 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga12505a7d8cd7c976e5571f27a6160d23">user_ctrl</link>,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02080"/>02080 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02081"/>02081
<anchor xml:id="_inv__mpu_8c_source_1l02082"/>02082 &#32;&#32;&#32;&#32;data[0]&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga3fdc30f9c0a26c2c4e2bb88921f91629">INV_XYZ_GYRO</link>&#32;|&#32;<link linkend="_group___d_r_i_v_e_r_s_1gaa03f025a17ed491e70b88274e89c75c5">INV_XYZ_ACCEL</link>;
<anchor xml:id="_inv__mpu_8c_source_1l02083"/>02083 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga6a392b7ecae843c734db3d832f11af49">fifo_en</link>,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02084"/>02084 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02085"/>02085 &#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;data[0]&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l02087"/>02087 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga6a392b7ecae843c734db3d832f11af49">fifo_en</link>,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02088"/>02088 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02089"/>02089
<anchor xml:id="_inv__mpu_8c_source_1l02090"/>02090 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gab7503974d62cf9c2d688579fcd1abd48">fifo_count_h</link>,&#32;2,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02091"/>02091 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02092"/>02092
<anchor xml:id="_inv__mpu_8c_source_1l02093"/>02093 &#32;&#32;&#32;&#32;fifo_count&#32;=&#32;(data[0]&#32;&lt;&lt;&#32;8)&#32;|&#32;data[1];
<anchor xml:id="_inv__mpu_8c_source_1l02094"/>02094 &#32;&#32;&#32;&#32;packet_count&#32;=&#32;fifo_count&#32;/&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga973c680573b37fc359fc68d0707da355">MAX_PACKET_LENGTH</link>;
<anchor xml:id="_inv__mpu_8c_source_1l02095"/>02095 &#32;&#32;&#32;&#32;gyro[0]&#32;=&#32;gyro[1]&#32;=&#32;gyro[2]&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l02096"/>02096 &#32;&#32;&#32;&#32;accel[0]&#32;=&#32;accel[1]&#32;=&#32;accel[2]&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l02097"/>02097
<anchor xml:id="_inv__mpu_8c_source_1l02098"/>02098 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">for</emphasis>&#32;(ii&#32;=&#32;0;&#32;ii&#32;&lt;&#32;packet_count;&#32;ii++)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l02099"/>02099 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordtype">short</emphasis>&#32;accel_cur[3],&#32;gyro_cur[3];
<anchor xml:id="_inv__mpu_8c_source_1l02100"/>02100 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb6763dc5f368ea01ef7c733cea9dab4">fifo_r_w</link>,&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga973c680573b37fc359fc68d0707da355">MAX_PACKET_LENGTH</link>,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02101"/>02101 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02102"/>02102 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;accel_cur[0]&#32;=&#32;((short)data[0]&#32;&lt;&lt;&#32;8)&#32;|&#32;data[1];
<anchor xml:id="_inv__mpu_8c_source_1l02103"/>02103 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;accel_cur[1]&#32;=&#32;((short)data[2]&#32;&lt;&lt;&#32;8)&#32;|&#32;data[3];
<anchor xml:id="_inv__mpu_8c_source_1l02104"/>02104 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;accel_cur[2]&#32;=&#32;((short)data[4]&#32;&lt;&lt;&#32;8)&#32;|&#32;data[5];
<anchor xml:id="_inv__mpu_8c_source_1l02105"/>02105 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;accel[0]&#32;+=&#32;(long)accel_cur[0];
<anchor xml:id="_inv__mpu_8c_source_1l02106"/>02106 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;accel[1]&#32;+=&#32;(long)accel_cur[1];
<anchor xml:id="_inv__mpu_8c_source_1l02107"/>02107 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;accel[2]&#32;+=&#32;(long)accel_cur[2];
<anchor xml:id="_inv__mpu_8c_source_1l02108"/>02108 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;gyro_cur[0]&#32;=&#32;(((short)data[6]&#32;&lt;&lt;&#32;8)&#32;|&#32;data[7]);
<anchor xml:id="_inv__mpu_8c_source_1l02109"/>02109 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;gyro_cur[1]&#32;=&#32;(((short)data[8]&#32;&lt;&lt;&#32;8)&#32;|&#32;data[9]);
<anchor xml:id="_inv__mpu_8c_source_1l02110"/>02110 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;gyro_cur[2]&#32;=&#32;(((short)data[10]&#32;&lt;&lt;&#32;8)&#32;|&#32;data[11]);
<anchor xml:id="_inv__mpu_8c_source_1l02111"/>02111 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;gyro[0]&#32;+=&#32;(long)gyro_cur[0];
<anchor xml:id="_inv__mpu_8c_source_1l02112"/>02112 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;gyro[1]&#32;+=&#32;(long)gyro_cur[1];
<anchor xml:id="_inv__mpu_8c_source_1l02113"/>02113 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;gyro[2]&#32;+=&#32;(long)gyro_cur[2];
<anchor xml:id="_inv__mpu_8c_source_1l02114"/>02114 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l02115"/>02115 <emphasis role="preprocessor">#ifdef&#32;EMPL_NO_64BIT</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02116"/>02116 &#32;&#32;&#32;&#32;gyro[0]&#32;=&#32;(long)(((<emphasis role="keywordtype">float</emphasis>)gyro[0]*65536.f)&#32;/&#32;<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>&#32;/&#32;packet_count);
<anchor xml:id="_inv__mpu_8c_source_1l02117"/>02117 &#32;&#32;&#32;&#32;gyro[1]&#32;=&#32;(long)(((<emphasis role="keywordtype">float</emphasis>)gyro[1]*65536.f)&#32;/&#32;<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>&#32;/&#32;packet_count);
<anchor xml:id="_inv__mpu_8c_source_1l02118"/>02118 &#32;&#32;&#32;&#32;gyro[2]&#32;=&#32;(long)(((<emphasis role="keywordtype">float</emphasis>)gyro[2]*65536.f)&#32;/&#32;<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>&#32;/&#32;packet_count);
<anchor xml:id="_inv__mpu_8c_source_1l02119"/>02119 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(has_accel)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l02120"/>02120 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;accel[0]&#32;=&#32;(long)(((<emphasis role="keywordtype">float</emphasis>)accel[0]*65536.f)&#32;/&#32;<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>&#32;/
<anchor xml:id="_inv__mpu_8c_source_1l02121"/>02121 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;packet_count);
<anchor xml:id="_inv__mpu_8c_source_1l02122"/>02122 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;accel[1]&#32;=&#32;(long)(((<emphasis role="keywordtype">float</emphasis>)accel[1]*65536.f)&#32;/&#32;<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>&#32;/
<anchor xml:id="_inv__mpu_8c_source_1l02123"/>02123 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;packet_count);
<anchor xml:id="_inv__mpu_8c_source_1l02124"/>02124 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;accel[2]&#32;=&#32;(long)(((<emphasis role="keywordtype">float</emphasis>)accel[2]*65536.f)&#32;/&#32;<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>&#32;/
<anchor xml:id="_inv__mpu_8c_source_1l02125"/>02125 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;packet_count);
<anchor xml:id="_inv__mpu_8c_source_1l02126"/>02126 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Don&apos;t&#32;remove&#32;gravity!&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02127"/>02127 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;accel[2]&#32;-=&#32;65536L;
<anchor xml:id="_inv__mpu_8c_source_1l02128"/>02128 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l02129"/>02129 <emphasis role="preprocessor">#else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02130"/>02130 &#32;&#32;&#32;&#32;gyro[0]&#32;=&#32;(long)(((<emphasis role="keywordtype">long</emphasis>&#32;<emphasis role="keywordtype">long</emphasis>)gyro[0]&lt;&lt;16)&#32;/&#32;<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>&#32;/&#32;packet_count);
<anchor xml:id="_inv__mpu_8c_source_1l02131"/>02131 &#32;&#32;&#32;&#32;gyro[1]&#32;=&#32;(long)(((<emphasis role="keywordtype">long</emphasis>&#32;<emphasis role="keywordtype">long</emphasis>)gyro[1]&lt;&lt;16)&#32;/&#32;<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>&#32;/&#32;packet_count);
<anchor xml:id="_inv__mpu_8c_source_1l02132"/>02132 &#32;&#32;&#32;&#32;gyro[2]&#32;=&#32;(long)(((<emphasis role="keywordtype">long</emphasis>&#32;<emphasis role="keywordtype">long</emphasis>)gyro[2]&lt;&lt;16)&#32;/&#32;<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>&#32;/&#32;packet_count);
<anchor xml:id="_inv__mpu_8c_source_1l02133"/>02133 &#32;&#32;&#32;&#32;accel[0]&#32;=&#32;(long)(((<emphasis role="keywordtype">long</emphasis>&#32;<emphasis role="keywordtype">long</emphasis>)accel[0]&lt;&lt;16)&#32;/&#32;<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>&#32;/
<anchor xml:id="_inv__mpu_8c_source_1l02134"/>02134 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;packet_count);
<anchor xml:id="_inv__mpu_8c_source_1l02135"/>02135 &#32;&#32;&#32;&#32;accel[1]&#32;=&#32;(long)(((<emphasis role="keywordtype">long</emphasis>&#32;<emphasis role="keywordtype">long</emphasis>)accel[1]&lt;&lt;16)&#32;/&#32;<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>&#32;/
<anchor xml:id="_inv__mpu_8c_source_1l02136"/>02136 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;packet_count);
<anchor xml:id="_inv__mpu_8c_source_1l02137"/>02137 &#32;&#32;&#32;&#32;accel[2]&#32;=&#32;(long)(((<emphasis role="keywordtype">long</emphasis>&#32;<emphasis role="keywordtype">long</emphasis>)accel[2]&lt;&lt;16)&#32;/&#32;<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>&#32;/
<anchor xml:id="_inv__mpu_8c_source_1l02138"/>02138 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;packet_count);
<anchor xml:id="_inv__mpu_8c_source_1l02139"/>02139 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Don&apos;t&#32;remove&#32;gravity!&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02140"/>02140 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(accel[2]&#32;&gt;&#32;0L)
<anchor xml:id="_inv__mpu_8c_source_1l02141"/>02141 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;accel[2]&#32;-=&#32;65536L;
<anchor xml:id="_inv__mpu_8c_source_1l02142"/>02142 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02143"/>02143 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;accel[2]&#32;+=&#32;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 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga3773dc98eb1ba15da0091ae75abcf62f">mpu_run_self_test</link>(<emphasis role="keywordtype">long</emphasis>&#32;*gyro,&#32;<emphasis role="keywordtype">long</emphasis>&#32;*accel)
<anchor xml:id="_inv__mpu_8c_source_1l02170"/>02170 {
<anchor xml:id="_inv__mpu_8c_source_1l02171"/>02171 <emphasis role="preprocessor">#ifdef&#32;MPU6050</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02172"/>02172 &#32;&#32;&#32;&#32;<emphasis role="keyword">const</emphasis>&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;tries&#32;=&#32;2;
<anchor xml:id="_inv__mpu_8c_source_1l02173"/>02173 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">long</emphasis>&#32;gyro_st[3],&#32;accel_st[3];
<anchor xml:id="_inv__mpu_8c_source_1l02174"/>02174 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;accel_result,&#32;gyro_result;
<anchor xml:id="_inv__mpu_8c_source_1l02175"/>02175 <emphasis role="preprocessor">#ifdef&#32;AK89xx_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02176"/>02176 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;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 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">int</emphasis>&#32;ii;
<anchor xml:id="_inv__mpu_8c_source_1l02179"/>02179 <emphasis role="preprocessor">#endif</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02180"/>02180 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">int</emphasis>&#32;result;
<anchor xml:id="_inv__mpu_8c_source_1l02181"/>02181 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;accel_fsr,&#32;fifo_sensors,&#32;sensors_on;
<anchor xml:id="_inv__mpu_8c_source_1l02182"/>02182 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;gyro_fsr,&#32;sample_rate,&#32;lpf;
<anchor xml:id="_inv__mpu_8c_source_1l02183"/>02183 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;dmp_was_on;
<anchor xml:id="_inv__mpu_8c_source_1l02184"/>02184
<anchor xml:id="_inv__mpu_8c_source_1l02185"/>02185 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l02186"/>02186 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;dmp_was_on&#32;=&#32;1;
<anchor xml:id="_inv__mpu_8c_source_1l02188"/>02188 &#32;&#32;&#32;&#32;}&#32;<emphasis role="keywordflow">else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02189"/>02189 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;dmp_was_on&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l02190"/>02190
<anchor xml:id="_inv__mpu_8c_source_1l02191"/>02191 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Get&#32;initial&#32;settings.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02192"/>02192 &#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gaf973c32c73ba912ff512aab948fc31ca">mpu_get_gyro_fsr</link>(&amp;gyro_fsr);
<anchor xml:id="_inv__mpu_8c_source_1l02193"/>02193 &#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gab6087a15ee23db23b6aec41590329a60">mpu_get_accel_fsr</link>(&amp;accel_fsr);
<anchor xml:id="_inv__mpu_8c_source_1l02194"/>02194 &#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gaa95c7e216dcb2d888e9796001ca555f8">mpu_get_lpf</link>(&amp;lpf);
<anchor xml:id="_inv__mpu_8c_source_1l02195"/>02195 &#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga2487dd551b701c1c7ed4d6335f02b2f1">mpu_get_sample_rate</link>(&amp;sample_rate);
<anchor xml:id="_inv__mpu_8c_source_1l02196"/>02196 &#32;&#32;&#32;&#32;sensors_on&#32;=&#32;<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 &#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga093f11eb10b2639a4b9fe344ea348c54">mpu_get_fifo_config</link>(&amp;fifo_sensors);
<anchor xml:id="_inv__mpu_8c_source_1l02198"/>02198
<anchor xml:id="_inv__mpu_8c_source_1l02199"/>02199 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;For&#32;older&#32;chips,&#32;the&#32;self-test&#32;will&#32;be&#32;different.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02200"/>02200 <emphasis role="preprocessor">#if&#32;defined&#32;MPU6050</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02201"/>02201 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">for</emphasis>&#32;(ii&#32;=&#32;0;&#32;ii&#32;&lt;&#32;tries;&#32;ii++)
<anchor xml:id="_inv__mpu_8c_source_1l02202"/>02202 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!<link linkend="_group___d_r_i_v_e_r_s_1ga8d087842b07e9710be2267adea4b497a">get_st_biases</link>(gyro,&#32;accel,&#32;0))
<anchor xml:id="_inv__mpu_8c_source_1l02203"/>02203 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l02204"/>02204 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(ii&#32;==&#32;tries)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l02205"/>02205 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;If&#32;we&#32;reach&#32;this&#32;point,&#32;we&#32;most&#32;likely&#32;encountered&#32;an&#32;I2C&#32;error.</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02206"/>02206 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;*&#32;We&apos;ll&#32;just&#32;report&#32;an&#32;error&#32;for&#32;all&#32;three&#32;sensors.</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02207"/>02207 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02208"/>02208 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;result&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l02209"/>02209 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">goto</emphasis>&#32;restore;
<anchor xml:id="_inv__mpu_8c_source_1l02210"/>02210 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l02211"/>02211 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">for</emphasis>&#32;(ii&#32;=&#32;0;&#32;ii&#32;&lt;&#32;tries;&#32;ii++)
<anchor xml:id="_inv__mpu_8c_source_1l02212"/>02212 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!<link linkend="_group___d_r_i_v_e_r_s_1ga8d087842b07e9710be2267adea4b497a">get_st_biases</link>(gyro_st,&#32;accel_st,&#32;1))
<anchor xml:id="_inv__mpu_8c_source_1l02213"/>02213 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l02214"/>02214 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(ii&#32;==&#32;tries)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l02215"/>02215 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Again,&#32;probably&#32;an&#32;I2C&#32;error.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02216"/>02216 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;result&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l02217"/>02217 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">goto</emphasis>&#32;restore;
<anchor xml:id="_inv__mpu_8c_source_1l02218"/>02218 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l02219"/>02219 &#32;&#32;&#32;&#32;accel_result&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gaab48ddb3bd05cea3f0fc85a68db9934d">accel_self_test</link>(accel,&#32;accel_st);
<anchor xml:id="_inv__mpu_8c_source_1l02220"/>02220 &#32;&#32;&#32;&#32;gyro_result&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga267d6f443d5be8b2a7a06aa007116f7a">gyro_self_test</link>(gyro,&#32;gyro_st);
<anchor xml:id="_inv__mpu_8c_source_1l02221"/>02221
<anchor xml:id="_inv__mpu_8c_source_1l02222"/>02222 &#32;&#32;&#32;&#32;result&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l02223"/>02223 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!gyro_result)
<anchor xml:id="_inv__mpu_8c_source_1l02224"/>02224 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;result&#32;|=&#32;0x01;
<anchor xml:id="_inv__mpu_8c_source_1l02225"/>02225 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!accel_result)
<anchor xml:id="_inv__mpu_8c_source_1l02226"/>02226 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;result&#32;|=&#32;0x02;
<anchor xml:id="_inv__mpu_8c_source_1l02227"/>02227
<anchor xml:id="_inv__mpu_8c_source_1l02228"/>02228 <emphasis role="preprocessor">#ifdef&#32;AK89xx_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02229"/>02229 &#32;&#32;&#32;&#32;compass_result&#32;=&#32;compass_self_test();
<anchor xml:id="_inv__mpu_8c_source_1l02230"/>02230 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!compass_result)
<anchor xml:id="_inv__mpu_8c_source_1l02231"/>02231 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;result&#32;|=&#32;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&#32;defined&#32;MPU6500</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02235"/>02235 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;For&#32;now,&#32;this&#32;function&#32;will&#32;return&#32;a&#32;&quot;pass&quot;&#32;result&#32;for&#32;all&#32;three&#32;sensors</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02236"/>02236 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;*&#32;for&#32;compatibility&#32;with&#32;current&#32;test&#32;applications.</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02237"/>02237 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02238"/>02238 &#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga8d087842b07e9710be2267adea4b497a">get_st_biases</link>(gyro,&#32;accel,&#32;0);
<anchor xml:id="_inv__mpu_8c_source_1l02239"/>02239 &#32;&#32;&#32;&#32;result&#32;=&#32;0x7;
<anchor xml:id="_inv__mpu_8c_source_1l02240"/>02240 <emphasis role="preprocessor">#endif</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02241"/>02241 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Set&#32;to&#32;invalid&#32;values&#32;to&#32;ensure&#32;no&#32;I2C&#32;writes&#32;are&#32;skipped.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02242"/>02242 &#32;&#32;&#32;&#32;<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>&#32;=&#32;0xFF;
<anchor xml:id="_inv__mpu_8c_source_1l02243"/>02243 &#32;&#32;&#32;&#32;<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>&#32;=&#32;0xFF;
<anchor xml:id="_inv__mpu_8c_source_1l02244"/>02244 &#32;&#32;&#32;&#32;<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>&#32;=&#32;0xFF;
<anchor xml:id="_inv__mpu_8c_source_1l02245"/>02245 &#32;&#32;&#32;&#32;<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>&#32;=&#32;0xFFFF;
<anchor xml:id="_inv__mpu_8c_source_1l02246"/>02246 &#32;&#32;&#32;&#32;<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>&#32;=&#32;0xFF;
<anchor xml:id="_inv__mpu_8c_source_1l02247"/>02247 &#32;&#32;&#32;&#32;<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>&#32;=&#32;0xFF;
<anchor xml:id="_inv__mpu_8c_source_1l02248"/>02248 &#32;&#32;&#32;&#32;<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>&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga75570f009627c6f4ddfb2d936d81e207a01b240917a78674d3e387110a6a8f94c">INV_CLK_PLL</link>;
<anchor xml:id="_inv__mpu_8c_source_1l02249"/>02249 &#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(dmp_was_on)
<anchor xml:id="_inv__mpu_8c_source_1l02257"/>02257 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gafea59910bc3dd30ba3356b1c75213a5f">mpu_write_mem</link>(<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;mem_addr,&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;length,
<anchor xml:id="_inv__mpu_8c_source_1l02272"/>02272 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;*data)
<anchor xml:id="_inv__mpu_8c_source_1l02273"/>02273 {
<anchor xml:id="_inv__mpu_8c_source_1l02274"/>02274 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;tmp[2];
<anchor xml:id="_inv__mpu_8c_source_1l02275"/>02275
<anchor xml:id="_inv__mpu_8c_source_1l02276"/>02276 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!data)
<anchor xml:id="_inv__mpu_8c_source_1l02277"/>02277 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02278"/>02278 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02280"/>02280
<anchor xml:id="_inv__mpu_8c_source_1l02281"/>02281 &#32;&#32;&#32;&#32;tmp[0]&#32;=&#32;(<emphasis role="keywordtype">unsigned</emphasis>&#32;char)(mem_addr&#32;&gt;&gt;&#32;8);
<anchor xml:id="_inv__mpu_8c_source_1l02282"/>02282 &#32;&#32;&#32;&#32;tmp[1]&#32;=&#32;(<emphasis role="keywordtype">unsigned</emphasis>&#32;char)(mem_addr&#32;&amp;&#32;0xFF);
<anchor xml:id="_inv__mpu_8c_source_1l02283"/>02283
<anchor xml:id="_inv__mpu_8c_source_1l02284"/>02284 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Check&#32;bank&#32;boundaries.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02285"/>02285 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(tmp[1]&#32;+&#32;length&#32;&gt;&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gaef4a2014cd6e3d5faeb8f713ee3606ed">bank_size</link>)
<anchor xml:id="_inv__mpu_8c_source_1l02286"/>02286 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02287"/>02287
<anchor xml:id="_inv__mpu_8c_source_1l02288"/>02288 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gaf1b74c33fa828ea4dc172bfbaaf47216">bank_sel</link>,&#32;2,&#32;tmp))
<anchor xml:id="_inv__mpu_8c_source_1l02289"/>02289 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02290"/>02290 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gae17166b43fa12a960c0eced9a3c04bf0">mem_r_w</link>,&#32;length,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02291"/>02291 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02292"/>02292 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga3374bececb6743893c9eab27645c1182">mpu_read_mem</link>(<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;mem_addr,&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;length,
<anchor xml:id="_inv__mpu_8c_source_1l02305"/>02305 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;*data)
<anchor xml:id="_inv__mpu_8c_source_1l02306"/>02306 {
<anchor xml:id="_inv__mpu_8c_source_1l02307"/>02307 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;tmp[2];
<anchor xml:id="_inv__mpu_8c_source_1l02308"/>02308
<anchor xml:id="_inv__mpu_8c_source_1l02309"/>02309 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!data)
<anchor xml:id="_inv__mpu_8c_source_1l02310"/>02310 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02311"/>02311 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02313"/>02313
<anchor xml:id="_inv__mpu_8c_source_1l02314"/>02314 &#32;&#32;&#32;&#32;tmp[0]&#32;=&#32;(<emphasis role="keywordtype">unsigned</emphasis>&#32;char)(mem_addr&#32;&gt;&gt;&#32;8);
<anchor xml:id="_inv__mpu_8c_source_1l02315"/>02315 &#32;&#32;&#32;&#32;tmp[1]&#32;=&#32;(<emphasis role="keywordtype">unsigned</emphasis>&#32;char)(mem_addr&#32;&amp;&#32;0xFF);
<anchor xml:id="_inv__mpu_8c_source_1l02316"/>02316
<anchor xml:id="_inv__mpu_8c_source_1l02317"/>02317 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Check&#32;bank&#32;boundaries.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02318"/>02318 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(tmp[1]&#32;+&#32;length&#32;&gt;&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gaef4a2014cd6e3d5faeb8f713ee3606ed">bank_size</link>)
<anchor xml:id="_inv__mpu_8c_source_1l02319"/>02319 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02320"/>02320
<anchor xml:id="_inv__mpu_8c_source_1l02321"/>02321 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gaf1b74c33fa828ea4dc172bfbaaf47216">bank_sel</link>,&#32;2,&#32;tmp))
<anchor xml:id="_inv__mpu_8c_source_1l02322"/>02322 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02323"/>02323 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gae17166b43fa12a960c0eced9a3c04bf0">mem_r_w</link>,&#32;length,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02324"/>02324 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02325"/>02325 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga8fbdfe1a50285d4ab438e29c2efc70f5">mpu_load_firmware</link>(<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;length,&#32;<emphasis role="keyword">const</emphasis>&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;*firmware,
<anchor xml:id="_inv__mpu_8c_source_1l02337"/>02337 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;start_addr,&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;sample_rate)
<anchor xml:id="_inv__mpu_8c_source_1l02338"/>02338 {
<anchor xml:id="_inv__mpu_8c_source_1l02339"/>02339 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;ii;
<anchor xml:id="_inv__mpu_8c_source_1l02340"/>02340 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;this_write;
<anchor xml:id="_inv__mpu_8c_source_1l02341"/>02341 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Must&#32;divide&#32;evenly&#32;into&#32;st.hw-&gt;bank_size&#32;to&#32;avoid&#32;bank&#32;crossings.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02342"/>02342 <emphasis role="preprocessor">#define&#32;LOAD_CHUNK&#32;&#32;(16)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02343"/>02343 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;cur[<link linkend="_inv__mpu_8c_1a7750730ae7e5c713b619e347d44185fe">LOAD_CHUNK</link>],&#32;tmp[2];
<anchor xml:id="_inv__mpu_8c_source_1l02344"/>02344
<anchor xml:id="_inv__mpu_8c_source_1l02345"/>02345 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;DMP&#32;should&#32;only&#32;be&#32;loaded&#32;once.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02347"/>02347 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02348"/>02348
<anchor xml:id="_inv__mpu_8c_source_1l02349"/>02349 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!firmware)
<anchor xml:id="_inv__mpu_8c_source_1l02350"/>02350 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02351"/>02351 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">for</emphasis>&#32;(ii&#32;=&#32;0;&#32;ii&#32;&lt;&#32;length;&#32;ii&#32;+=&#32;this_write)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l02352"/>02352 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;this_write&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gac6afabdc09a49a433ee19d8a9486056d">min</link>(<link linkend="_inv__mpu_8c_1a7750730ae7e5c713b619e347d44185fe">LOAD_CHUNK</link>,&#32;length&#32;-&#32;ii);
<anchor xml:id="_inv__mpu_8c_source_1l02353"/>02353 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<link linkend="_group___d_r_i_v_e_r_s_1gafea59910bc3dd30ba3356b1c75213a5f">mpu_write_mem</link>(ii,&#32;this_write,&#32;(<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>*)&amp;firmware[ii]))
<anchor xml:id="_inv__mpu_8c_source_1l02354"/>02354 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02355"/>02355 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<link linkend="_group___d_r_i_v_e_r_s_1ga3374bececb6743893c9eab27645c1182">mpu_read_mem</link>(ii,&#32;this_write,&#32;cur))
<anchor xml:id="_inv__mpu_8c_source_1l02356"/>02356 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02357"/>02357 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(memcmp(firmware+ii,&#32;cur,&#32;this_write))
<anchor xml:id="_inv__mpu_8c_source_1l02358"/>02358 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-2;
<anchor xml:id="_inv__mpu_8c_source_1l02359"/>02359 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l02360"/>02360
<anchor xml:id="_inv__mpu_8c_source_1l02361"/>02361 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Set&#32;program&#32;start&#32;address.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02362"/>02362 &#32;&#32;&#32;&#32;tmp[0]&#32;=&#32;start_addr&#32;&gt;&gt;&#32;8;
<anchor xml:id="_inv__mpu_8c_source_1l02363"/>02363 &#32;&#32;&#32;&#32;tmp[1]&#32;=&#32;start_addr&#32;&amp;&#32;0xFF;
<anchor xml:id="_inv__mpu_8c_source_1l02364"/>02364 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gaac4aac12b0e82272affd408b24dc9c95">prgm_start_h</link>,&#32;2,&#32;tmp))
<anchor xml:id="_inv__mpu_8c_source_1l02365"/>02365 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02366"/>02366
<anchor xml:id="_inv__mpu_8c_source_1l02367"/>02367 &#32;&#32;&#32;&#32;<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>&#32;=&#32;1;
<anchor xml:id="_inv__mpu_8c_source_1l02368"/>02368 &#32;&#32;&#32;&#32;<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>&#32;=&#32;sample_rate;
<anchor xml:id="_inv__mpu_8c_source_1l02369"/>02369 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga68ed20e6c9663cd7c50469329af8715f">mpu_set_dmp_state</link>(<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;enable)
<anchor xml:id="_inv__mpu_8c_source_1l02378"/>02378 {
<anchor xml:id="_inv__mpu_8c_source_1l02379"/>02379 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;tmp;
<anchor xml:id="_inv__mpu_8c_source_1l02380"/>02380 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>&#32;==&#32;enable)
<anchor xml:id="_inv__mpu_8c_source_1l02381"/>02381 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l02382"/>02382
<anchor xml:id="_inv__mpu_8c_source_1l02383"/>02383 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(enable)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l02384"/>02384 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02386"/>02386 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Disable&#32;data&#32;ready&#32;interrupt.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02387"/>02387 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Disable&#32;bypass&#32;mode.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02389"/>02389 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Keep&#32;constant&#32;sample&#32;rate,&#32;FIFO&#32;rate&#32;controlled&#32;by&#32;DMP.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02391"/>02391 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Remove&#32;FIFO&#32;elements.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02393"/>02393 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l02394"/>02394 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;0x23,&#32;1,&#32;&amp;tmp);
<anchor xml:id="_inv__mpu_8c_source_1l02395"/>02395 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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>&#32;=&#32;1;
<anchor xml:id="_inv__mpu_8c_source_1l02396"/>02396 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Enable&#32;DMP&#32;interrupt.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02397"/>02397 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gaf23e9f57c0059be6ec57862f0584de10">mpu_reset_fifo</link>();
<anchor xml:id="_inv__mpu_8c_source_1l02399"/>02399 &#32;&#32;&#32;&#32;}&#32;<emphasis role="keywordflow">else</emphasis>&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l02400"/>02400 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Disable&#32;DMP&#32;interrupt.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02401"/>02401 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Restore&#32;FIFO&#32;settings.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02403"/>02403 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;tmp&#32;=&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;0x23,&#32;1,&#32;&amp;tmp);
<anchor xml:id="_inv__mpu_8c_source_1l02405"/>02405 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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>&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l02406"/>02406 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gaf23e9f57c0059be6ec57862f0584de10">mpu_reset_fifo</link>();
<anchor xml:id="_inv__mpu_8c_source_1l02407"/>02407 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l02408"/>02408 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gafe0f60ed0d7f8fd2dcd55d45b95a2363">mpu_get_dmp_state</link>(<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;*enabled)
<anchor xml:id="_inv__mpu_8c_source_1l02417"/>02417 {
<anchor xml:id="_inv__mpu_8c_source_1l02418"/>02418 &#32;&#32;&#32;&#32;enabled[0]&#32;=&#32;<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 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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">/*&#32;This&#32;initialization&#32;is&#32;similar&#32;to&#32;the&#32;one&#32;in&#32;ak8975.c.&#32;*/</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>&#32;<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&#32;AK89xx_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02427"/>02427 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;data[4],&#32;akm_addr;
<anchor xml:id="_inv__mpu_8c_source_1l02428"/>02428
<anchor xml:id="_inv__mpu_8c_source_1l02429"/>02429 &#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Find&#32;compass.&#32;Possible&#32;addresses&#32;range&#32;from&#32;0x0C&#32;to&#32;0x0F.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02432"/>02432 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">for</emphasis>&#32;(akm_addr&#32;=&#32;0x0C;&#32;akm_addr&#32;&lt;=&#32;0x0F;&#32;akm_addr++)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l02433"/>02433 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordtype">int</emphasis>&#32;result;
<anchor xml:id="_inv__mpu_8c_source_1l02434"/>02434 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;result&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga838d8f1c7b0d8cc83923b93bbafe1b33">i2c_read</link>(akm_addr,&#32;AKM_REG_WHOAMI,&#32;1,&#32;data);
<anchor xml:id="_inv__mpu_8c_source_1l02435"/>02435 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!result&#32;&amp;&amp;&#32;(data[0]&#32;==&#32;AKM_WHOAMI))
<anchor xml:id="_inv__mpu_8c_source_1l02436"/>02436 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">break</emphasis>;
<anchor xml:id="_inv__mpu_8c_source_1l02437"/>02437 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l02438"/>02438
<anchor xml:id="_inv__mpu_8c_source_1l02439"/>02439 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(akm_addr&#32;&gt;&#32;0x0F)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l02440"/>02440 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;TODO:&#32;Handle&#32;this&#32;case&#32;in&#32;all&#32;compass-related&#32;functions.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02441"/>02441 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gab354affc295f7d61fe8a355c9361cc5a">log_e</link>(<emphasis role="stringliteral">&quot;Compass&#32;not&#32;found.\n&quot;</emphasis>);
<anchor xml:id="_inv__mpu_8c_source_1l02442"/>02442 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02443"/>02443 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l02444"/>02444
<anchor xml:id="_inv__mpu_8c_source_1l02445"/>02445 &#32;&#32;&#32;&#32;<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&#32;=&#32;akm_addr;
<anchor xml:id="_inv__mpu_8c_source_1l02446"/>02446
<anchor xml:id="_inv__mpu_8c_source_1l02447"/>02447 &#32;&#32;&#32;&#32;data[0]&#32;=&#32;AKM_POWER_DOWN;
<anchor xml:id="_inv__mpu_8c_source_1l02448"/>02448 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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,&#32;AKM_REG_CNTL,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02449"/>02449 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02450"/>02450 &#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;data[0]&#32;=&#32;AKM_FUSE_ROM_ACCESS;
<anchor xml:id="_inv__mpu_8c_source_1l02453"/>02453 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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,&#32;AKM_REG_CNTL,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02454"/>02454 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02455"/>02455 &#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Get&#32;sensitivity&#32;adjustment&#32;data&#32;from&#32;fuse&#32;ROM.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02458"/>02458 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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,&#32;AKM_REG_ASAX,&#32;3,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02459"/>02459 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02460"/>02460 &#32;&#32;&#32;&#32;<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]&#32;=&#32;(long)data[0]&#32;+&#32;128;
<anchor xml:id="_inv__mpu_8c_source_1l02461"/>02461 &#32;&#32;&#32;&#32;<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]&#32;=&#32;(long)data[1]&#32;+&#32;128;
<anchor xml:id="_inv__mpu_8c_source_1l02462"/>02462 &#32;&#32;&#32;&#32;<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]&#32;=&#32;(long)data[2]&#32;+&#32;128;
<anchor xml:id="_inv__mpu_8c_source_1l02463"/>02463
<anchor xml:id="_inv__mpu_8c_source_1l02464"/>02464 &#32;&#32;&#32;&#32;data[0]&#32;=&#32;AKM_POWER_DOWN;
<anchor xml:id="_inv__mpu_8c_source_1l02465"/>02465 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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,&#32;AKM_REG_CNTL,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02466"/>02466 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02467"/>02467 &#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Set&#32;up&#32;master&#32;mode,&#32;master&#32;clock,&#32;and&#32;ES&#32;bit.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02472"/>02472 &#32;&#32;&#32;&#32;data[0]&#32;=&#32;0x40;
<anchor xml:id="_inv__mpu_8c_source_1l02473"/>02473 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga2bf6dc826bcb17168013f303c904544b">i2c_mst</link>,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02474"/>02474 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02475"/>02475
<anchor xml:id="_inv__mpu_8c_source_1l02476"/>02476 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Slave&#32;0&#32;reads&#32;from&#32;AKM&#32;data&#32;registers.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02477"/>02477 &#32;&#32;&#32;&#32;data[0]&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga8ef1963ec6fb3df5586e50959cf00a70">BIT_I2C_READ</link>&#32;|&#32;<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 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;s0_addr,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02479"/>02479 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02480"/>02480
<anchor xml:id="_inv__mpu_8c_source_1l02481"/>02481 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Compass&#32;reads&#32;start&#32;at&#32;this&#32;register.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02482"/>02482 &#32;&#32;&#32;&#32;data[0]&#32;=&#32;AKM_REG_ST1;
<anchor xml:id="_inv__mpu_8c_source_1l02483"/>02483 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;s0_reg,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02484"/>02484 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02485"/>02485
<anchor xml:id="_inv__mpu_8c_source_1l02486"/>02486 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Enable&#32;slave&#32;0,&#32;8-byte&#32;reads.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02487"/>02487 &#32;&#32;&#32;&#32;data[0]&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gae9440f48b6d70d900366dc040a8714d7">BIT_SLAVE_EN</link>&#32;|&#32;8;
<anchor xml:id="_inv__mpu_8c_source_1l02488"/>02488 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;s0_ctrl,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02489"/>02489 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02490"/>02490
<anchor xml:id="_inv__mpu_8c_source_1l02491"/>02491 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Slave&#32;1&#32;changes&#32;AKM&#32;measurement&#32;mode.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02492"/>02492 &#32;&#32;&#32;&#32;data[0]&#32;=&#32;<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 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;s1_addr,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02494"/>02494 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02495"/>02495
<anchor xml:id="_inv__mpu_8c_source_1l02496"/>02496 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;AKM&#32;measurement&#32;mode&#32;register.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02497"/>02497 &#32;&#32;&#32;&#32;data[0]&#32;=&#32;AKM_REG_CNTL;
<anchor xml:id="_inv__mpu_8c_source_1l02498"/>02498 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;s1_reg,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02499"/>02499 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02500"/>02500
<anchor xml:id="_inv__mpu_8c_source_1l02501"/>02501 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Enable&#32;slave&#32;1,&#32;1-byte&#32;writes.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02502"/>02502 &#32;&#32;&#32;&#32;data[0]&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gae9440f48b6d70d900366dc040a8714d7">BIT_SLAVE_EN</link>&#32;|&#32;1;
<anchor xml:id="_inv__mpu_8c_source_1l02503"/>02503 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;s1_ctrl,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02504"/>02504 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02505"/>02505
<anchor xml:id="_inv__mpu_8c_source_1l02506"/>02506 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Set&#32;slave&#32;1&#32;data.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02507"/>02507 &#32;&#32;&#32;&#32;data[0]&#32;=&#32;AKM_SINGLE_MEASUREMENT;
<anchor xml:id="_inv__mpu_8c_source_1l02508"/>02508 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;s1_do,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02509"/>02509 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02510"/>02510
<anchor xml:id="_inv__mpu_8c_source_1l02511"/>02511 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Trigger&#32;slave&#32;0&#32;and&#32;slave&#32;1&#32;actions&#32;at&#32;each&#32;sample.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02512"/>02512 &#32;&#32;&#32;&#32;data[0]&#32;=&#32;0x03;
<anchor xml:id="_inv__mpu_8c_source_1l02513"/>02513 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;i2c_delay_ctrl,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02514"/>02514 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02515"/>02515
<anchor xml:id="_inv__mpu_8c_source_1l02516"/>02516 <emphasis role="preprocessor">#ifdef&#32;MPU9150</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02517"/>02517 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;For&#32;the&#32;MPU9150,&#32;the&#32;auxiliary&#32;I2C&#32;bus&#32;needs&#32;to&#32;be&#32;set&#32;to&#32;VDD.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02518"/>02518 &#32;&#32;&#32;&#32;data[0]&#32;=&#32;<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 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;yg_offs_tc,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02520"/>02520 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-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 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l02524"/>02524 <emphasis role="preprocessor">#else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02525"/>02525 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga65e6b0ce980b8c0255d7be9b55c88c08">mpu_get_compass_reg</link>(<emphasis role="keywordtype">short</emphasis>&#32;*data,&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">long</emphasis>&#32;*timestamp)
<anchor xml:id="_inv__mpu_8c_source_1l02536"/>02536 {
<anchor xml:id="_inv__mpu_8c_source_1l02537"/>02537 <emphasis role="preprocessor">#ifdef&#32;AK89xx_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02538"/>02538 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;tmp[9];
<anchor xml:id="_inv__mpu_8c_source_1l02539"/>02539
<anchor xml:id="_inv__mpu_8c_source_1l02540"/>02540 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!(<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>&#32;&amp;&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga7fc9c1dbdcb2ac8cc2a4128a5799482a">INV_XYZ_COMPASS</link>))
<anchor xml:id="_inv__mpu_8c_source_1l02541"/>02541 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02542"/>02542
<anchor xml:id="_inv__mpu_8c_source_1l02543"/>02543 <emphasis role="preprocessor">#ifdef&#32;AK89xx_BYPASS</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02544"/>02544 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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,&#32;AKM_REG_ST1,&#32;8,&#32;tmp))
<anchor xml:id="_inv__mpu_8c_source_1l02545"/>02545 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02546"/>02546 &#32;&#32;&#32;&#32;tmp[8]&#32;=&#32;AKM_SINGLE_MEASUREMENT;
<anchor xml:id="_inv__mpu_8c_source_1l02547"/>02547 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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,&#32;AKM_REG_CNTL,&#32;1,&#32;tmp+8))
<anchor xml:id="_inv__mpu_8c_source_1l02548"/>02548 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02549"/>02549 <emphasis role="preprocessor">#else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02550"/>02550 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;raw_compass,&#32;8,&#32;tmp))
<anchor xml:id="_inv__mpu_8c_source_1l02551"/>02551 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-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&#32;defined&#32;AK8975_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02555"/>02555 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;AK8975&#32;doesn&apos;t&#32;have&#32;the&#32;overrun&#32;error&#32;bit.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02556"/>02556 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!(tmp[0]&#32;&amp;&#32;AKM_DATA_READY))
<anchor xml:id="_inv__mpu_8c_source_1l02557"/>02557 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-2;
<anchor xml:id="_inv__mpu_8c_source_1l02558"/>02558 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;((tmp[7]&#32;&amp;&#32;AKM_OVERFLOW)&#32;||&#32;(tmp[7]&#32;&amp;&#32;AKM_DATA_ERROR))
<anchor xml:id="_inv__mpu_8c_source_1l02559"/>02559 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-3;
<anchor xml:id="_inv__mpu_8c_source_1l02560"/>02560 <emphasis role="preprocessor">#elif&#32;defined&#32;AK8963_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02561"/>02561 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;AK8963&#32;doesn&apos;t&#32;have&#32;the&#32;data&#32;read&#32;error&#32;bit.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02562"/>02562 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!(tmp[0]&#32;&amp;&#32;AKM_DATA_READY)&#32;||&#32;(tmp[0]&#32;&amp;&#32;AKM_DATA_OVERRUN))
<anchor xml:id="_inv__mpu_8c_source_1l02563"/>02563 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-2;
<anchor xml:id="_inv__mpu_8c_source_1l02564"/>02564 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(tmp[7]&#32;&amp;&#32;AKM_OVERFLOW)
<anchor xml:id="_inv__mpu_8c_source_1l02565"/>02565 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-3;
<anchor xml:id="_inv__mpu_8c_source_1l02566"/>02566 <emphasis role="preprocessor">#endif</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02567"/>02567 &#32;&#32;&#32;&#32;data[0]&#32;=&#32;(tmp[2]&#32;&lt;&lt;&#32;8)&#32;|&#32;tmp[1];
<anchor xml:id="_inv__mpu_8c_source_1l02568"/>02568 &#32;&#32;&#32;&#32;data[1]&#32;=&#32;(tmp[4]&#32;&lt;&lt;&#32;8)&#32;|&#32;tmp[3];
<anchor xml:id="_inv__mpu_8c_source_1l02569"/>02569 &#32;&#32;&#32;&#32;data[2]&#32;=&#32;(tmp[6]&#32;&lt;&lt;&#32;8)&#32;|&#32;tmp[5];
<anchor xml:id="_inv__mpu_8c_source_1l02570"/>02570
<anchor xml:id="_inv__mpu_8c_source_1l02571"/>02571 &#32;&#32;&#32;&#32;data[0]&#32;=&#32;((long)data[0]&#32;*&#32;<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])&#32;&gt;&gt;&#32;8;
<anchor xml:id="_inv__mpu_8c_source_1l02572"/>02572 &#32;&#32;&#32;&#32;data[1]&#32;=&#32;((long)data[1]&#32;*&#32;<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])&#32;&gt;&gt;&#32;8;
<anchor xml:id="_inv__mpu_8c_source_1l02573"/>02573 &#32;&#32;&#32;&#32;data[2]&#32;=&#32;((long)data[2]&#32;*&#32;<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])&#32;&gt;&gt;&#32;8;
<anchor xml:id="_inv__mpu_8c_source_1l02574"/>02574
<anchor xml:id="_inv__mpu_8c_source_1l02575"/>02575 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(timestamp)
<anchor xml:id="_inv__mpu_8c_source_1l02576"/>02576 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga3e6b6bc6d1cd2956353a31bfadd3c332">get_ms</link>(timestamp);
<anchor xml:id="_inv__mpu_8c_source_1l02577"/>02577 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l02578"/>02578 <emphasis role="preprocessor">#else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02579"/>02579 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gade8589573d09e0f14b84130428f286df">mpu_get_compass_fsr</link>(<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;*fsr)
<anchor xml:id="_inv__mpu_8c_source_1l02589"/>02589 {
<anchor xml:id="_inv__mpu_8c_source_1l02590"/>02590 <emphasis role="preprocessor">#ifdef&#32;AK89xx_SECONDARY</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02591"/>02591 &#32;&#32;&#32;&#32;fsr[0]&#32;=&#32;<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>-&gt;compass_fsr;
<anchor xml:id="_inv__mpu_8c_source_1l02592"/>02592 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l02593"/>02593 <emphasis role="preprocessor">#else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02594"/>02594 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga7d0b3259346898ccd1ba6ef78bf7df97">mpu_lp_motion_interrupt</link>(<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;thresh,&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;time,
<anchor xml:id="_inv__mpu_8c_source_1l02643"/>02643 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;lpa_freq)
<anchor xml:id="_inv__mpu_8c_source_1l02644"/>02644 {
<anchor xml:id="_inv__mpu_8c_source_1l02645"/>02645 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;data[3];
<anchor xml:id="_inv__mpu_8c_source_1l02646"/>02646
<anchor xml:id="_inv__mpu_8c_source_1l02647"/>02647 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(lpa_freq)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l02648"/>02648 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;thresh_hw;
<anchor xml:id="_inv__mpu_8c_source_1l02649"/>02649
<anchor xml:id="_inv__mpu_8c_source_1l02650"/>02650 <emphasis role="preprocessor">#if&#32;defined&#32;MPU6050</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02651"/>02651 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;TODO:&#32;Make&#32;these&#32;const/#defines.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02652"/>02652 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;1LSb&#32;=&#32;32mg.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02653"/>02653 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(thresh&#32;&gt;&#32;8160)
<anchor xml:id="_inv__mpu_8c_source_1l02654"/>02654 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;thresh_hw&#32;=&#32;255;
<anchor xml:id="_inv__mpu_8c_source_1l02655"/>02655 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(thresh&#32;&lt;&#32;32)
<anchor xml:id="_inv__mpu_8c_source_1l02656"/>02656 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;thresh_hw&#32;=&#32;1;
<anchor xml:id="_inv__mpu_8c_source_1l02657"/>02657 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02658"/>02658 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;thresh_hw&#32;=&#32;thresh&#32;&gt;&gt;&#32;5;
<anchor xml:id="_inv__mpu_8c_source_1l02659"/>02659 <emphasis role="preprocessor">#elif&#32;defined&#32;MPU6500</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02660"/>02660 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;1LSb&#32;=&#32;4mg.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02661"/>02661 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(thresh&#32;&gt;&#32;1020)
<anchor xml:id="_inv__mpu_8c_source_1l02662"/>02662 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;thresh_hw&#32;=&#32;255;
<anchor xml:id="_inv__mpu_8c_source_1l02663"/>02663 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(thresh&#32;&lt;&#32;4)
<anchor xml:id="_inv__mpu_8c_source_1l02664"/>02664 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;thresh_hw&#32;=&#32;1;
<anchor xml:id="_inv__mpu_8c_source_1l02665"/>02665 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02666"/>02666 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;thresh_hw&#32;=&#32;thresh&#32;&gt;&gt;&#32;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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!time)
<anchor xml:id="_inv__mpu_8c_source_1l02670"/>02670 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Minimum&#32;duration&#32;must&#32;be&#32;1ms.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02671"/>02671 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;time&#32;=&#32;1;
<anchor xml:id="_inv__mpu_8c_source_1l02672"/>02672
<anchor xml:id="_inv__mpu_8c_source_1l02673"/>02673 <emphasis role="preprocessor">#if&#32;defined&#32;MPU6050</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02674"/>02674 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(lpa_freq&#32;&gt;&#32;40)
<anchor xml:id="_inv__mpu_8c_source_1l02675"/>02675 <emphasis role="preprocessor">#elif&#32;defined&#32;MPU6500</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02676"/>02676 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(lpa_freq&#32;&gt;&#32;640)
<anchor xml:id="_inv__mpu_8c_source_1l02677"/>02677 <emphasis role="preprocessor">#endif</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02678"/>02678 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;At&#32;this&#32;point,&#32;the&#32;chip&#32;has&#32;not&#32;been&#32;re-configured,&#32;so&#32;the</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02679"/>02679 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;*&#32;function&#32;can&#32;safely&#32;exit.</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02680"/>02680 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02681"/>02681 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02682"/>02682
<anchor xml:id="_inv__mpu_8c_source_1l02683"/>02683 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(!<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>)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l02684"/>02684 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Store&#32;current&#32;settings&#32;for&#32;later.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02685"/>02685 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l02686"/>02686 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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>&#32;=&#32;1;
<anchor xml:id="_inv__mpu_8c_source_1l02688"/>02688 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}&#32;<emphasis role="keywordflow">else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02689"/>02689 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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>&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l02690"/>02690 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gaf973c32c73ba912ff512aab948fc31ca">mpu_get_gyro_fsr</link>(&amp;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gab6087a15ee23db23b6aec41590329a60">mpu_get_accel_fsr</link>(&amp;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gaa95c7e216dcb2d888e9796001ca555f8">mpu_get_lpf</link>(&amp;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga2487dd551b701c1c7ed4d6335f02b2f1">mpu_get_sample_rate</link>(&amp;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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>&#32;=&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga093f11eb10b2639a4b9fe344ea348c54">mpu_get_fifo_config</link>(&amp;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l02697"/>02697
<anchor xml:id="_inv__mpu_8c_source_1l02698"/>02698 <emphasis role="preprocessor">#ifdef&#32;MPU6050</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02699"/>02699 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Disable&#32;hardware&#32;interrupts&#32;for&#32;now.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02700"/>02700 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Enter&#32;full-power&#32;accel-only&#32;mode.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02703"/>02703 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Override&#32;current&#32;LPF&#32;(and&#32;HPF)&#32;settings&#32;to&#32;obtain&#32;a&#32;valid&#32;accel</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02706"/>02706 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;*&#32;reading.</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02707"/>02707 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02708"/>02708 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data[0]&#32;=&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga22eeac0bd77e7d99b3e15dda52f1bd08">lpf</link>,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02710"/>02710 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02711"/>02711
<anchor xml:id="_inv__mpu_8c_source_1l02712"/>02712 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;NOTE:&#32;Digital&#32;high&#32;pass&#32;filter&#32;should&#32;be&#32;configured&#32;here.&#32;Since&#32;this</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02713"/>02713 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;*&#32;driver&#32;doesn&apos;t&#32;modify&#32;those&#32;bits&#32;anywhere,&#32;they&#32;should&#32;already&#32;be</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02714"/>02714 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;*&#32;cleared&#32;by&#32;default.</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02715"/>02715 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02716"/>02716
<anchor xml:id="_inv__mpu_8c_source_1l02717"/>02717 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Configure&#32;the&#32;device&#32;to&#32;send&#32;motion&#32;interrupts.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02718"/>02718 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Enable&#32;motion&#32;interrupt.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02719"/>02719 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data[0]&#32;=&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga48b47844d4b0570e60aa6806faa59eae">int_enable</link>,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02721"/>02721 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">goto</emphasis>&#32;lp_int_restore;
<anchor xml:id="_inv__mpu_8c_source_1l02722"/>02722
<anchor xml:id="_inv__mpu_8c_source_1l02723"/>02723 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Set&#32;motion&#32;interrupt&#32;parameters.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02724"/>02724 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data[0]&#32;=&#32;thresh_hw;
<anchor xml:id="_inv__mpu_8c_source_1l02725"/>02725 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data[1]&#32;=&#32;time;
<anchor xml:id="_inv__mpu_8c_source_1l02726"/>02726 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gab2065a062ea7d6179cd8407b2ab4d146">motion_thr</link>,&#32;2,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02727"/>02727 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">goto</emphasis>&#32;lp_int_restore;
<anchor xml:id="_inv__mpu_8c_source_1l02728"/>02728
<anchor xml:id="_inv__mpu_8c_source_1l02729"/>02729 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Force&#32;hardware&#32;to&#32;&quot;lock&quot;&#32;current&#32;accel&#32;sample.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02730"/>02730 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1gae36aca5baf9b6b7d74992aef00686d67">delay_ms</link>(5);
<anchor xml:id="_inv__mpu_8c_source_1l02731"/>02731 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data[0]&#32;=&#32;(<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>&#32;&lt;&lt;&#32;3)&#32;|&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga3c9c0234d4a71c9d35bb0da64ea867eb">BITS_HPF</link>;
<anchor xml:id="_inv__mpu_8c_source_1l02732"/>02732 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gae93a446c54cc00bc7f11209d7af0025e">accel_cfg</link>,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02733"/>02733 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">goto</emphasis>&#32;lp_int_restore;
<anchor xml:id="_inv__mpu_8c_source_1l02734"/>02734
<anchor xml:id="_inv__mpu_8c_source_1l02735"/>02735 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Set&#32;up&#32;LP&#32;accel&#32;mode.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02736"/>02736 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data[0]&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga63e6f23af37626aa1498d8c248f259e7">BIT_LPA_CYCLE</link>;
<anchor xml:id="_inv__mpu_8c_source_1l02737"/>02737 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(lpa_freq&#32;==&#32;1)
<anchor xml:id="_inv__mpu_8c_source_1l02738"/>02738 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data[1]&#32;=&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(lpa_freq&#32;&lt;=&#32;5)
<anchor xml:id="_inv__mpu_8c_source_1l02740"/>02740 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data[1]&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7a474cac76bff369dd656cc973207a1ca5">INV_LPA_5HZ</link>;
<anchor xml:id="_inv__mpu_8c_source_1l02741"/>02741 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(lpa_freq&#32;&lt;=&#32;20)
<anchor xml:id="_inv__mpu_8c_source_1l02742"/>02742 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data[1]&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7accaaf47c58dfe32cbf2ffa11fdb83108">INV_LPA_20HZ</link>;
<anchor xml:id="_inv__mpu_8c_source_1l02743"/>02743 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02744"/>02744 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data[1]&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7a798d2b86eafcf3fc7c7fe775f46cb4cb">INV_LPA_40HZ</link>;
<anchor xml:id="_inv__mpu_8c_source_1l02745"/>02745 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data[1]&#32;=&#32;(data[1]&#32;&lt;&lt;&#32;6)&#32;|&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga4e2ef22b94b90f9b83394dfe1f688ce4">BIT_STBY_XYZG</link>;
<anchor xml:id="_inv__mpu_8c_source_1l02746"/>02746 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gaa01fb0872030e8e2932f8d1d257ea86a">pwr_mgmt_1</link>,&#32;2,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02747"/>02747 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">goto</emphasis>&#32;lp_int_restore;
<anchor xml:id="_inv__mpu_8c_source_1l02748"/>02748
<anchor xml:id="_inv__mpu_8c_source_1l02749"/>02749 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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>&#32;=&#32;1;
<anchor xml:id="_inv__mpu_8c_source_1l02750"/>02750 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l02751"/>02751 <emphasis role="preprocessor">#elif&#32;defined&#32;MPU6500</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02752"/>02752 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Disable&#32;hardware&#32;interrupts.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02753"/>02753 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Enter&#32;full-power&#32;accel-only&#32;mode,&#32;no&#32;FIFO/DMP.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02756"/>02756 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data[0]&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l02757"/>02757 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data[1]&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l02758"/>02758 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data[2]&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga4e2ef22b94b90f9b83394dfe1f688ce4">BIT_STBY_XYZG</link>;
<anchor xml:id="_inv__mpu_8c_source_1l02759"/>02759 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga12505a7d8cd7c976e5571f27a6160d23">user_ctrl</link>,&#32;3,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02760"/>02760 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">goto</emphasis>&#32;lp_int_restore;
<anchor xml:id="_inv__mpu_8c_source_1l02761"/>02761
<anchor xml:id="_inv__mpu_8c_source_1l02762"/>02762 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Set&#32;motion&#32;threshold.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02763"/>02763 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data[0]&#32;=&#32;thresh_hw;
<anchor xml:id="_inv__mpu_8c_source_1l02764"/>02764 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gab2065a062ea7d6179cd8407b2ab4d146">motion_thr</link>,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02765"/>02765 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">goto</emphasis>&#32;lp_int_restore;
<anchor xml:id="_inv__mpu_8c_source_1l02766"/>02766
<anchor xml:id="_inv__mpu_8c_source_1l02767"/>02767 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Set&#32;wake&#32;frequency.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02768"/>02768 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(lpa_freq&#32;==&#32;1)
<anchor xml:id="_inv__mpu_8c_source_1l02769"/>02769 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data[0]&#32;=&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(lpa_freq&#32;==&#32;2)
<anchor xml:id="_inv__mpu_8c_source_1l02771"/>02771 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data[0]&#32;=&#32;INV_LPA_2_5HZ;
<anchor xml:id="_inv__mpu_8c_source_1l02772"/>02772 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(lpa_freq&#32;&lt;=&#32;5)
<anchor xml:id="_inv__mpu_8c_source_1l02773"/>02773 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data[0]&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7a474cac76bff369dd656cc973207a1ca5">INV_LPA_5HZ</link>;
<anchor xml:id="_inv__mpu_8c_source_1l02774"/>02774 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(lpa_freq&#32;&lt;=&#32;10)
<anchor xml:id="_inv__mpu_8c_source_1l02775"/>02775 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data[0]&#32;=&#32;INV_LPA_10HZ;
<anchor xml:id="_inv__mpu_8c_source_1l02776"/>02776 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(lpa_freq&#32;&lt;=&#32;20)
<anchor xml:id="_inv__mpu_8c_source_1l02777"/>02777 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data[0]&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7accaaf47c58dfe32cbf2ffa11fdb83108">INV_LPA_20HZ</link>;
<anchor xml:id="_inv__mpu_8c_source_1l02778"/>02778 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(lpa_freq&#32;&lt;=&#32;40)
<anchor xml:id="_inv__mpu_8c_source_1l02779"/>02779 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data[0]&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga23c3fcde795e5aa2b141232d490c9ca7a798d2b86eafcf3fc7c7fe775f46cb4cb">INV_LPA_40HZ</link>;
<anchor xml:id="_inv__mpu_8c_source_1l02780"/>02780 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(lpa_freq&#32;&lt;=&#32;80)
<anchor xml:id="_inv__mpu_8c_source_1l02781"/>02781 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data[0]&#32;=&#32;INV_LPA_80HZ;
<anchor xml:id="_inv__mpu_8c_source_1l02782"/>02782 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(lpa_freq&#32;&lt;=&#32;160)
<anchor xml:id="_inv__mpu_8c_source_1l02783"/>02783 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data[0]&#32;=&#32;INV_LPA_160HZ;
<anchor xml:id="_inv__mpu_8c_source_1l02784"/>02784 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(lpa_freq&#32;&lt;=&#32;320)
<anchor xml:id="_inv__mpu_8c_source_1l02785"/>02785 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data[0]&#32;=&#32;INV_LPA_320HZ;
<anchor xml:id="_inv__mpu_8c_source_1l02786"/>02786 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02787"/>02787 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data[0]&#32;=&#32;INV_LPA_640HZ;
<anchor xml:id="_inv__mpu_8c_source_1l02788"/>02788 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;lp_accel_odr,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02789"/>02789 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">goto</emphasis>&#32;lp_int_restore;
<anchor xml:id="_inv__mpu_8c_source_1l02790"/>02790
<anchor xml:id="_inv__mpu_8c_source_1l02791"/>02791 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Enable&#32;motion&#32;interrupt&#32;(MPU6500&#32;version).&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02792"/>02792 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data[0]&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga75b1479e451b747afb3b24cbc4df99f7">BITS_WOM_EN</link>;
<anchor xml:id="_inv__mpu_8c_source_1l02793"/>02793 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;accel_intel,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02794"/>02794 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">goto</emphasis>&#32;lp_int_restore;
<anchor xml:id="_inv__mpu_8c_source_1l02795"/>02795
<anchor xml:id="_inv__mpu_8c_source_1l02796"/>02796 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Enable&#32;cycle&#32;mode.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02797"/>02797 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data[0]&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga63e6f23af37626aa1498d8c248f259e7">BIT_LPA_CYCLE</link>;
<anchor xml:id="_inv__mpu_8c_source_1l02798"/>02798 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gaa01fb0872030e8e2932f8d1d257ea86a">pwr_mgmt_1</link>,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02799"/>02799 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">goto</emphasis>&#32;lp_int_restore;
<anchor xml:id="_inv__mpu_8c_source_1l02800"/>02800
<anchor xml:id="_inv__mpu_8c_source_1l02801"/>02801 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Enable&#32;interrupt.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02802"/>02802 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;data[0]&#32;=&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1ga48b47844d4b0570e60aa6806faa59eae">int_enable</link>,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02804"/>02804 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">goto</emphasis>&#32;lp_int_restore;
<anchor xml:id="_inv__mpu_8c_source_1l02805"/>02805
<anchor xml:id="_inv__mpu_8c_source_1l02806"/>02806 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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>&#32;=&#32;1;
<anchor xml:id="_inv__mpu_8c_source_1l02807"/>02807 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l02808"/>02808 <emphasis role="preprocessor">#endif</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02809"/>02809 &#32;&#32;&#32;&#32;}&#32;<emphasis role="keywordflow">else</emphasis>&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l02810"/>02810 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Don&apos;t&#32;&quot;restore&quot;&#32;the&#32;previous&#32;state&#32;if&#32;no&#32;state&#32;has&#32;been&#32;saved.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02811"/>02811 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordtype">int</emphasis>&#32;ii;
<anchor xml:id="_inv__mpu_8c_source_1l02812"/>02812 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordtype">char</emphasis>&#32;*cache_ptr&#32;=&#32;(<emphasis role="keywordtype">char</emphasis>*)&amp;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;for&#32;(ii&#32;=&#32;0;&#32;ii&#32;&lt;&#32;<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>);&#32;ii++)&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l02814"/>02814 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(cache_ptr[ii]&#32;!=&#32;0)
<anchor xml:id="_inv__mpu_8c_source_1l02815"/>02815 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">goto</emphasis>&#32;lp_int_restore;
<anchor xml:id="_inv__mpu_8c_source_1l02816"/>02816 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l02817"/>02817 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;If&#32;we&#32;reach&#32;this&#32;point,&#32;motion&#32;interrupt&#32;mode&#32;hasn&apos;t&#32;been&#32;used&#32;yet.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02818"/>02818 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;-1;
<anchor xml:id="_inv__mpu_8c_source_1l02819"/>02819 &#32;&#32;&#32;&#32;}
<anchor xml:id="_inv__mpu_8c_source_1l02820"/>02820 lp_int_restore:
<anchor xml:id="_inv__mpu_8c_source_1l02821"/>02821 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Set&#32;to&#32;invalid&#32;values&#32;to&#32;ensure&#32;no&#32;I2C&#32;writes&#32;are&#32;skipped.&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02822"/>02822 &#32;&#32;&#32;&#32;<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>&#32;=&#32;0xFF;
<anchor xml:id="_inv__mpu_8c_source_1l02823"/>02823 &#32;&#32;&#32;&#32;<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>&#32;=&#32;0xFF;
<anchor xml:id="_inv__mpu_8c_source_1l02824"/>02824 &#32;&#32;&#32;&#32;<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>&#32;=&#32;0xFF;
<anchor xml:id="_inv__mpu_8c_source_1l02825"/>02825 &#32;&#32;&#32;&#32;<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>&#32;=&#32;0xFFFF;
<anchor xml:id="_inv__mpu_8c_source_1l02826"/>02826 &#32;&#32;&#32;&#32;<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>&#32;=&#32;0xFF;
<anchor xml:id="_inv__mpu_8c_source_1l02827"/>02827 &#32;&#32;&#32;&#32;<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>&#32;=&#32;0xFF;
<anchor xml:id="_inv__mpu_8c_source_1l02828"/>02828 &#32;&#32;&#32;&#32;<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>&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1gga75570f009627c6f4ddfb2d936d81e207a01b240917a78674d3e387110a6a8f94c">INV_CLK_PLL</link>;
<anchor xml:id="_inv__mpu_8c_source_1l02829"/>02829 &#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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&#32;MPU6500</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02840"/>02840 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Disable&#32;motion&#32;interrupt&#32;(MPU6500&#32;version).&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02841"/>02841 &#32;&#32;&#32;&#32;data[0]&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l02842"/>02842 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(<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>-&gt;<link linkend="_group___d_r_i_v_e_r_s_1gacb482b60b4bc425c2990da9cf7cbdfee">addr</link>,&#32;<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>-&gt;accel_intel,&#32;1,&#32;data))
<anchor xml:id="_inv__mpu_8c_source_1l02843"/>02843 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">goto</emphasis>&#32;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 &#32;&#32;&#32;&#32;<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>&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l02847"/>02847 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l02848"/>02848 }
<anchor xml:id="_inv__mpu_8c_source_1l02850"/>02850 <emphasis role="comment">//添加的代码部分&#32;</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&#32;DMP&#32;驱动代码&#32;&#32;&#32;&#32;&#32;</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)&#32;广州市星翼电子科技有限公司&#32;2009-2019</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02861"/>02861 <emphasis role="comment">//All&#32;rights&#32;reserved&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;</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&#32;q30&#32;&#32;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>&#32;<emphasis role="keywordtype">signed</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gadcca9e3dfdbc53cc5509fabdaede02b8">gyro_orientation</link>[9]&#32;=&#32;{&#32;1,&#32;0,&#32;0,
<anchor xml:id="_inv__mpu_8c_source_1l02869"/>02869 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;0,&#32;1,&#32;0,
<anchor xml:id="_inv__mpu_8c_source_1l02870"/>02870 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;0,&#32;0,&#32;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">//&#32;&#32;&#32;&#32;其他,失败</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>&#32;<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 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">int</emphasis>&#32;result;
<anchor xml:id="_inv__mpu_8c_source_1l02876"/>02876 &#32;&#32;&#32;&#32;<emphasis role="comment">//char&#32;test_packet[4]&#32;=&#32;{0};</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02877"/>02877 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">long</emphasis>&#32;gyro[3],&#32;accel[3];&#32;
<anchor xml:id="_inv__mpu_8c_source_1l02878"/>02878 &#32;&#32;&#32;&#32;result&#32;=&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga3773dc98eb1ba15da0091ae75abcf62f">mpu_run_self_test</link>(gyro,&#32;accel);
<anchor xml:id="_inv__mpu_8c_source_1l02879"/>02879 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(result&#32;==&#32;0x3){
<anchor xml:id="_inv__mpu_8c_source_1l02880"/>02880 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Test&#32;passed.&#32;We&#32;can&#32;trust&#32;the&#32;gyro&#32;data&#32;here,&#32;so&#32;let&apos;s&#32;push&#32;it&#32;down</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02881"/>02881 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;*&#32;to&#32;the&#32;DMP.</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02882"/>02882 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02883"/>02883 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordtype">float</emphasis>&#32;sens;
<anchor xml:id="_inv__mpu_8c_source_1l02884"/>02884 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;accel_sens;
<anchor xml:id="_inv__mpu_8c_source_1l02885"/>02885 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga023c0cc94aa8f162dc33b15048a49421">mpu_get_gyro_sens</link>(&amp;sens);
<anchor xml:id="_inv__mpu_8c_source_1l02886"/>02886 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;gyro[0]&#32;=&#32;(long)(gyro[0]&#32;*&#32;sens);
<anchor xml:id="_inv__mpu_8c_source_1l02887"/>02887 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;gyro[1]&#32;=&#32;(long)(gyro[1]&#32;*&#32;sens);
<anchor xml:id="_inv__mpu_8c_source_1l02888"/>02888 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;gyro[2]&#32;=&#32;(long)(gyro[2]&#32;*&#32;sens);
<anchor xml:id="_inv__mpu_8c_source_1l02889"/>02889 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga620408949052b96e856cad920f856583">mpu_get_accel_sens</link>(&amp;accel_sens);
<anchor xml:id="_inv__mpu_8c_source_1l02891"/>02891 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;accel[0]&#32;*=&#32;accel_sens;
<anchor xml:id="_inv__mpu_8c_source_1l02892"/>02892 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;accel[1]&#32;*=&#32;accel_sens;
<anchor xml:id="_inv__mpu_8c_source_1l02893"/>02893 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;accel[2]&#32;*=&#32;accel_sens;
<anchor xml:id="_inv__mpu_8c_source_1l02894"/>02894 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l02896"/>02896 &#32;&#32;&#32;&#32;}<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<emphasis role="keywordtype">short</emphasis>&#32;<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 &#32;&#32;&#32;&#32;<emphasis role="keyword">const</emphasis>&#32;<emphasis role="keywordtype">signed</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;*mtx){
<anchor xml:id="_inv__mpu_8c_source_1l02900"/>02900 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;scalar;&#32;
<anchor xml:id="_inv__mpu_8c_source_1l02901"/>02901 &#32;&#32;&#32;&#32;<emphasis role="comment">/*</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02902"/>02902 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;&#32;&#32;XYZ&#32;&#32;010_001_000&#32;Identity&#32;Matrix</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02903"/>02903 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;&#32;&#32;XZY&#32;&#32;001_010_000</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02904"/>02904 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;&#32;&#32;YXZ&#32;&#32;010_000_001</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02905"/>02905 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;&#32;&#32;YZX&#32;&#32;000_010_001</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02906"/>02906 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;&#32;&#32;ZXY&#32;&#32;001_000_010</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02907"/>02907 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;&#32;&#32;ZYX&#32;&#32;000_001_010</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02908"/>02908 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02909"/>02909 &#32;&#32;&#32;&#32;scalar&#32;=&#32;<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 &#32;&#32;&#32;&#32;scalar&#32;|=&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga2b58dae1c0567f3f9f6dcbfb07476de7">inv_row_2_scale</link>(mtx&#32;+&#32;3)&#32;&lt;&lt;&#32;3;
<anchor xml:id="_inv__mpu_8c_source_1l02911"/>02911 &#32;&#32;&#32;&#32;scalar&#32;|=&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga2b58dae1c0567f3f9f6dcbfb07476de7">inv_row_2_scale</link>(mtx&#32;+&#32;6)&#32;&lt;&lt;&#32;6;
<anchor xml:id="_inv__mpu_8c_source_1l02912"/>02912 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<emphasis role="keywordtype">short</emphasis>&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga2b58dae1c0567f3f9f6dcbfb07476de7">inv_row_2_scale</link>(<emphasis role="keyword">const</emphasis>&#32;<emphasis role="keywordtype">signed</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;*row){
<anchor xml:id="_inv__mpu_8c_source_1l02915"/>02915 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">short</emphasis>&#32;b;
<anchor xml:id="_inv__mpu_8c_source_1l02916"/>02916
<anchor xml:id="_inv__mpu_8c_source_1l02917"/>02917 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>&#32;(row[0]&#32;&gt;&#32;0)
<anchor xml:id="_inv__mpu_8c_source_1l02918"/>02918 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;b&#32;=&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l02919"/>02919 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(row[0]&#32;&lt;&#32;0)
<anchor xml:id="_inv__mpu_8c_source_1l02920"/>02920 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;b&#32;=&#32;4;
<anchor xml:id="_inv__mpu_8c_source_1l02921"/>02921 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(row[1]&#32;&gt;&#32;0)
<anchor xml:id="_inv__mpu_8c_source_1l02922"/>02922 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;b&#32;=&#32;1;
<anchor xml:id="_inv__mpu_8c_source_1l02923"/>02923 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(row[1]&#32;&lt;&#32;0)
<anchor xml:id="_inv__mpu_8c_source_1l02924"/>02924 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;b&#32;=&#32;5;
<anchor xml:id="_inv__mpu_8c_source_1l02925"/>02925 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(row[2]&#32;&gt;&#32;0)
<anchor xml:id="_inv__mpu_8c_source_1l02926"/>02926 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;b&#32;=&#32;2;
<anchor xml:id="_inv__mpu_8c_source_1l02927"/>02927 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">if</emphasis>&#32;(row[2]&#32;&lt;&#32;0)
<anchor xml:id="_inv__mpu_8c_source_1l02928"/>02928 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;b&#32;=&#32;6;
<anchor xml:id="_inv__mpu_8c_source_1l02929"/>02929 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">else</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02930"/>02930 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;b&#32;=&#32;7;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//&#32;error</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02931"/>02931 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gafa3071c8321f6e8dd2036be8a1e57ad0">mget_ms</link>(<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">long</emphasis>&#32;*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">//&#32;&#32;&#32;&#32;其他,失败</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>&#32;<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 &#32;&#32;&#32;&#32;<link linkend="_varint_8h_1a92c50087ca0e64fa93fc59402c55f8ca">u8</link>&#32;res=0;
<anchor xml:id="_inv__mpu_8c_source_1l02940"/>02940 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>(<link linkend="_group___d_r_i_v_e_r_s_1gac48a36b51e23bc4191ec13916bbb9d0b">mpu_init</link>()==0)&#32;&#32;&#32;<emphasis role="comment">//初始化MPU6050</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02941"/>02941 &#32;&#32;&#32;&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l02942"/>02942 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;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>);&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//设置所需要的传感器</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02943"/>02943 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>(res)<emphasis role="keywordflow">return</emphasis>&#32;1;&#32;
<anchor xml:id="_inv__mpu_8c_source_1l02944"/>02944 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;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>);&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//设置FIFO</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02945"/>02945 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>(res)<emphasis role="keywordflow">return</emphasis>&#32;2;&#32;
<anchor xml:id="_inv__mpu_8c_source_1l02946"/>02946 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;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>);&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//设置采样率</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02947"/>02947 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>(res)<emphasis role="keywordflow">return</emphasis>&#32;3;&#32;
<anchor xml:id="_inv__mpu_8c_source_1l02948"/>02948 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;res=<link linkend="_group___d_r_i_v_e_r_s_1ga66626a842452f444e9af29cb0d2c6150">dmp_load_motion_driver_firmware</link>();&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//加载dmp固件</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02949"/>02949 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>(res)<emphasis role="keywordflow">return</emphasis>&#32;4;&#32;
<anchor xml:id="_inv__mpu_8c_source_1l02950"/>02950 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>(res)<emphasis role="keywordflow">return</emphasis>&#32;5;&#32;
<anchor xml:id="_inv__mpu_8c_source_1l02952"/>02952 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;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>|&#32;&#32;<emphasis role="comment">//设置dmp功能</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02953"/>02953 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<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 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>(res)<emphasis role="keywordflow">return</emphasis>&#32;6;&#32;
<anchor xml:id="_inv__mpu_8c_source_1l02956"/>02956 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;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>);&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//设置DMP输出速率(最大不超过200Hz)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02957"/>02957 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>(res)<emphasis role="keywordflow">return</emphasis>&#32;7;&#32;&#32;&#32;
<anchor xml:id="_inv__mpu_8c_source_1l02958"/>02958 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;res=<link linkend="_group___d_r_i_v_e_r_s_1gaff893f93277595387023c71d46b03c42">run_self_test</link>();&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//自检</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02959"/>02959 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>(res)<emphasis role="keywordflow">return</emphasis>&#32;8;&#32;&#32;&#32;&#32;
<anchor xml:id="_inv__mpu_8c_source_1l02960"/>02960 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;res=<link linkend="_group___d_r_i_v_e_r_s_1ga68ed20e6c9663cd7c50469329af8715f">mpu_set_dmp_state</link>(1);&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//使能DMP</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02961"/>02961 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>(res)<emphasis role="keywordflow">return</emphasis>&#32;9;&#32;&#32;&#32;&#32;&#32;
<anchor xml:id="_inv__mpu_8c_source_1l02962"/>02962 &#32;&#32;&#32;&#32;}<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">return</emphasis>&#32;10;
<anchor xml:id="_inv__mpu_8c_source_1l02963"/>02963 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;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:俯仰角&#32;精度:0.1°&#32;&#32;&#32;范围:-90.0°&#32;&lt;---&gt;&#32;+90.0°</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02966"/>02966 <emphasis role="comment">//roll:横滚角&#32;&#32;精度:0.1°&#32;&#32;&#32;范围:-180.0°&lt;---&gt;&#32;+180.0°</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02967"/>02967 <emphasis role="comment">//yaw:航向角&#32;&#32;&#32;精度:0.1°&#32;&#32;&#32;范围:-180.0°&lt;---&gt;&#32;+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">//&#32;&#32;&#32;&#32;其他,失败</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>&#32;<link linkend="_group___d_r_i_v_e_r_s_1gacb825f2fd99c3044d012a9b25608cc18">mpu_dmp_get_data</link>(<emphasis role="keywordtype">float</emphasis>&#32;*pitch,<emphasis role="keywordtype">float</emphasis>&#32;*roll,<emphasis role="keywordtype">float</emphasis>&#32;*yaw){
<anchor xml:id="_inv__mpu_8c_source_1l02971"/>02971 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">float</emphasis>&#32;q0=1.0f,q1=0.0f,q2=0.0f,q3=0.0f;
<anchor xml:id="_inv__mpu_8c_source_1l02972"/>02972 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">long</emphasis>&#32;sensor_timestamp;
<anchor xml:id="_inv__mpu_8c_source_1l02973"/>02973 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">short</emphasis>&#32;gyro[3],&#32;accel[3],&#32;sensors;
<anchor xml:id="_inv__mpu_8c_source_1l02974"/>02974 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">unsigned</emphasis>&#32;<emphasis role="keywordtype">char</emphasis>&#32;more;
<anchor xml:id="_inv__mpu_8c_source_1l02975"/>02975 &#32;&#32;&#32;&#32;<emphasis role="keywordtype">long</emphasis>&#32;quat[4];&#32;
<anchor xml:id="_inv__mpu_8c_source_1l02976"/>02976 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>(<link linkend="_group___d_r_i_v_e_r_s_1ga02db5f25359abe84be002c543cdc3803">dmp_read_fifo</link>(gyro,&#32;accel,&#32;quat,&#32;&amp;sensor_timestamp,&#32;&amp;sensors,&amp;more))<emphasis role="keywordflow">return</emphasis>&#32;1;&#32;&#32;&#32;&#32;&#32;
<anchor xml:id="_inv__mpu_8c_source_1l02977"/>02977 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Gyro&#32;and&#32;accel&#32;data&#32;are&#32;written&#32;to&#32;the&#32;FIFO&#32;by&#32;the&#32;DMP&#32;in&#32;chip&#32;frame&#32;and&#32;hardware&#32;units.</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02978"/>02978 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;*&#32;This&#32;behavior&#32;is&#32;convenient&#32;because&#32;it&#32;keeps&#32;the&#32;gyro&#32;and&#32;accel&#32;outputs&#32;of&#32;dmp_read_fifo&#32;and&#32;mpu_read_fifo&#32;consistent.</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02979"/>02979 <emphasis role="comment">&#32;&#32;&#32;&#32;**/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02980"/>02980 &#32;&#32;&#32;&#32;<emphasis role="comment">/*if&#32;(sensors&#32;&amp;&#32;INV_XYZ_GYRO&#32;)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02981"/>02981 <emphasis role="comment">&#32;&#32;&#32;&#32;send_packet(PACKET_TYPE_GYRO,&#32;gyro);</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02982"/>02982 <emphasis role="comment">&#32;&#32;&#32;&#32;if&#32;(sensors&#32;&amp;&#32;INV_XYZ_ACCEL)</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02983"/>02983 <emphasis role="comment">&#32;&#32;&#32;&#32;send_packet(PACKET_TYPE_ACCEL,&#32;accel);&#32;*/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02984"/>02984 &#32;&#32;&#32;&#32;<emphasis role="comment">/*&#32;Unlike&#32;gyro&#32;and&#32;accel,&#32;quaternions&#32;are&#32;written&#32;to&#32;the&#32;FIFO&#32;in&#32;the&#32;body&#32;frame,&#32;q30.</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02985"/>02985 <emphasis role="comment">&#32;&#32;&#32;&#32;&#32;*&#32;The&#32;orientation&#32;is&#32;set&#32;by&#32;the&#32;scalar&#32;passed&#32;to&#32;dmp_set_orientation&#32;during&#32;initialization.&#32;</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02986"/>02986 <emphasis role="comment">&#32;&#32;&#32;&#32;**/</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02987"/>02987 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">if</emphasis>(sensors&amp;<link linkend="_group___d_r_i_v_e_r_s_1ga3d79cffe845a796a27d03432a1f2ade0">INV_WXYZ_QUAT</link>)&#32;
<anchor xml:id="_inv__mpu_8c_source_1l02988"/>02988 &#32;&#32;&#32;&#32;{
<anchor xml:id="_inv__mpu_8c_source_1l02989"/>02989 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;q0&#32;=&#32;quat[0]&#32;/&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga0c2ff73765f99e113d4f99826f9601e5">q30</link>;&#32;<emphasis role="comment">//q30格式转换为浮点数</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02990"/>02990 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;q1&#32;=&#32;quat[1]&#32;/&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga0c2ff73765f99e113d4f99826f9601e5">q30</link>;
<anchor xml:id="_inv__mpu_8c_source_1l02991"/>02991 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;q2&#32;=&#32;quat[2]&#32;/&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga0c2ff73765f99e113d4f99826f9601e5">q30</link>;
<anchor xml:id="_inv__mpu_8c_source_1l02992"/>02992 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;q3&#32;=&#32;quat[3]&#32;/&#32;<link linkend="_group___d_r_i_v_e_r_s_1ga0c2ff73765f99e113d4f99826f9601e5">q30</link>;&#32;
<anchor xml:id="_inv__mpu_8c_source_1l02993"/>02993 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;<emphasis role="comment">//计算得到俯仰角/横滚角/航向角</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02994"/>02994 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;*pitch&#32;=&#32;asin(-2&#32;*&#32;q1&#32;*&#32;q3&#32;+&#32;2&#32;*&#32;q0*&#32;q2)*&#32;57.3;&#32;<emphasis role="comment">//&#32;pitch</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02995"/>02995 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;*roll&#32;&#32;=&#32;atan2(2&#32;*&#32;q2&#32;*&#32;q3&#32;+&#32;2&#32;*&#32;q0&#32;*&#32;q1,&#32;-2&#32;*&#32;q1&#32;*&#32;q1&#32;-&#32;2&#32;*&#32;q2*&#32;q2&#32;+&#32;1)*&#32;57.3;&#32;<emphasis role="comment">//&#32;roll</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02996"/>02996 &#32;&#32;&#32;&#32;&#32;&#32;&#32;&#32;*yaw&#32;&#32;&#32;=&#32;atan2(2*(q1*q2&#32;+&#32;q0*q3),q0*q0+q1*q1-q2*q2-q3*q3)&#32;*&#32;57.3;&#32;&#32;&#32;<emphasis role="comment">//yaw</emphasis>
<anchor xml:id="_inv__mpu_8c_source_1l02997"/>02997 &#32;&#32;&#32;&#32;}<emphasis role="keywordflow">else</emphasis>&#32;<emphasis role="keywordflow">return</emphasis>&#32;2;
<anchor xml:id="_inv__mpu_8c_source_1l02998"/>02998 &#32;&#32;&#32;&#32;<emphasis role="keywordflow">return</emphasis>&#32;0;
<anchor xml:id="_inv__mpu_8c_source_1l02999"/>02999 }
</programlisting></section>