G-sensor FXLS8471Q

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

G-sensor FXLS8471Q

2,871 次查看
monstor
Contributor II

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.

标签 (1)
0 项奖励
2 回复数

2,502 次查看
TomasVaverka
NXP TechSupport
NXP TechSupport

Hi Henry,

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.

Meanwhile, you may find useful my simple FXLS8471Q bare-metal example code or another example code illustrating the use of the vector-magnitude function.

Regards,

Tomas

PS: If my answer helps to solve your question, please mark it as "Correct" or “Helpful”. Thank you.

0 项奖励

2,502 次查看
monstor
Contributor II

Dear Tomas,

Below is my source code.

void Initial_GSensor(void)
{
     CS_B_PutVal(1);//int the CS to High 

      GSensor_Write_Addr_Cmd(XYZ_DATA_CFG, 0x12); // +/-8g range with ~0.976mg/LSB
//     Set_Roll_Over();
//     Set_Transient_Detection();  
       GSensor_Write_Addr_Cmd(CTRL_REG1, 0x39);    // ODR = 1.56Hz, Normal mode, Active mode
       GSensor_Write_Addr_Cmd(CTRL_REG2, 0x02);    // Reset, High Resolution mode
//     Get_GSensor_Calibration();
}


void Get_GSensor_XYZ(void)
{
   
    GSensor_Read_Addr_Cmd(OUT_X_MSB, 7);
    X_MSB = GSensor_Data[1];
    X_LSB = GSensor_Data[2];
    Y_MSB = GSensor_Data[3];
    Y_LSB = GSensor_Data[4];
    Z_MSB = GSensor_Data[5];
    Z_LSB = GSensor_Data[6];
   
    G_Sensor.Xout_14bit = ((X_MSB << 8) | (X_LSB))>>2; 
    G_Sensor.Yout_14bit = ((Y_MSB << 8) | (Y_LSB))>>2; 
    G_Sensor.Zout_14bit = ((Z_MSB << 8) | (Z_LSB))>>2;        
   
    if(G_Sensor.Xout_14bit >= TWO_COMPLEMENT){
      X = ((X_MSB << 8) | (X_LSB))>>2;                      //  flip all the 14 bits
      X = (X ^ 0x3FFF) + 1;     
      G_Sensor.Xout_g = X * SENSITIVITY * (-1);             // Compute X-axis output value in g's 
    }else{
      G_Sensor.Xout_g = G_Sensor.Xout_14bit*SENSITIVITY;    // Compute X-axis output value in g's     
    }   
   
    if(G_Sensor.Yout_14bit >= TWO_COMPLEMENT){
      Y = ((Y_MSB << 8) | (Y_LSB))>>2;                      //  flip all the 14 bits 
      Y = (Y ^ 0x3FFF) + 1;  
      G_Sensor.Yout_g = Y * SENSITIVITY * (-1);             // Compute Y-axis output value in g's 
    }else{
      G_Sensor.Yout_g = G_Sensor.Yout_14bit*SENSITIVITY;    // Compute Y-axis output value in g's     
    }
   
    if(G_Sensor.Zout_14bit >= TWO_COMPLEMENT){
      Z = ((Z_MSB << 8) | (Z_LSB))>>2;                      //  flip all the 14 bits
      Z = (Z ^ 0x3FFF) + 1;     
      G_Sensor.Zout_g = Z * SENSITIVITY * (-1);             // Compute Z-axis output value in g's     
    }else{
      G_Sensor.Zout_g = G_Sensor.Zout_14bit*SENSITIVITY;    // Compute Z-axis output value in g's     
    }
}

