short Gsensor_y[32];
short Gsensor_z[32];
int Gsensor_xyz_len = 0;
-#define ACC_0G_X 8192 //4096
-#define ACC_0G_Y 8192
-#define ACC_0G_Z 8192
-#define FALL_DETECH_LOW_THRESHOLD 45
-#define FALL_COUNTER_THRESHOLD 5
+#define ACC_0G_X 4096//8192 //4096
+#define ACC_0G_Y 4096//8192
+#define ACC_0G_Z 4096//8192
+#define FALL_DETECH_LOW_THRESHOLD 35
+#define FALL_COUNTER_THRESHOLD 7
typedef struct
{
float x;
// {
// memcpy(&s_sc7a20_test_info, acc, sizeof(acc_g_data_t));
// }
-
+ //cplog_printf("acc_square:%f,%f,%f,%f\n",acc_square,acc->x,acc->y,acc->z);
if(acc_square < FALL_DETECH_LOW_THRESHOLD )
{
fall_counter++;
// s_acc.x= Gsensor_x[i];
// s_acc.y= Gsensor_y[i];
// s_acc.z= Gsensor_z[i];
- s_acc.x = (float)((Gsensor_x[i]*9.8f)/((uint16_t)ACC_0G_X));
- s_acc.y = (float)((Gsensor_y[i]*9.8f)/((uint16_t)ACC_0G_Y));
- s_acc.z = (float)((Gsensor_z[i]*9.8f)/((uint16_t)ACC_0G_Z));
+ // s_acc.x = (float)((Gsensor_x[i]*9.8f)/((uint16_t)ACC_0G_X));
+ // s_acc.y = (float)((Gsensor_y[i]*9.8f)/((uint16_t)ACC_0G_Y));
+ // s_acc.z = (float)((Gsensor_z[i]*9.8f)/((uint16_t)ACC_0G_Z));
+ s_acc.x = ((float)Gsensor_x[i]/100);
+ s_acc.y = ((float)Gsensor_y[i]/100);
+ s_acc.z = ((float)Gsensor_z[i]/100);
+ //cplog_printf("x:%d,y:%d,z:%d!!!\n",Gsensor_x[i],Gsensor_y[i],Gsensor_z[i]);
if(gsensor_sc7a20_fall_detect(&s_acc) == 1)//跌倒报警
- mmi_gsensor_sensor_fall_alarm();
+ {
+ //cplog_printf("mmi_gsensor_sensor_fall_alarm x:%d,y:%d,z:%d!!!\n",Gsensor_x[i],Gsensor_y[i],Gsensor_z[i]);
+ mmi_gsensor_sensor_fall_alarm();
+ }
+
}
#if USE_HX3918
hx3918_set_gsen_fifo(Gsensor_x,Gsensor_y,Gsensor_z,Gsensor_xyz_len);