Browse Source

三轴数据调试完成,数据输出正常

CHENJIE-PC\QiXiang_CHENJIE 3 years ago
parent
commit
91e65ce144
1 changed files with 17 additions and 15 deletions
  1. 17 15
      src/SL_Sc7a20_Driver.c

+ 17 - 15
src/SL_Sc7a20_Driver.c

@@ -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;
 }