diff --git a/bk_aidk/bk_avdk/bk_idk/components/bk_gsensor/arithmetic_module.c b/bk_aidk/bk_avdk/bk_idk/components/bk_gsensor/arithmetic_module.c index 40408fc9..2ee26d1a 100755 --- a/bk_aidk/bk_avdk/bk_idk/components/bk_gsensor/arithmetic_module.c +++ b/bk_aidk/bk_avdk/bk_idk/components/bk_gsensor/arithmetic_module.c @@ -232,7 +232,7 @@ static void shake_set_onoff(unsigned char onoff) shake_alg_param.shake_threshold_v = 140; shake_alg_param.stability_threshold_v = 130; shake_alg_param.shake_check_number = 1; - shake_alg_param.shake_time_limit_ms = 800; + shake_alg_param.shake_time_limit_ms = 1000; } void shake_arithmetic_set_parameter(shake_recognition_alg_param_t *shake_alg_p) @@ -313,6 +313,8 @@ void shake_arithmetic_set_parameter(shake_recognition_alg_param_t *shake_alg_p) signed short prev_x = 0, prev_y = 0, prev_z = 0; // 记录上一次的三轴数据 int first = 0; + +uint64_t gsen_last_time = 0; static void shake_arithmetic_task_handler(void *param) { signed short x;//, y, z; @@ -331,14 +333,14 @@ static void shake_arithmetic_task_handler(void *param) //os_printf("%s: Entering the function.\n", __func__); // 添加进入函数的日志 /* if shake close, so return. */ - if (0 == shake_info.onoff) { - os_printf("%s: Shake detection is off, returning.\n", __func__); - return; - } + // if (0 == shake_info.onoff) { + // os_printf("%s: Shake detection is off, returning.\n", __func__); + // return; + // } uint64_t timestmp = 0; uint64_t shake_t_l_ms = shake_alg_param.shake_time_limit_ms; - +//uint64_t shake_t_l_ms = 800; for (unsigned int i = 0; i < count; i += 3) { /* get x,y,z data */ x = data_buf[i+0]; @@ -361,9 +363,19 @@ static void shake_arithmetic_task_handler(void *param) // 判断差值是否超过阈值 if (diff_x > diff_threshold ) { timestmp = bk_aon_rtc_get_ms(); + + // os_printf("%s timestmp:%llu gsen_last_time:%llu gsen_last_time + shake_t_l_ms:%llu shake_t_l_ms :%llu\r\n", __func__, timestmp, gsen_last_time, gsen_last_time + shake_t_l_ms,shake_t_l_ms); // os_printf("%s: Difference exceeds the threshold, checking time condition.\n", __func__); // 添加差值超过阈值的日志 - if ((shake_info.last_time + shake_t_l_ms) < timestmp) { - shake_info.last_time = timestmp; + if ((gsen_last_time + shake_t_l_ms) < timestmp) { + + // os_printf("limiande %s: timestmp=%llu, last_time=%llu, threshold=%llu shake_t_l_ms= %llu\r\n", + //__func__, timestmp, gsen_last_time, gsen_last_time + shake_t_l_ms,shake_t_l_ms); + gsen_last_time = timestmp; + + // os_printf("Current timestmp: %llu\n", timestmp); + //bk_printf("gsen_last_time55555 %llu\r\n", gsen_last_time); + // bk_printf("gsen_last_time55555 %lu timestmp =%lu \r\n",gsen_last_time,timestmp); + rtos_delay_milliseconds(180);//过滤刚语音会闪灯 if(first == 1 && get_binary_data_status() == 1){ @@ -387,7 +399,7 @@ static void shake_arithmetic_task_handler(void *param) //prev_z = z; first = 1; // prev_y = y; - // prev_z = z; + // prev_z = z; } if (diff_x > strong_tap_threshold && get_binary_data_status() == 0) { diff --git a/bk_aidk/projects/beken_wss_paopao/config/bk7258_cp1/config b/bk_aidk/projects/beken_wss_paopao/config/bk7258_cp1/config index b7d4b7a0..f26f0412 100755 --- a/bk_aidk/projects/beken_wss_paopao/config/bk7258_cp1/config +++ b/bk_aidk/projects/beken_wss_paopao/config/bk7258_cp1/config @@ -139,4 +139,4 @@ CONFIG_SDCARD_POWER_GPIO_CTRL_AUTO_POWERDOWN_WHEN_IDLE=n CONFIG_USR_GPIO_CFG_EN=y CONFIG_GPIO_DEFAULT_SET_SUPPORT=y CONFIG_SPI = y -CONFIG_SPI_DMA=y \ No newline at end of file +CONFIG_SPI_DMA=y