|
@@ -104,7 +104,7 @@ Std_ReturnType SL_SC7A20_INT_Config(void)
|
|
|
//interrupt happen,int pin output lower level
|
|
|
Gsensor_SPI_Write(SL_SC7A20_CTRL_REG6, SL_Write_Reg,1);
|
|
|
|
|
|
- //AOI1 CONFIG
|
|
|
+ //AOI1 CONFIG 只开高中断
|
|
|
SL_Write_Reg[0]=0x00; //0x7F
|
|
|
#if SL_6D4D2D1D_SEL== 1
|
|
|
SL_Write_Reg[0]=SL_Write_Reg[0]|0x02;//X
|
|
@@ -115,23 +115,23 @@ Std_ReturnType SL_SC7A20_INT_Config(void)
|
|
|
SL_Write_Reg[0]=SL_Write_Reg[0]|0x03;//X
|
|
|
SL_Write_Reg[0]=SL_Write_Reg[0]|0x0C;//Y
|
|
|
#elif SL_6D4D2D1D_SEL== 6
|
|
|
- SL_Write_Reg[0]=SL_Write_Reg[0]|0x03;//Xֵ
|
|
|
- SL_Write_Reg[0]=SL_Write_Reg[0]|0x0C;//Yֵ
|
|
|
- SL_Write_Reg[0]=SL_Write_Reg[0]|0x30;//Z
|
|
|
+ SL_Write_Reg[0]=SL_Write_Reg[0]|0x02;//Xֵ
|
|
|
+ SL_Write_Reg[0]=SL_Write_Reg[0]|0x08;//Yֵ
|
|
|
+ SL_Write_Reg[0]=SL_Write_Reg[0]|0x20;//Z
|
|
|
#endif
|
|
|
|
|
|
Gsensor_SPI_Write(SL_SC7A20_INT1_CFG, SL_Write_Reg,1);
|
|
|
|
|
|
//HPF SET
|
|
|
// Gsensor_SPI_Read(SL_SC7A20_CTRL_REG2,1, &SL_Read_Reg);
|
|
|
- SL_Write_Reg[0]=0xCF;//SL_Read_Reg|0x81;//Normal HP , HPF TO AOI1
|
|
|
+ SL_Write_Reg[0]=0x81;//SL_Read_Reg|0xCF;//Normal HP , HPF TO AOI1
|
|
|
Gsensor_SPI_Write(SL_SC7A20_CTRL_REG2, SL_Write_Reg,1);
|
|
|
|
|
|
#if SL_6D4D2D1D_SEL== 6
|
|
|
SL_Write_Reg[0] = SL_SC7A20_INT_THS_20PERCENT;
|
|
|
Gsensor_SPI_Write(SL_SC7A20_INT1_THS, SL_Write_Reg,1);
|
|
|
|
|
|
- SL_Write_Reg[0] = SL_SC7A20_INT_DURATION_30CLK;
|
|
|
+ SL_Write_Reg[0] = SL_SC7A20_INT_DURATION_10CLK;
|
|
|
Gsensor_SPI_Write(SL_SC7A20_INT1_DURATION, SL_Write_Reg, 1);
|
|
|
#else
|
|
|
SL_Write_Reg[0] = SL_SC7A20_INT_THS_10PERCENT;
|
|
@@ -156,7 +156,7 @@ Std_ReturnType SL_SC7A20_INT_Config(void)
|
|
|
|
|
|
|
|
|
//AOI2 CONFIG
|
|
|
- SL_Write_Reg[0]=0x00; //0xFF
|
|
|
+ SL_Write_Reg[0]=0x00|0x0C; //0xFF
|
|
|
|
|
|
#if SL_6D4D2D1D_SEL== 1
|
|
|
SL_Write_Reg[0]=SL_Write_Reg[0]|0x02;//X
|
|
@@ -184,13 +184,13 @@ Std_ReturnType SL_SC7A20_INT_Config(void)
|
|
|
|
|
|
|
|
|
#if SL_6D4D2D1D_SEL== 6
|
|
|
- SL_Write_Reg[0] = SL_SC7A20_INT_THS_5PERCENT;
|
|
|
+ SL_Write_Reg[0] = SL_SC7A20_INT_THS_20PERCENT;
|
|
|
#else
|
|
|
SL_Write_Reg[0] = SL_SC7A20_INT_THS_10PERCENT;
|
|
|
#endif
|
|
|
Gsensor_SPI_Write(SL_SC7A20_INT2_THS,SL_Write_Reg,1 );
|
|
|
|
|
|
- SL_Write_Reg[0] = SL_SC7A20_INT_DURATION_2CLK;
|
|
|
+ SL_Write_Reg[0] = SL_SC7A20_INT_DURATION_10CLK;
|
|
|
Gsensor_SPI_Write(SL_SC7A20_INT2_DURATION, SL_Write_Reg,1);
|
|
|
|
|
|
//AOI2 TO INT2
|
|
@@ -374,16 +374,12 @@ void SL_SC7A20_Reg_read_all(void)
|
|
|
{
|
|
|
uint8 SL_Read_Reg[32];
|
|
|
memset(SL_Read_Reg,0xFF,32);
|
|
|
-// printf("SL_SC7A20_Reg_readall ++++++++\r\n");
|
|
|
- /*******************AOI1 IN INT1********************/
|
|
|
uint8 adr = 0x20;
|
|
|
for(adr=0x20;adr<=0x3F;adr++)
|
|
|
{
|
|
|
Gsensor_SPI_Read(adr,&SL_Read_Reg[adr-0x20],1);
|
|
|
-// printf("%#x = %#x\r\n",adr,SL_Read_Reg[adr-0x20]);
|
|
|
}
|
|
|
-
|
|
|
-// printf("SL_SC7A20_Reg_readall --------\r\n");
|
|
|
+ return;
|
|
|
}
|
|
|
|
|
|
|
|
@@ -446,6 +442,12 @@ Std_ReturnType SL_SC7A20_Read_XYZ_Data(sint16 *SL_SC7A20_Data_XYZ_Buf)
|
|
|
SL_SC7A20_Data_XYZ_Buf[0]=(sint16)((SL_Read_Buf[2]<<8) + SL_Read_Buf[1]);
|
|
|
SL_SC7A20_Data_XYZ_Buf[1]=(sint16)((SL_Read_Buf[4]<<8) + SL_Read_Buf[3]);
|
|
|
SL_SC7A20_Data_XYZ_Buf[2]=(sint16)((SL_Read_Buf[6]<<8) + SL_Read_Buf[5]);
|
|
|
+ SL_SC7A20_Data_XYZ_Buf[0] = SL_SC7A20_Data_XYZ_Buf[0] >>4;
|
|
|
+ SL_SC7A20_Data_XYZ_Buf[1] = SL_SC7A20_Data_XYZ_Buf[1] >>4;
|
|
|
+ SL_SC7A20_Data_XYZ_Buf[2] = SL_SC7A20_Data_XYZ_Buf[2] >>4;
|
|
|
+ SL_SC7A20_Data_XYZ_Buf[0] = SL_SC7A20_Data_XYZ_Buf[0] * 2;
|
|
|
+ SL_SC7A20_Data_XYZ_Buf[1] = SL_SC7A20_Data_XYZ_Buf[1] * 2;
|
|
|
+ SL_SC7A20_Data_XYZ_Buf[2] = SL_SC7A20_Data_XYZ_Buf[2] * 2;
|
|
|
return E_OK;
|
|
|
|
|
|
}
|
|
@@ -466,7 +468,7 @@ Std_ReturnType GsensorInit(void)
|
|
|
SL_SC7A20_FS_Config(SL_SC7A20_FS_4G);
|
|
|
SL_SC7A20_INT_Config();
|
|
|
//SL_SC7A20_INT_RESET();
|
|
|
- SL_SC7A20_Power_Config(SL_SC7A20_LOWER_POWER_ODR_400HZ);
|
|
|
+ SL_SC7A20_Power_Config(SL_SC7A20_ODR_400HZ);
|
|
|
}
|
|
|
return Status;
|
|
|
}
|