void Get_GSensor_Calibration(void)
{
  
    GSensor_Write_Addr_Cmd(CTRL_REG1, 0x18);   //Set device in 100 Hz ODR, Standby
   
    GSensor_Read_Addr_Cmd(OUT_X_MSB, 7);
    X_MSB = GSensor_Data[1];
    X_LSB = GSensor_Data[2];
    Y_MSB = GSensor_Data[3];
    Y_LSB = GSensor_Data[4];
    Z_MSB = GSensor_Data[5];
    Z_LSB = GSensor_Data[6];
   
    G_Sensor.Xout_14bit = ((X_MSB << 8) | (X_LSB))>>2; 
    G_Sensor.Yout_14bit = ((Y_MSB << 8) | (Y_LSB))>>2; 
    G_Sensor.Zout_14bit = ((Z_MSB << 8) | (Z_LSB))>>2;        
   
    X_offset = G_Sensor.Xout_14bit / 8 * (-1);
    Y_offset = G_Sensor.Yout_14bit / 8 * (-1);
    Z_offset = (G_Sensor.Zout_14bit - SENSITIVITY) / 8 * (-1);   
   
    GSensor_Write_Addr_Cmd(CTRL_REG1, 0x39);    // ODR = 1.56Hz, Reduced noise, Active mode
       

void GSensor_Read_Addr_Cmd(char Addr,word len)

  isoSPI1_TComData temp_char;   
  word i;

  Delay_ms_GSensor(1);

  CS_B_PutVal(0);//CS low
  
  Delay_ms_GSensor(1);
 
  Check_Value = 1;
  TimeOut_CNT = 0;
  while( (Check_Value != 0) && (TimeOut_CNT < 3000)){
    Check_Value = isoSPI1_SendChar( ((~0x80) & Addr) );   //  R/W, ADDR[6], ADDR[5], ADDR[4], ADDR[3], ADDR[2], ADDR[1], ADDR[0]
    TimeOut_CNT++;
  }   
 
  Check_Value = 1;
  TimeOut_CNT = 0;
  while( (Check_Value != 0) && (TimeOut_CNT < 3000)){
    Check_Value = isoSPI1_SendChar(Addr);                 //  ADDR[7], X, X, X, X, X, X, X
    TimeOut_CNT++;                               
  } 
 
  Delay_ms_GSensor(1);
 
  for(i=0;i<len;i++)
  {    
    isoSPI1_SendChar(0);                  //  dummy
   
    Check_Value = 1;
    TimeOut_CNT = 0;
    while( (Check_Value != 0) && (TimeOut_CNT < 3000)){
      Check_Value = isoSPI1_RecvChar(&temp_char);         //  DATA[7], DATA[6], DATA[5], DATA[4], DATA[3], DATA[2], DATA[1], DATA[0]
      TimeOut_CNT++;                               
    }   
    GSensor_Data[i] = temp_char;
  }
 
  Delay_ms_GSensor(1);
 
  CS_B_PutVal(1);//CS High
 
  Delay_ms_GSensor(1);
  
}

void GSensor_Write_Addr_Cmd(char Addr,char data)
{   

  Delay_ms_GSensor(1);

  CS_B_PutVal(0);//CS low
  
  Delay_ms_GSensor(1);
   
  Check_Value = 1;
  TimeOut_CNT = 0;
  while( (Check_Value != 0) && (TimeOut_CNT < 3000)){   
    Check_Value = isoSPI1_SendChar( ((0x80) | Addr) );   //  R/W, ADDR[6], ADDR[5], ADDR[4], ADDR[3], ADDR[2], ADDR[1], ADDR[0]
    TimeOut_CNT++;
  }
 
  Check_Value = 1;
  TimeOut_CNT = 0;
  while( (Check_Value != 0) && (TimeOut_CNT < 3000)){
    Check_Value = isoSPI1_SendChar(Addr);                //  ADDR[7], X, X, X, X, X, X, X
    TimeOut_CNT++;
  }
 
  Check_Value = 1;
  TimeOut_CNT = 0;
  while( (Check_Value != 0) && (TimeOut_CNT < 3000)){   
    Check_Value = isoSPI1_SendChar(data);                //  DATA[7], DATA[6], DATA[5], DATA[4], DATA[3], DATA[2], DATA[1], DATA[0]
    TimeOut_CNT++; 
  }
     
  Delay_ms_GSensor(1);
 
  CS_B_PutVal(1);//CS High

  Delay_ms_GSensor(1);
  
}

