|
@@ -260,30 +260,30 @@ INT8 SL_SC7A20_INT_Config(void)
|
|
|
UINT8 SL_Read_Reg;
|
|
|
|
|
|
/*******************AOI1 IN INT1********************/
|
|
|
- SL_Read_Reg = 0x08; //AOI1 LATCH
|
|
|
+ SL_Read_Reg = 0x00; //AOI1 LATCH
|
|
|
GSENSOR_WriteReg(SL_SC7A20_CTRL_REG5, SL_Read_Reg);
|
|
|
|
|
|
- SL_Read_Reg = SL_SC7A20_INT_ACTIVE_HIGH_LEVEL;
|
|
|
+ SL_Read_Reg = SL_SC7A20_INT_ACTIVE_LOWER_LEVEL;
|
|
|
//interrupt happen,int pin output lower level
|
|
|
GSENSOR_WriteReg(SL_SC7A20_CTRL_REG6, SL_Read_Reg);
|
|
|
|
|
|
//AOI1 CONFIG
|
|
|
SL_Read_Reg = 0x00; //0x7F
|
|
|
- SL_Read_Reg = SL_Read_Reg | 0x40; //�����˶�ʶ��ģʽ
|
|
|
- SL_Read_Reg = SL_Read_Reg | 0x03; //X ��ߵ��¼� X�����ݵľ���ֵ������ֵ
|
|
|
- SL_Read_Reg = SL_Read_Reg | 0x0C; //Y ��ߵ��¼� Y�����ݵľ���ֵ������ֵ
|
|
|
- SL_Read_Reg = SL_Read_Reg | 0x30; //Z ��ߵ��¼� Z�����ݵľ���ֵ������ֵ
|
|
|
+ SL_Read_Reg = SL_Read_Reg | 0x00; //�����˶�ʶ��ģʽ
|
|
|
+ SL_Read_Reg = SL_Read_Reg | 0x02; //X ��ߵ��¼� X�����ݵľ���ֵ������ֵ
|
|
|
+ SL_Read_Reg = SL_Read_Reg | 0x08; //Y ��ߵ��¼� Y�����ݵľ���ֵ������ֵ
|
|
|
+ SL_Read_Reg = SL_Read_Reg | 0x20; //Z ��ߵ��¼� Z�����ݵľ���ֵ������ֵ
|
|
|
GSENSOR_WriteReg(SL_SC7A20_INT1_CFG, SL_Read_Reg);
|
|
|
|
|
|
//HPF SET
|
|
|
// GSENSOR_ReadReg(SL_SC7A20_CTRL_REG2,1, &SL_Read_Reg);
|
|
|
- SL_Read_Reg = 0xcf; //SL_Read_Reg|0x81;//Normal HP , HPF TO AOI1
|
|
|
+ SL_Read_Reg = 0x81; //SL_Read_Reg|0x81;//Normal HP , HPF TO AOI1
|
|
|
GSENSOR_WriteReg(SL_SC7A20_CTRL_REG2, SL_Read_Reg);
|
|
|
|
|
|
//�ж���ֵ����
|
|
|
GSENSOR_WriteReg(SL_SC7A20_INT1_THS, SL_SC7A20_INT_THS_20PERCENT);
|
|
|
//������ֵ����ʱ�䴥���ж�
|
|
|
- GSENSOR_WriteReg(SL_SC7A20_INT1_DURATION, SL_SC7A20_INT_DURATION_30CLK);
|
|
|
+ GSENSOR_WriteReg(SL_SC7A20_INT1_DURATION, SL_SC7A20_INT_DURATION_10CLK);
|
|
|
|
|
|
//AOI1 TO INT1
|
|
|
// GSENSOR_ReadReg(SL_SC7A20_CTRL_REG3,1, &SL_Read_Reg);
|
|
@@ -310,9 +310,9 @@ INT8 SL_SC7A20_INT_Config(void)
|
|
|
// GSENSOR_WriteReg(SL_SC7A20_CTRL_REG2, SL_Read_Reg);
|
|
|
|
|
|
//�ж���ֵ����
|
|
|
- GSENSOR_WriteReg(SL_SC7A20_INT2_THS, SL_SC7A20_INT_THS_5PERCENT);
|
|
|
+ GSENSOR_WriteReg(SL_SC7A20_INT2_THS, SL_SC7A20_INT_THS_20PERCENT);
|
|
|
//������ֵ����ʱ�䴥���ж�
|
|
|
- GSENSOR_WriteReg(SL_SC7A20_INT2_DURATION, SL_SC7A20_INT_DURATION_2CLK);
|
|
|
+ GSENSOR_WriteReg(SL_SC7A20_INT2_DURATION, SL_SC7A20_INT_DURATION_10CLK);
|
|
|
|
|
|
//AOI2 TO INT2
|
|
|
GSENSOR_ReadReg(SL_SC7A20_CTRL_REG6, 1, &SL_Read_Reg);
|
|
@@ -489,9 +489,8 @@ void SL_SC7A20_Reg_read_all(void)
|
|
|
for (adr = 0x20; adr <= 0x3F; adr++)
|
|
|
{
|
|
|
GSENSOR_ReadReg(adr, 1, &SL_Read_Reg);
|
|
|
- printf("%#x = %#x\r\n", adr, SL_Read_Reg);
|
|
|
+ printf("%#x = %#x, ", adr, SL_Read_Reg);
|
|
|
}
|
|
|
-
|
|
|
printf("SL_SC7A20_Reg_readall --------\r\n");
|
|
|
}
|
|
|
|
|
@@ -548,23 +547,22 @@ INT8 SL_SC7A20_Read_XYZ_Data(INT8 *SL_SC7A20_Data_XYZ_Buf)
|
|
|
INT8 SL_SC7A20_Read_XYZ_Data(INT16 *SL_SC7A20_Data_XYZ_Buf)
|
|
|
{
|
|
|
UINT8 SL_Read_Buf[7];
|
|
|
-
|
|
|
GSENSOR_ReadReg(SL_SC7A20_STATUS_REG, 1, &SL_Read_Buf[0]);
|
|
|
-#ifdef USING_PRINTF
|
|
|
- printf("SL_SC7A20_STATUS_REG = %#x\r\n", SL_Read_Buf[0]);
|
|
|
-#endif
|
|
|
if ((SL_Read_Buf[0] & 0x0f) == 0x0f)
|
|
|
{
|
|
|
- GSENSOR_ReadReg(SL_SC7A20_DATA_OUT, 6, &SL_Read_Buf[1]);
|
|
|
-#ifdef USING_PRINTF
|
|
|
- printf("SL_SC7A20_DATA_OUT22 = %#x\r\n", SL_Read_Buf[1]);
|
|
|
-#endif
|
|
|
+ for (UINT8 i = 1; i < 7; i++)
|
|
|
+ {
|
|
|
+ GSENSOR_ReadReg(SL_SC7A20_STATUS_REG + i, 1, &SL_Read_Buf[i]);
|
|
|
+ }
|
|
|
SL_SC7A20_Data_XYZ_Buf[0] = (INT16)((SL_Read_Buf[2] << 8) + SL_Read_Buf[1]);
|
|
|
SL_SC7A20_Data_XYZ_Buf[1] = (INT16)((SL_Read_Buf[4] << 8) + SL_Read_Buf[3]);
|
|
|
SL_SC7A20_Data_XYZ_Buf[2] = (INT16)((SL_Read_Buf[6] << 8) + SL_Read_Buf[5]);
|
|
|
-#ifdef USING_PRINTF
|
|
|
- printf("SL_SC7A20_DATA_OUT BUF:X = %d,Y = %d,Z = %d\r\n", SL_SC7A20_Data_XYZ_Buf[0], SL_SC7A20_Data_XYZ_Buf[1], SL_SC7A20_Data_XYZ_Buf[2]);
|
|
|
-#endif
|
|
|
+ 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 1;
|
|
|
}
|
|
|
else
|
|
@@ -584,7 +582,7 @@ void 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);
|
|
|
}
|
|
|
}
|
|
|
#endif
|