|
@@ -50,6 +50,8 @@ uint8_t g_send_filtered = 0;
|
|
|
uint32_t g_send_sequence = 0;
|
|
|
uint8_t g_vo_alarm = 0; /* 是否触发语音输出*/
|
|
|
|
|
|
+static uint16_t g_readaccfailed_count = 0;
|
|
|
+
|
|
|
ALG_CONTEXT g_alg_context;
|
|
|
|
|
|
void cbuffer_pushdata(int16_t acc_x, int16_t acc_y, int16_t acc_z);
|
|
@@ -111,8 +113,21 @@ void timer_callback(void)
|
|
|
}
|
|
|
|
|
|
//read acc data
|
|
|
- ADXL312_ReadAcc(&accx, &accy, &accz);
|
|
|
- cbuffer_pushdata(accx, accy, accz);
|
|
|
+ if(0 == ADXL312_ReadAcc(&accx, &accy, &accz)){
|
|
|
+ cbuffer_pushdata(accx, accy, accz);
|
|
|
+ g_readaccfailed_count = 0;
|
|
|
+ }else{
|
|
|
+ g_readaccfailed_count++;
|
|
|
+ if(g_readaccfailed_count > 300){
|
|
|
+ //重启,尝度恢复加速度读取
|
|
|
+ NVIC_SystemReset();
|
|
|
+
|
|
|
+ }else if(g_readaccfailed_count > 3){
|
|
|
+ //运行指示灯,闪烁加快
|
|
|
+ g_blinkLedTgtTime = BLINK_LED_MINT;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
}
|
|
|
|
|
@@ -144,7 +159,7 @@ void Process_Init(void)
|
|
|
g_autocalibration=0;
|
|
|
g_samplecount = 0;
|
|
|
|
|
|
-
|
|
|
+ g_readaccfailed_count = 0;
|
|
|
}
|
|
|
|
|
|
void Process_RunLedPrd(void)
|
|
@@ -618,13 +633,13 @@ void Process_Alg(void)
|
|
|
axis_info.z = acc_z*2.9/1000;
|
|
|
|
|
|
|
|
|
- uint32_t start = OSIF_GetMilliseconds();
|
|
|
+ //uint32_t start = OSIF_GetMilliseconds();
|
|
|
|
|
|
//printf("alg:%d ms st: %d \r", start, g_alg_context.state);
|
|
|
- if(1 == g_autocalibration ){
|
|
|
- autocaculate_mtnoise(&axis_info);
|
|
|
+ //if(1 == g_autocalibration ){
|
|
|
+ // autocaculate_mtnoise(&axis_info);
|
|
|
|
|
|
- }else{
|
|
|
+ //}else{
|
|
|
|
|
|
alg_filter(&axis_info);
|
|
|
|
|
@@ -648,7 +663,7 @@ void Process_Alg(void)
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
- }
|
|
|
+ // }
|
|
|
|
|
|
#if 1
|
|
|
if(g_send_raw){
|