<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Sensors中的主题 Re: G-sensor FXLS8471Q</title>
    <link>https://community.nxp.com/t5/Sensors/G-sensor-FXLS8471Q/m-p/416659#M1863</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Tomas,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Below is my source code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void Initial_GSensor(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CS_B_PutVal(1);//int the CS to High&amp;nbsp; &lt;BR /&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GSensor_Write_Addr_Cmd(XYZ_DATA_CFG, 0x12); // +/-8g range with ~0.976mg/LSB &lt;BR /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set_Roll_Over();&lt;BR /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set_Transient_Detection();&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GSensor_Write_Addr_Cmd(CTRL_REG1, 0x39);&amp;nbsp;&amp;nbsp;&amp;nbsp; // ODR = 1.56Hz, Normal mode, Active mode&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GSensor_Write_Addr_Cmd(CTRL_REG2, 0x02);&amp;nbsp;&amp;nbsp;&amp;nbsp; // Reset, High Resolution mode&lt;BR /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Get_GSensor_Calibration(); &lt;BR /&gt;}&lt;/P&gt;&lt;P&gt; &lt;BR /&gt;void Get_GSensor_XYZ(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GSensor_Read_Addr_Cmd(OUT_X_MSB, 7);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; X_MSB = GSensor_Data[1];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; X_LSB = GSensor_Data[2];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Y_MSB = GSensor_Data[3];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Y_LSB = GSensor_Data[4];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Z_MSB = GSensor_Data[5];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Z_LSB = GSensor_Data[6];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; G_Sensor.Xout_14bit = ((X_MSB &amp;lt;&amp;lt; 8) | (X_LSB))&amp;gt;&amp;gt;2;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; G_Sensor.Yout_14bit = ((Y_MSB &amp;lt;&amp;lt; 8) | (Y_LSB))&amp;gt;&amp;gt;2;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; G_Sensor.Zout_14bit = ((Z_MSB &amp;lt;&amp;lt; 8) | (Z_LSB))&amp;gt;&amp;gt;2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(G_Sensor.Xout_14bit &amp;gt;= TWO_COMPLEMENT){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; X = ((X_MSB &amp;lt;&amp;lt; 8) | (X_LSB))&amp;gt;&amp;gt;2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; flip all the 14 bits &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; X = (X ^ 0x3FFF) + 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; G_Sensor.Xout_g = X * SENSITIVITY * (-1);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Compute X-axis output value in g's&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }else{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; G_Sensor.Xout_g = G_Sensor.Xout_14bit*SENSITIVITY;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Compute X-axis output value in g's&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(G_Sensor.Yout_14bit &amp;gt;= TWO_COMPLEMENT){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Y = ((Y_MSB &amp;lt;&amp;lt; 8) | (Y_LSB))&amp;gt;&amp;gt;2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; flip all the 14 bits&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Y = (Y ^ 0x3FFF) + 1;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; G_Sensor.Yout_g = Y * SENSITIVITY * (-1);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Compute Y-axis output value in g's&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }else{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; G_Sensor.Yout_g = G_Sensor.Yout_14bit*SENSITIVITY;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Compute Y-axis output value in g's&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(G_Sensor.Zout_14bit &amp;gt;= TWO_COMPLEMENT){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Z = ((Z_MSB &amp;lt;&amp;lt; 8) | (Z_LSB))&amp;gt;&amp;gt;2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; flip all the 14 bits &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Z = (Z ^ 0x3FFF) + 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; G_Sensor.Zout_g = Z * SENSITIVITY * (-1);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Compute Z-axis output value in g's&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }else{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; G_Sensor.Zout_g = G_Sensor.Zout_14bit*SENSITIVITY;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Compute Z-axis output value in g's&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void Get_GSensor_Calibration(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GSensor_Write_Addr_Cmd(CTRL_REG1, 0x18);&amp;nbsp;&amp;nbsp; //Set device in 100 Hz ODR, Standby&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GSensor_Read_Addr_Cmd(OUT_X_MSB, 7);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; X_MSB = GSensor_Data[1];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; X_LSB = GSensor_Data[2];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Y_MSB = GSensor_Data[3];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Y_LSB = GSensor_Data[4];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Z_MSB = GSensor_Data[5];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Z_LSB = GSensor_Data[6];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; G_Sensor.Xout_14bit = ((X_MSB &amp;lt;&amp;lt; 8) | (X_LSB))&amp;gt;&amp;gt;2;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; G_Sensor.Yout_14bit = ((Y_MSB &amp;lt;&amp;lt; 8) | (Y_LSB))&amp;gt;&amp;gt;2;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; G_Sensor.Zout_14bit = ((Z_MSB &amp;lt;&amp;lt; 8) | (Z_LSB))&amp;gt;&amp;gt;2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; X_offset = G_Sensor.Xout_14bit / 8 * (-1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Y_offset = G_Sensor.Yout_14bit / 8 * (-1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Z_offset = (G_Sensor.Zout_14bit - SENSITIVITY) / 8 * (-1);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GSensor_Write_Addr_Cmd(CTRL_REG1, 0x39);&amp;nbsp;&amp;nbsp;&amp;nbsp; // ODR = 1.56Hz, Reduced noise, Active mode&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;}&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void GSensor_Read_Addr_Cmd(char Addr,word len)&lt;BR /&gt;{&amp;nbsp; &lt;BR /&gt;&amp;nbsp; isoSPI1_TComData temp_char;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; word i; &lt;BR /&gt; &lt;BR /&gt;&amp;nbsp; Delay_ms_GSensor(1);&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp; CS_B_PutVal(0);//CS low&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; Delay_ms_GSensor(1);&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; Check_Value = 1;&lt;BR /&gt;&amp;nbsp; TimeOut_CNT = 0;&lt;BR /&gt;&amp;nbsp; while( (Check_Value != 0) &amp;amp;&amp;amp; (TimeOut_CNT &amp;lt; 3000)){ &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Check_Value = isoSPI1_SendChar( ((~0x80) &amp;amp; Addr) );&amp;nbsp;&amp;nbsp; //&amp;nbsp; R/W, ADDR[6], ADDR[5], ADDR[4], ADDR[3], ADDR[2], ADDR[1], ADDR[0]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TimeOut_CNT++;&lt;BR /&gt;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; Check_Value = 1;&lt;BR /&gt;&amp;nbsp; TimeOut_CNT = 0;&lt;BR /&gt;&amp;nbsp; while( (Check_Value != 0) &amp;amp;&amp;amp; (TimeOut_CNT &amp;lt; 3000)){ &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Check_Value = isoSPI1_SendChar(Addr);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; ADDR[7], X, X, X, X, X, X, X&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TimeOut_CNT++;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; }&amp;nbsp; &lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; Delay_ms_GSensor(1);&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; for(i=0;i&amp;lt;len;i++)&lt;BR /&gt;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; isoSPI1_SendChar(0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; dummy&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Check_Value = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TimeOut_CNT = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while( (Check_Value != 0) &amp;amp;&amp;amp; (TimeOut_CNT &amp;lt; 3000)){ &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Check_Value = isoSPI1_RecvChar(&amp;amp;temp_char);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; DATA[7], DATA[6], DATA[5], DATA[4], DATA[3], DATA[2], DATA[1], DATA[0]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TimeOut_CNT++;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GSensor_Data[i] = temp_char;&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; Delay_ms_GSensor(1);&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; CS_B_PutVal(1);//CS High&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; Delay_ms_GSensor(1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void GSensor_Write_Addr_Cmd(char Addr,char data)&lt;BR /&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt; &lt;BR /&gt;&amp;nbsp; Delay_ms_GSensor(1);&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp; CS_B_PutVal(0);//CS low &lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; Delay_ms_GSensor(1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; Check_Value = 1;&lt;BR /&gt;&amp;nbsp; TimeOut_CNT = 0;&lt;BR /&gt;&amp;nbsp; while( (Check_Value != 0) &amp;amp;&amp;amp; (TimeOut_CNT &amp;lt; 3000)){&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Check_Value = isoSPI1_SendChar( ((0x80) | Addr) );&amp;nbsp;&amp;nbsp; //&amp;nbsp; R/W, ADDR[6], ADDR[5], ADDR[4], ADDR[3], ADDR[2], ADDR[1], ADDR[0]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TimeOut_CNT++;&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; Check_Value = 1;&lt;BR /&gt;&amp;nbsp; TimeOut_CNT = 0;&lt;BR /&gt;&amp;nbsp; while( (Check_Value != 0) &amp;amp;&amp;amp; (TimeOut_CNT &amp;lt; 3000)){ &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Check_Value = isoSPI1_SendChar(Addr);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; ADDR[7], X, X, X, X, X, X, X&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TimeOut_CNT++; &lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; Check_Value = 1;&lt;BR /&gt;&amp;nbsp; TimeOut_CNT = 0;&lt;BR /&gt;&amp;nbsp; while( (Check_Value != 0) &amp;amp;&amp;amp; (TimeOut_CNT &amp;lt; 3000)){&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Check_Value = isoSPI1_SendChar(data);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; DATA[7], DATA[6], DATA[5], DATA[4], DATA[3], DATA[2], DATA[1], DATA[0]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TimeOut_CNT++;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; Delay_ms_GSensor(1);&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; CS_B_PutVal(1);//CS High&lt;/P&gt;&lt;P&gt;&amp;nbsp; Delay_ms_GSensor(1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 29 Sep 2015 08:52:39 GMT</pubDate>
    <dc:creator>monstor</dc:creator>
    <dc:date>2015-09-29T08:52:39Z</dc:date>
    <item>
      <title>G-sensor FXLS8471Q</title>
      <link>https://community.nxp.com/t5/Sensors/G-sensor-FXLS8471Q/m-p/416657#M1861</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I follow the AN4692 to configure my G-sensor. The output seems is normal. When we roll over the G-sensor, there is a normal output. However, after that the G-sensor output would become zero again immediately. We already disable the Auto-wake/sleep mode and low power mode. Please help.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Feb 2026 22:19:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/G-sensor-FXLS8471Q/m-p/416657#M1861</guid>
      <dc:creator>monstor</dc:creator>
      <dc:date>2026-02-03T22:19:10Z</dc:date>
    </item>
    <item>
      <title>Re: G-sensor FXLS8471Q</title>
      <link>https://community.nxp.com/t5/Sensors/G-sensor-FXLS8471Q/m-p/416658#M1862</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Henry,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It is hard to say where the problem might be. If you posted here your source code and ideally also timing diagrams from a logic analyzer, I might be able to help you in your investigation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Meanwhile, you may find useful my simple &lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-99917"&gt;FXLS8471Q bare-metal example code&lt;/A&gt; or another example code illustrating the use of the &lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-106050"&gt;vector-magnitude function&lt;/A&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Tomas&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-weight: inherit; font-style: italic; font-size: 10.6667px; font-family: inherit; color: #51626f; text-align: left; text-indent: 0px;"&gt;&lt;EM style="font-weight: inherit; font-style: italic; font-size: 10.6667px; font-family: inherit;"&gt;PS:&lt;SPAN class="Apple-converted-space" style="font-weight: inherit; font-style: inherit; font-size: 10.6667px; font-family: inherit;"&gt;&lt;SPAN class="Apple-converted-space"&gt; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;SPAN style="font-weight: inherit; font-style: italic; font-size: 10.6667px; font-family: inherit; color: #51626f; text-align: left; text-indent: 0px;"&gt;&lt;EM style="font-weight: inherit; font-style: italic; font-size: 10.6667px; font-family: inherit;"&gt;If my answer helps to solve your question, please mark it as "Correct" or “Helpful”. Thank you.&lt;/EM&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Sep 2015 08:37:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/G-sensor-FXLS8471Q/m-p/416658#M1862</guid>
      <dc:creator>TomasVaverka</dc:creator>
      <dc:date>2015-09-29T08:37:54Z</dc:date>
    </item>
    <item>
      <title>Re: G-sensor FXLS8471Q</title>
      <link>https://community.nxp.com/t5/Sensors/G-sensor-FXLS8471Q/m-p/416659#M1863</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Tomas,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Below is my source code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void Initial_GSensor(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CS_B_PutVal(1);//int the CS to High&amp;nbsp; &lt;BR /&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GSensor_Write_Addr_Cmd(XYZ_DATA_CFG, 0x12); // +/-8g range with ~0.976mg/LSB &lt;BR /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set_Roll_Over();&lt;BR /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Set_Transient_Detection();&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GSensor_Write_Addr_Cmd(CTRL_REG1, 0x39);&amp;nbsp;&amp;nbsp;&amp;nbsp; // ODR = 1.56Hz, Normal mode, Active mode&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GSensor_Write_Addr_Cmd(CTRL_REG2, 0x02);&amp;nbsp;&amp;nbsp;&amp;nbsp; // Reset, High Resolution mode&lt;BR /&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Get_GSensor_Calibration(); &lt;BR /&gt;}&lt;/P&gt;&lt;P&gt; &lt;BR /&gt;void Get_GSensor_XYZ(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GSensor_Read_Addr_Cmd(OUT_X_MSB, 7);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; X_MSB = GSensor_Data[1];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; X_LSB = GSensor_Data[2];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Y_MSB = GSensor_Data[3];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Y_LSB = GSensor_Data[4];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Z_MSB = GSensor_Data[5];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Z_LSB = GSensor_Data[6];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; G_Sensor.Xout_14bit = ((X_MSB &amp;lt;&amp;lt; 8) | (X_LSB))&amp;gt;&amp;gt;2;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; G_Sensor.Yout_14bit = ((Y_MSB &amp;lt;&amp;lt; 8) | (Y_LSB))&amp;gt;&amp;gt;2;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; G_Sensor.Zout_14bit = ((Z_MSB &amp;lt;&amp;lt; 8) | (Z_LSB))&amp;gt;&amp;gt;2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(G_Sensor.Xout_14bit &amp;gt;= TWO_COMPLEMENT){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; X = ((X_MSB &amp;lt;&amp;lt; 8) | (X_LSB))&amp;gt;&amp;gt;2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; flip all the 14 bits &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; X = (X ^ 0x3FFF) + 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; G_Sensor.Xout_g = X * SENSITIVITY * (-1);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Compute X-axis output value in g's&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }else{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; G_Sensor.Xout_g = G_Sensor.Xout_14bit*SENSITIVITY;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Compute X-axis output value in g's&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(G_Sensor.Yout_14bit &amp;gt;= TWO_COMPLEMENT){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Y = ((Y_MSB &amp;lt;&amp;lt; 8) | (Y_LSB))&amp;gt;&amp;gt;2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; flip all the 14 bits&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Y = (Y ^ 0x3FFF) + 1;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; G_Sensor.Yout_g = Y * SENSITIVITY * (-1);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Compute Y-axis output value in g's&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }else{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; G_Sensor.Yout_g = G_Sensor.Yout_14bit*SENSITIVITY;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Compute Y-axis output value in g's&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(G_Sensor.Zout_14bit &amp;gt;= TWO_COMPLEMENT){&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Z = ((Z_MSB &amp;lt;&amp;lt; 8) | (Z_LSB))&amp;gt;&amp;gt;2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; flip all the 14 bits &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Z = (Z ^ 0x3FFF) + 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; G_Sensor.Zout_g = Z * SENSITIVITY * (-1);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Compute Z-axis output value in g's&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }else{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; G_Sensor.Zout_g = G_Sensor.Zout_14bit*SENSITIVITY;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Compute Z-axis output value in g's&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void Get_GSensor_Calibration(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GSensor_Write_Addr_Cmd(CTRL_REG1, 0x18);&amp;nbsp;&amp;nbsp; //Set device in 100 Hz ODR, Standby&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GSensor_Read_Addr_Cmd(OUT_X_MSB, 7);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; X_MSB = GSensor_Data[1];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; X_LSB = GSensor_Data[2];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Y_MSB = GSensor_Data[3];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Y_LSB = GSensor_Data[4];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Z_MSB = GSensor_Data[5];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Z_LSB = GSensor_Data[6];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; G_Sensor.Xout_14bit = ((X_MSB &amp;lt;&amp;lt; 8) | (X_LSB))&amp;gt;&amp;gt;2;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; G_Sensor.Yout_14bit = ((Y_MSB &amp;lt;&amp;lt; 8) | (Y_LSB))&amp;gt;&amp;gt;2;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; G_Sensor.Zout_14bit = ((Z_MSB &amp;lt;&amp;lt; 8) | (Z_LSB))&amp;gt;&amp;gt;2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; X_offset = G_Sensor.Xout_14bit / 8 * (-1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Y_offset = G_Sensor.Yout_14bit / 8 * (-1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Z_offset = (G_Sensor.Zout_14bit - SENSITIVITY) / 8 * (-1);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GSensor_Write_Addr_Cmd(CTRL_REG1, 0x39);&amp;nbsp;&amp;nbsp;&amp;nbsp; // ODR = 1.56Hz, Reduced noise, Active mode&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;}&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void GSensor_Read_Addr_Cmd(char Addr,word len)&lt;BR /&gt;{&amp;nbsp; &lt;BR /&gt;&amp;nbsp; isoSPI1_TComData temp_char;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; word i; &lt;BR /&gt; &lt;BR /&gt;&amp;nbsp; Delay_ms_GSensor(1);&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp; CS_B_PutVal(0);//CS low&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; Delay_ms_GSensor(1);&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; Check_Value = 1;&lt;BR /&gt;&amp;nbsp; TimeOut_CNT = 0;&lt;BR /&gt;&amp;nbsp; while( (Check_Value != 0) &amp;amp;&amp;amp; (TimeOut_CNT &amp;lt; 3000)){ &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Check_Value = isoSPI1_SendChar( ((~0x80) &amp;amp; Addr) );&amp;nbsp;&amp;nbsp; //&amp;nbsp; R/W, ADDR[6], ADDR[5], ADDR[4], ADDR[3], ADDR[2], ADDR[1], ADDR[0]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TimeOut_CNT++;&lt;BR /&gt;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; Check_Value = 1;&lt;BR /&gt;&amp;nbsp; TimeOut_CNT = 0;&lt;BR /&gt;&amp;nbsp; while( (Check_Value != 0) &amp;amp;&amp;amp; (TimeOut_CNT &amp;lt; 3000)){ &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Check_Value = isoSPI1_SendChar(Addr);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; ADDR[7], X, X, X, X, X, X, X&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TimeOut_CNT++;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; }&amp;nbsp; &lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; Delay_ms_GSensor(1);&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; for(i=0;i&amp;lt;len;i++)&lt;BR /&gt;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; isoSPI1_SendChar(0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; dummy&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Check_Value = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TimeOut_CNT = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while( (Check_Value != 0) &amp;amp;&amp;amp; (TimeOut_CNT &amp;lt; 3000)){ &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Check_Value = isoSPI1_RecvChar(&amp;amp;temp_char);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; DATA[7], DATA[6], DATA[5], DATA[4], DATA[3], DATA[2], DATA[1], DATA[0]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TimeOut_CNT++;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GSensor_Data[i] = temp_char;&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; Delay_ms_GSensor(1);&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; CS_B_PutVal(1);//CS High&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; Delay_ms_GSensor(1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void GSensor_Write_Addr_Cmd(char Addr,char data)&lt;BR /&gt;{&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt; &lt;BR /&gt;&amp;nbsp; Delay_ms_GSensor(1);&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp; CS_B_PutVal(0);//CS low &lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; Delay_ms_GSensor(1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; Check_Value = 1;&lt;BR /&gt;&amp;nbsp; TimeOut_CNT = 0;&lt;BR /&gt;&amp;nbsp; while( (Check_Value != 0) &amp;amp;&amp;amp; (TimeOut_CNT &amp;lt; 3000)){&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Check_Value = isoSPI1_SendChar( ((0x80) | Addr) );&amp;nbsp;&amp;nbsp; //&amp;nbsp; R/W, ADDR[6], ADDR[5], ADDR[4], ADDR[3], ADDR[2], ADDR[1], ADDR[0]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TimeOut_CNT++;&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; Check_Value = 1;&lt;BR /&gt;&amp;nbsp; TimeOut_CNT = 0;&lt;BR /&gt;&amp;nbsp; while( (Check_Value != 0) &amp;amp;&amp;amp; (TimeOut_CNT &amp;lt; 3000)){ &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Check_Value = isoSPI1_SendChar(Addr);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; ADDR[7], X, X, X, X, X, X, X&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TimeOut_CNT++; &lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; Check_Value = 1;&lt;BR /&gt;&amp;nbsp; TimeOut_CNT = 0;&lt;BR /&gt;&amp;nbsp; while( (Check_Value != 0) &amp;amp;&amp;amp; (TimeOut_CNT &amp;lt; 3000)){&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Check_Value = isoSPI1_SendChar(data);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp; DATA[7], DATA[6], DATA[5], DATA[4], DATA[3], DATA[2], DATA[1], DATA[0]&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TimeOut_CNT++;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; Delay_ms_GSensor(1);&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; CS_B_PutVal(1);//CS High&lt;/P&gt;&lt;P&gt;&amp;nbsp; Delay_ms_GSensor(1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 29 Sep 2015 08:52:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Sensors/G-sensor-FXLS8471Q/m-p/416659#M1863</guid>
      <dc:creator>monstor</dc:creator>
      <dc:date>2015-09-29T08:52:39Z</dc:date>
    </item>
  </channel>
</rss>