0 项奖励
%3CLINGO-SUB%20id%3D%22lingo-sub-416657%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EG%20%E4%BC%A0%E6%84%9F%E5%99%A8%20FXLS8471Q%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-416657%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%26lt%3Bmeta%20http-equiv%3D%22Content-Type%22%20content%3D%22text%2Fhtml%3B%20charset%3Dutf-8%22%20%2F%26gt%3B%0A%3CP%3E%E6%88%91%E6%8C%89%E7%85%A7%20AN4692%20%E9%85%8D%E7%BD%AE%E6%88%91%E7%9A%84%20G%20%E4%BC%A0%E6%84%9F%E5%99%A8%E3%80%82%E8%BE%93%E5%87%BA%E4%BC%BC%E4%B9%8E%E6%AD%A3%E5%B8%B8%E3%80%82%E5%BD%93%E6%88%91%E4%BB%AC%E7%BF%BB%E8%BD%AC%20G%20%E4%BC%A0%E6%84%9F%E5%99%A8%E6%97%B6%EF%BC%8C%E4%BC%9A%E6%9C%89%E6%AD%A3%E5%B8%B8%E8%BE%93%E5%87%BA%E3%80%82%E4%B8%8D%E8%BF%87%EF%BC%8C%E4%B9%8B%E5%90%8E%20G%20%E4%BC%A0%E6%84%9F%E5%99%A8%E7%9A%84%E8%BE%93%E5%87%BA%E4%BC%9A%E7%AB%8B%E5%8D%B3%E5%8F%98%E4%B8%BA%E9%9B%B6%E3%80%82%E6%88%91%E4%BB%AC%E5%B7%B2%E7%BB%8F%E7%A6%81%E7%94%A8%E4%BA%86%E8%87%AA%E5%8A%A8%E5%94%A4%E9%86%92%2F%E7%9D%A1%E7%9C%A0%E6%A8%A1%E5%BC%8F%E5%92%8C%E4%BD%8E%E5%8A%9F%E8%80%97%E6%A8%A1%E5%BC%8F%E3%80%82%E8%AF%B7%E5%B8%AE%E5%B8%AE%E6%88%91%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-416657%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3E%E5%8A%A0%E9%80%9F%E5%BA%A6%E4%BC%A0%E6%84%9F%E5%99%A8%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-416659%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20G-sensor%20FXLS8471Q%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-416659%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%26lt%3Bmeta%20http-equiv%3D%22Content-Type%22%20content%3D%22text%2Fhtml%3B%20charset%3Dutf-8%22%20%2F%26gt%3B%0A%3CP%3E%E4%BA%B2%E7%88%B1%E7%9A%84%E6%89%98%E9%A9%AC%E6%96%AF%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%E4%BB%A5%E4%B8%8B%E6%98%AF%E6%88%91%E7%9A%84%E6%BA%90%E4%BB%A3%E7%A0%81%E3%80%82%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3Evoid%20Initial_GSensor(void)%3CBR%20%2F%3E%7B%3CBR%20%2F%3E%20CS_B_PutVal(1)%3B%2F%2Fint%20the%20CS%20to%20High%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20GSensor_Write_Addr_Cmd(XYZ_DATA_CFG%2C%200x12)%3B%20%2F%2F%20%2B%2F-8g%20range%20with%20~0.976mg%2FLSB%3CBR%20%2F%3E%2F%2F%20Set_Roll_Over()%3B%3CBR%20%2F%3E%2F%2F%20Set_Transient_Detection()%3B%3CBR%20%2F%3E%20GSensor_Write_Addr_Cmd(CTRL_REG1%2C%200x39)%3B%20%2F%2F%20ODR%20%3D%201.56Hz%E3%80%81%E6%99%AE%E9%80%9A%E6%A8%A1%E5%BC%8F%EF%BC%8C%E8%BF%90%E8%A1%8C%E6%A8%A1%E5%BC%8F%20%3CBR%20%2F%3E%20gSensor_Write_addr_cmd%20(CTRL_REG2%EF%BC%8C0x02)%3B%2F%2FRESET%EF%BC%8C%E9%AB%98%E5%88%86%E8%BE%A8%E7%8E%87%E6%A8%A1%E5%BC%8F%2F%2Fget_get_GSensor_Calibration%20()%3B%7D%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%3C%2FP%3E%3CP%3E%20%3CBR%20%2F%3Evoid%20Get_GSensor_XYZ(void)%3CBR%20%2F%3E%7B%3CBR%20%2F%3E%20%20%20%20%3CBR%20%2F%3E%20GSensor_Read_Addr_Cmd(OUT_X_MSB%2C%207)%3B%3CBR%20%2F%3E%20X_MSB%20%3D%20GSensor_Data%5B1%5D%3B%3CBR%20%2F%3E%20X_LSB%20%3D%20GSensor_Data%5B2%5D%EF%BC%9B%3CBR%20%2F%3E%20%20%20Y_MSB%20%3D%20GSensor_Data%5B3%5D%EF%BC%9B%3CBR%20%2F%3E%20Y_LSB%20%3D%20GSensor_Data%5B4%5D%EF%BC%9B%3CBR%20%2F%3E%20Z_MSB%20%3D%20GSensor_Data%5B5%5D%EF%BC%9B%3CBR%20%2F%3E%20Z_LSB%20%3D%20GSensor_Data%5B6%5D%EF%BC%9B%3CBR%20%2F%3E%20%20%20%20%3CBR%20%2F%3E%20G_Sensor%E3%80%82Xout_14bit%20%3D%20((X_MSB%26lt%3B%26lt%3B%20%3CLI-EMOJI%20id%3D%22lia_smiling-face-with-sunglasses%22%20title%3D%22%3Asmiling_face_with_sunglasses%3A%22%3E%3C%2FLI-EMOJI%3E%20%7C%20(X_LSB))%26gt%3B%26gt%3B%202%3B%3CBR%20%2F%3E%20G_Sensor.Yout_14bit%20%3D%20((Y_MSB%26lt%3B%26lt%3B%20%3CLI-EMOJI%20id%3D%22lia_smiling-face-with-sunglasses%22%20title%3D%22%3Asmiling_face_with_sunglasses%3A%22%3E%3C%2FLI-EMOJI%3E%20%7C%20(Y_LSB))%26gt%3B%26gt%3B%202%3B%3CBR%20%2F%3E%20G_Sensor.Zout_14bit%20%3D%20((Z_MSB%26lt%3B%26lt%3B%20%3CLI-EMOJI%20id%3D%22lia_smiling-face-with-sunglasses%22%20title%3D%22%3Asmiling_face_with_sunglasses%3A%22%3E%3C%2FLI-EMOJI%3E%20%7C%20(Z_LSB))%26gt%3B%26gt%3B%202%3B%3CBR%20%2F%3E%20%20%20%20%3CBR%20%2F%3E%20if(G_Sensor.Xout_14bit%26gt%3B%3D%20TWO_COMPLEMENT)%7B%3CBR%20%2F%3E%20X%20%3D%20((X_MSB%26lt%3B%26lt%3B%20%3CLI-EMOJI%20id%3D%22lia_smiling-face-with-sunglasses%22%20title%3D%22%3Asmiling_face_with_sunglasses%3A%22%3E%3C%2FLI-EMOJI%3E%20%7C%20(X_LSB))%26gt%3B%26gt%3B%202%3B%20%2F%2F%20flip%20all%20the%2014%20bits%3CBR%20%2F%3E%20X%20%3D%20(X%20%5E%200x3FFF)%20%2B%201%3B%3CBR%20%2F%3E%20G_Sensor.Xout_g%20%3D%20X%20*%20SENSITIVITY%20*%20(-1)%3B%20%2F%2F%20%E4%BB%A5%20g%20%E4%B8%BA%E5%8D%95%E4%BD%8D%E8%AE%A1%E7%AE%97%20X%20%E8%BD%B4%E8%BE%93%E5%87%BA%E5%80%BC%3CBR%20%2F%3E%20%7Delse%7B%3CBR%20%2F%3E%20G_Sensor.Xout_g%20%3D%20G_Sensor.Xout_14bit*SENSITIVITY%3B%20%2F%2F%20%E4%BB%A5%20g%20%E4%B8%BA%E5%8D%95%E4%BD%8D%E8%AE%A1%E7%AE%97%20X%20%E8%BD%B4%E8%BE%93%E5%87%BA%E5%80%BC%3CBR%20%2F%3E%20%7D%3CBR%20%2F%3E%20%20%20%20%3CBR%20%2F%3E%20if(G_Sensor.Yout_14bit%26gt%3B%3D%20TWO_COMPLEMENT)%7B%3CBR%20%2F%3E%20Y%20%3D%20((Y_MSB%26lt%3B%26lt%3B%20%3CLI-EMOJI%20id%3D%22lia_smiling-face-with-sunglasses%22%20title%3D%22%3Asmiling_face_with_sunglasses%3A%22%3E%3C%2FLI-EMOJI%3E%20%7C%20(Y_LSB))%26gt%3B%26gt%3B%202%3B%20%2F%2F%20flip%20all%20the%2014%20bits%3CBR%20%2F%3E%20Y%20%3D%20(Y%20%5E%200x3FFF)%20%2B%201%3B%3CBR%20%2F%3E%20G_Sensor.Yout_g%20%3D%20Y%20*%20SENSITIVITY%20*%20(-1)%3B%20%2F%2F%20%E8%AE%A1%E7%AE%97%E4%BB%A5%20g%20%E4%B8%BA%E5%8D%95%E4%BD%8D%E7%9A%84%20Y%20%E8%BD%B4%E8%BE%93%E5%87%BA%E5%80%BC%3CBR%20%2F%3E%20%7Delse%7B%3CBR%20%2F%3E%20G_Sensor.Yout_g%20%3D%20G_Sensor.Yout_14bit*SENSITIVITY%3B%20%2F%2F%20%E8%AE%A1%E7%AE%97%E4%BB%A5%20g%20%E4%B8%BA%E5%8D%95%E4%BD%8D%E7%9A%84%20Y%20%E8%BD%B4%E8%BE%93%E5%87%BA%E5%80%BC%3CBR%20%2F%3E%20%7D%3CBR%20%2F%3E%20%20%20%20%3CBR%20%2F%3E%20if(G_Sensor.Zout_14bit)Zout_14bit%26gt%3B%3D%20TWO_COMPLEMENT)%7B%3CBR%20%2F%3E%20Z%20%3D%20((Z_MSB%26lt%3B%26lt%3B%20%3CLI-EMOJI%20id%3D%22lia_smiling-face-with-sunglasses%22%20title%3D%22%3Asmiling_face_with_sunglasses%3A%22%3E%3C%2FLI-EMOJI%3E%20%7C%20(Z_LSB))%26gt%3B%26gt%3B%202%3B%20%2F%2F%20flip%20all%20the%2014%20bits%3CBR%20%2F%3E%20Z%20%3D%20(Z%20%5E%200x3FFF)%20%2B%201%3B%3CBR%20%2F%3E%20G_Sensor.Zout_g%20%3D%20Z%20*%20SENSITIVITY%20*%20(-1)%3B%20%2F%2F%20%E4%BB%A5%20g%20%E4%B8%BA%E5%8D%95%E4%BD%8D%E8%AE%A1%E7%AE%97%20Z%20%E8%BD%B4%E8%BE%93%E5%87%BA%E5%80%BC%3CBR%20%2F%3E%20%7Delse%7B%3CBR%20%2F%3E%20G_Sensor.Zout_g%20%3D%20G_Sensor.Zout_14bit*SENSITIVITY%3B%20%2F%2F%20%E4%BB%A5%20g%20%E4%B8%BA%E5%8D%95%E4%BD%8D%E8%AE%A1%E7%AE%97%20Z%20%E8%BD%B4%E8%BE%93%E5%87%BA%E5%80%BC%3CBR%20%2F%3E%20%7D%3CBR%20%2F%3E%7D%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3Evoid%20get_gSensor_Calibration%20(void)%20%3CBR%20%2F%3E%20%7BgSensor_Wr%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20ite_addr_cmd%EF%BC%88CTRL_REG1%EF%BC%8C0x18%EF%BC%89%EF%BC%9B%2F%2F%E5%B0%86%E8%AE%BE%E5%A4%87%E8%AE%BE%E7%BD%AE%E4%B8%BA%20100%20Hz%20ODR%EF%BC%8C%E5%BE%85%E6%9C%BA%20gSensor_read_%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20addr_cmd%EF%BC%88OUT_X_MSB%EF%BC%8C7%EF%BC%89%EF%BC%9BX_MSB%20%3D%20gSensor_Data%20%5B2%5D%EF%BC%9BY_MSB%20%3D%20gSensor_Data%20%5B2%5D%EF%BC%9BY_MSB%20%3D%20gSensor_Data%20%5B2%5D%EF%BC%9BY_MSB%20%3D%20gSensor_Data%20%5B2%5D%EF%BC%9BY_MSB%20%3D%20gSensor_D%3D%20gSensor_Data%20%5B3%5D%EF%BC%9BY_LSB%20%3D%20gSensor_Data%20%5B4%5D%EF%BC%9BZ%20%3CBR%20%2F%3E%20_MSB%20%3D%20gSensor_Data%20%5B5%5D%EF%BC%9BZ_LSB%20%3D%20gSensor_Data%20%5B6%5D%EF%BC%9Bg_Sensor.%20%3CBR%20%2F%3E%20xout_14bit%20%3D%20((X_MSB%20%26lt%3B%20%26lt%3B%20%3CLI-EMOJI%20id%3D%22lia_smiling-face-with-sunglasses%22%20title%3D%22%3Asmiling_face_with_sunglasses%3A%22%3E%3C%2FLI-EMOJI%3E%20%7C%20(X_LSB))%20%26gt%3B%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%26gt%3B%202%3B%20%3CBR%20%2F%3E%20g_Sensor.yout_14bit%20%3D%20((Y_MSB%20%26lt%3B%20%26lt%3B%20%3CLI-EMOJI%20id%3D%22lia_smiling-face-with-sunglasses%22%20title%3D%22%3Asmiling_face_with_sunglasses%3A%22%3E%3C%2FLI-EMOJI%3E%20%7C%20(Y_LSB))%20%26gt%3B%20%26gt%3B%202%3B%20g_Sensor.zout_14bit%20%3D%20((Z_MSB%20%26lt%3B%20%26lt%3B%20%3CLI-EMOJI%20id%3D%22lia_smiling-face-with-sunglasses%22%20title%3D%22%3Asmiling_face_with_sunglasses%3A%22%3E%3C%2FLI-EMOJI%3E%20%7C%20(%3CBR%20%2F%3EZ_LSB))%20%26gt%3B%20%26gt%3B%202%3B%20x_offset%20%3D%20g_sensor.xout_14bit%2F8%20*%20(-1)%3B%20y_Offset%20%3D%20G_Sensor.xout_14bit%2F8%20*%20(-1)%3B%20y_Offset%20%3D%20G_Sensor.xout_14bit%2F8%20*%20(-1)%3B%20y_Offset%20%3D%20G_Sensor.sensor.xyout_14bit%2F8%20*%20(-1)%3B%20Z_%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%E5%81%8F%E7%A7%BB%E9%87%8F%20%3D%20(G_Sensor.zout_14bit-%E7%81%B5%E6%95%8F%E5%BA%A6)%2F8%20*%20(-1)%3B%20gSensor_%20%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20Write_addr_cmd%20(CTRL_REG1%2C%200x39)%3B%2F%2FODR%20%3D%201.56Hz%EF%BC%8C%E9%99%8D%E4%BD%8E%E5%99%AA%E9%9F%B3%EF%BC%8C%E8%BF%90%E8%A1%8C%E6%A8%A1%E5%BC%8F%20%3CBR%20%2F%3E%3CBR%20%2F%3E%7D%20%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3Evoid%20GSensor_Read_Addr_Cmd(char%20Addr%2Cword%20len)%3CBR%20%2F%3E%7B%3CBR%20%2F%3E%20isoSPI1_TComData%20temp_char%3B%3CBR%20%2F%3E%20word%20i%3B%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20Delay_ms_GSensor(1)%3B%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20CS_B_PutVal(0)%3B%2F%2FCS%20low%3CBR%20%2F%3E%20%20%20%3CBR%20%2F%3E%20Delay_ms_GSensor(1)%3B%3CBR%20%2F%3E%20%20%3CBR%20%2F%3E%20Check_Value%20%3D%201%3B%3CBR%20%2F%3E%20TimeOut_CNT%20%3D%200%3B%3CBR%20%2F%3E%20while(%20(Check_Value%20%EF%BC%81%3D%200)%26amp%3B%26amp%3B%20(TimeOut_CNT%26lt%3B%203000))%7B%3CBR%20%2F%3E%20Check_Value%20%3D%20isoSPI1_SendChar(%20((~0x80)%26amp%3B%20Addr)%20)%3B%20%2F%2F%20R%2FW%2C%20ADDR%5B6%5D%2C%20ADDR%5B5%5D%2C%20ADDR%5B4%5D%2C%20ADDR%5B3%5D%2C%20ADDR%5B2%5D%2C%20ADDR%5B1%5D%2C%20ADDR%5B0%5D%3CBR%20%2F%3E%20TimeOut_CNT%2B%2B%3B%3CBR%20%2F%3E%20%7D%20%20%20%20%3CBR%20%2F%3E%20%20%3CBR%20%2F%3E%20%20Check_Value%20%3D%201%3B%3CBR%20%2F%3E%20TimeOut_CNT%20%3D%200%3B%3CBR%20%2F%3E%20while(%20(Check_Value%20!%3D%200)%26amp%3B%26amp%3B%20(TimeOut_CNT%26lt%3B%203000))%7B%3CBR%20%2F%3E%20Check_Value%20%3D%20isoSPI1_SendChar(Addr)%3B%20%2F%2F%20ADDR%5B7%5D%2C%20X%2C%20X%2C%20X%2C%20X%2C%20X%2C%20X%2C%20X%3CBR%20%2F%3E%20TimeOut_CNT%2B%2B%3B%3CBR%20%2F%3E%20%7D%20%20%3CBR%20%2F%3E%20%20%3CBR%20%2F%3E%20%20Delay_ms_GSensor(1)%3B%3CBR%20%2F%3E%20%20%3CBR%20%2F%3E%20for(i%3D0%3Bi%3CLEN%3E%3C%2FLEN%3E%20%7B%3CBR%20%2F%3E%20isoSPI1_SendChar(0)%3B%20%2F%2F%20dummy%3CBR%20%2F%3E%20%20%20%20%3CBR%20%2F%3E%20Check_Value%20%3D%201%3B%3CBR%20%2F%3E%20TimeOut_CNT%20%3D%200%3B%3CBR%20%2F%3E%20while(%20(Check_Value%20%EF%BC%81%3D%200)%26amp%3B%26amp%3B%20(TimeOut_CNT%26lt%3B%203000))%7B%3CBR%20%2F%3E%20Check_Value%20%3D%20isoSPI1_RecvChar(%26amp%3Btemp_char)%3B%20%2F%2F%20DATA%5B7%5D%2C%20DATA%5B6%5D%2C%20DATA%5B5%5D%2C%20DATA%5B4%5D%2C%20DATA%5B3%5D%2C%20DATA%5B2%5D%2C%20DATA%5B1%5D%2C%20DATA%5B0%5D%3CBR%20%2F%3E%20TimeOut_CNT%2B%2B%3B%3CBR%20%2F%3E%20%7D%20%20%20%20%3CBR%20%2F%3E%20%20%20%20GSensor_Data%5Bi%5D%20%3D%20temp_char%3B%3CBR%20%2F%3E%20%7D%3CBR%20%2F%3E%20%20%3CBR%20%2F%3E%20Delay_ms_GSensor(1)%3B%3CBR%20%2F%3E%20%20%3CBR%20%2F%3E%20CS_B_PutVal(1)%3B%2F%2FCS%20High%3CBR%20%2F%3E%20%20%3CBR%20%2F%3E%20Delay_ms_GSensor(1)%3B%3CBR%20%2F%3E%20%20%20%3CBR%20%2F%3E%7D%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3Evoid%20GSensor_Write_Addr_Cmd(char%20Addr%2Cchar%20data)%3CBR%20%2F%3E%7B%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20Delay_ms_GSensor(1)%3B%3CBR%20%2F%3E%20%3CBR%20%2F%3E%20CS_B_PutVal(0)%3B%2F%2FCS%20low%3CBR%20%2F%3E%20%20%20%3CBR%20%2F%3E%20Delay_ms_GSensor(1)%3B%3CBR%20%2F%3E%20%20%20%20%3CBR%20%2F%3E%20Check_Value%20%3D%201%3B%3CBR%20%2F%3E%20TimeOut_CNT%20%3D%200%3B%3CBR%20%2F%3E%20while(%20(Check_Value%20%EF%BC%81%3D%200)%26amp%3B%26amp%3B%20(TimeOut_CNT%26lt%3B%203000))%7B%7B%3CBR%20%2F%3E%20Check_Value%20%3D%20isoSPI1_SendChar(%20((0x80)%20%7C%20Addr)%20)%3B%20%2F%2F%20R%2FW%2C%20ADDR%5B6%5D%2C%20ADDR%5B5%5D%2C%20ADDR%5B4%5D%2C%20ADDR%5B3%5D%2C%20ADDR%5B2%5D%2C%20ADDR%5B1%5D%2C%20ADDR%5B0%5D%3CBR%20%2F%3E%20TimeOut_CNT%2B%2B%3B%3CBR%20%2F%3E%20%7D%3CBR%20%2F%3E%20%20%3CBR%20%2F%3E%20Check_Value%20%3D%201%3B%3CBR%20%2F%3E%20TimeOut_CNT%20%3D%200%3B%3CBR%20%2F%3E%20while(%20(Check_Value%20!%3D%200)%26amp%3B%26amp%3B%20(TimeOut_CNT%26lt%3B%203000))%7B%3CBR%20%2F%3E%20Check_Value%20%3D%20isoSPI1_SendChar(Addr)%3B%20%2F%2F%20ADDR%5B7%5D%2C%20X%2C%20X%2C%20X%2C%20X%2C%20X%2C%20X%2C%20X%3CBR%20%2F%3E%20TimeOut_CNT%2B%2B%3B%3CBR%20%2F%3E%20%7D%3CBR%20%2F%3E%20%20%3CBR%20%2F%3E%20Check_Value%20%3D%201%3B%3CBR%20%2F%3E%20TimeOut_CNT%20%3D%200%3B%3CBR%20%2F%3E%20while(%20(Check_Value%20%EF%BC%81%3D%200)%26amp%3B%26amp%3B%20(TimeOut_CNT%26lt%3B%203000))%7B%3CBR%20%2F%3E%20Check_Value%20%3D%20isoSPI1_SendChar(data)%3B%20%2F%2F%20DATA%5B7%5D%2C%20DATA%5B6%5D%2C%20DATA%5B5%5D%2C%20DATA%5B4%5D%2C%20DATA%5B3%5D%2C%20DATA%5B2%5D%2C%20DATA%5B1%5D%2C%20DATA%5B0%5D%3CBR%20%2F%3E%20TimeOut_CNT%2B%2B%3B%3CBR%20%2F%3E%20%7D%3CBR%20%2F%3E%20%20%20%20%20%20%3CBR%20%2F%3E%20Delay_ms_GSensor(1)%3B%3CBR%20%2F%3E%20%20%3CBR%20%2F%3E%20CS_B_PutVal(1)%3B%2F%2FCS%20%E9%AB%98%E7%94%B5%E5%B9%B3%3C%2FP%3E%3CP%3E%20%20Delay_ms_GSensor(1)%3B%3CBR%20%2F%3E%20%20%20%3CBR%20%2F%3E%7D%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-416658%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20G-sensor%20FXLS8471Q%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-416658%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%26lt%3Bmeta%20http-equiv%3D%22Content-Type%22%20content%3D%22text%2Fhtml%3B%20charset%3Dutf-8%22%20%2F%26gt%3B%0A%3CP%3E%E5%97%A8%EF%BC%8C%E4%BA%A8%E5%88%A9%E3%80%81%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%E5%BE%88%E9%9A%BE%E8%AF%B4%E9%97%AE%E9%A2%98%E5%87%BA%E5%9C%A8%E5%93%AA%E9%87%8C%E3%80%82%E5%A6%82%E6%9E%9C%E4%BD%A0%E5%9C%A8%E8%BF%99%E9%87%8C%E5%8F%91%E5%B8%83%E4%BD%A0%E7%9A%84%E6%BA%90%E4%BB%A3%E7%A0%81%EF%BC%8C%E6%9C%80%E5%A5%BD%E8%BF%98%E5%8F%91%E5%B8%83%E9%80%BB%E8%BE%91%E5%88%86%E6%9E%90%E5%99%A8%E4%B8%AD%E7%9A%84%E6%97%B6%E5%BA%8F%E5%9B%BE%EF%BC%8C%E6%88%91%E4%B9%9F%E8%AE%B8%E8%83%BD%E5%B8%AE%E5%8A%A9%E4%BD%A0%E8%BF%9B%E8%A1%8C%E8%B0%83%E6%9F%A5%E3%80%82%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%E5%90%8C%E6%97%B6%EF%BC%8C%E6%82%A8%E5%8F%AF%E8%83%BD%E4%BC%9A%E5%8F%91%E7%8E%B0%E6%88%91%E7%9A%84%E7%AE%80%E5%8D%95%3CA%20_jive_internal%3D%22true%22%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Fdocs%2FDOC-99917%22%20target%3D%22_blank%22%3EFXLS8471Q%20%E8%A3%B8%E6%9C%BA%E7%A4%BA%E4%BE%8B%E4%BB%A3%E7%A0%81%3C%2FA%3E%E6%88%96%E5%8F%A6%E4%B8%80%E4%B8%AA%E7%A4%BA%E4%BE%8B%E4%BB%A3%E7%A0%81%E8%AF%B4%E6%98%8E%E4%BA%86%3CA%20_jive_internal%3D%22true%22%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Fdocs%2FDOC-106050%22%20target%3D%22_blank%22%3E%E7%9F%A2%E9%87%8F-%E5%B9%85%E5%BA%A6%E5%87%BD%E6%95%B0%E7%9A%84%3C%2FA%3E%E4%BD%BF%E7%94%A8%EF%BC%8C%E8%BF%99%E4%BA%9B%E4%BB%A3%E7%A0%81%E9%83%BD%E5%BE%88%E6%9C%89%E7%94%A8%E3%80%82%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%E6%AD%A4%E8%87%B4%EF%BC%8C%3C%2FP%3E%3CP%3E%E6%89%98%E9%A9%AC%E6%96%AF%3C%2FP%3E%3CP%3E%3C%2FP%3E%3CP%3E%3CSPAN%20style%3D%22font-weight%3A%20inherit%3B%20font-style%3A%20italic%3B%20font-size%3A%2010.6667px%3B%20font-family%3A%20inherit%3B%20color%3A%20%2351626f%3B%20text-align%3A%20left%3B%20text-indent%3A%200px%3B%22%3E%3CEM%20style%3D%22font-weight%3A%20inherit%3B%20font-style%3A%20italic%3B%20font-size%3A%2010.6667px%3B%20font-family%3A%20inherit%3B%22%3EPS%EF%BC%9A%3CSPAN%20class%3D%22Apple-converted-space%22%20style%3D%22font-weight%3A%20inherit%3B%20font-style%3A%20inherit%3B%20font-size%3A%2010.6667px%3B%20font-family%3A%20inherit%3B%22%3E%3CSPAN%20class%3D%22Apple-converted-space%22%3E%20%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FEM%3E%3C%2FSPAN%3E%3CSPAN%20style%3D%22font-weight%3A%20inherit%3B%20font-style%3A%20italic%3B%20font-size%3A%2010.6667px%3B%20font-family%3A%20inherit%3B%20color%3A%20%2351626f%3B%20text-align%3A%20left%3B%20text-indent%3A%200px%3B%22%3E%3CEM%20style%3D%22font-weight%3A%20inherit%3B%20font-style%3A%20italic%3B%20font-size%3A%2010.6667px%3B%20font-family%3A%20inherit%3B%22%3E%E5%A6%82%E6%9E%9C%E6%88%91%E7%9A%84%E5%9B%9E%E7%AD%94%E6%9C%89%E5%8A%A9%E4%BA%8E%E8%A7%A3%E5%86%B3%E6%82%A8%E7%9A%84%E9%97%AE%E9%A2%98%EF%BC%8C%E8%AF%B7%E6%A0%87%E8%AE%B0%E4%B8%BA%22%E6%AD%A3%E7%A1%AE%22%20%E6%88%96%20%22%E6%9C%89%E5%B8%AE%E5%8A%A9%22%E3%80%82%E8%B0%A2%E8%B0%A2%E3%80%82%3C%2FEM%3E%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E