From: penglei <1624952103@qq.com> Date: Sat, 25 May 2024 05:43:35 +0000 (+0800) Subject: 修改gsensor为定时器模式 X-Git-Tag: release_V1.2.70_20241020_135402~1106^2~1 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=refs%2Fchanges%2F182%2Fhead;p=mirrors%2FFD230.git 修改gsensor为定时器模式 --- diff --git a/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h b/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h index 3ed74a4dc..121d8d1b8 100755 --- a/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h +++ b/code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h @@ -161,7 +161,7 @@ const hal_pio_config_t g_pio_function_config[PIN_MAX_NUMBER] = { { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L9 dsp uart TP35 { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L10 dsp uart TP36 #endif - { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_ENBALE }, // S_AGPIO_L11 G_INT1 + { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_DOWN, HAL_PIO_IE_DISABLE }, // S_AGPIO_L11 G_INT1 { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L12 i2c data HX3507_SDIO { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L13 i2c CLK HX3507_SCLK @@ -291,7 +291,7 @@ const hal_gpio_config_t g_gpio_function_config[PIN_MAX_NUMBER] = { #ifdef ENABLE_CYWEE /**G sensor G_INT1 S_AGPIO_L11 G_INT2 S_AGPIO_L19 采用timer 时这些中断要屏蔽*/ - { S_AGPIO_L11, HAL_GPIO_DIRECTION_INPUT, NULL, GPIO_INTERRUPT_RISING_EDGE, cywee_int_callback }, + //{ S_AGPIO_L11, HAL_GPIO_DIRECTION_INPUT, NULL, GPIO_INTERRUPT_RISING_EDGE, cywee_int_callback }, //{ S_AGPIO_L19, HAL_GPIO_DIRECTION_INPUT, NULL, GPIO_INTERRUPT_DEDGE, cywee_int_callback }, #endif /**S_AGPIO_R1 GPO alipay默认resetpin*/ diff --git a/code/sdk/drivers/peripheral/cywee/service/cywee_service.c b/code/sdk/drivers/peripheral/cywee/service/cywee_service.c index 17e4b8f1c..bf4820380 100644 --- a/code/sdk/drivers/peripheral/cywee/service/cywee_service.c +++ b/code/sdk/drivers/peripheral/cywee/service/cywee_service.c @@ -47,7 +47,7 @@ typedef struct * 其他cmd在Header里定义,对外开放 */ -#define CYWEE_CHECK_MS 40 +#define CYWEE_CHECK_MS 200 osTimerId_t g_cywee_service_timer = NULL; static bool g_batter_service_initialled = false; @@ -109,7 +109,7 @@ void cywee_msg_callback(uint8_t msg_type, uint8_t *msg_data, int32_t msg_datalen case SPORT_ACTIVE_MODE_FREE_TRAINING: PRINT("CYWEE_MSG_TYPE_FREE_TRAINING_UPDATE\r\n"); memcpy(&c_activity_result_t, msg_data, sizeof(cywee_activity_result_t)); - PRINT("activit_mode[%d], calories[%d], duration[%d], MHR_zone[%d],hrs[%d]\n", + PRINT("activit_mode[%d], calories[%d],hrs[%d]\n", c_activity_result_t.activity_mode, c_activity_result_t.calories, c_activity_result_t.hrs); CustomEventPublish(TOPIC_EVENT_ACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); break; @@ -136,7 +136,7 @@ void cywee_msg_callback(uint8_t msg_type, uint8_t *msg_data, int32_t msg_datalen memcpy(&c_inactivity_result_t, msg_data, sizeof(cywee_inactivity_result_t)); PRINT("sedentary status[%d], stand freq[%d]\n", c_inactivity_result_t.sedentary_status,c_inactivity_result_t.stand_freq); - CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); + CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE, &c_inactivity_result_t, sizeof(cywee_inactivity_result_t)); break; // 睡眠 @@ -147,7 +147,7 @@ void cywee_msg_callback(uint8_t msg_type, uint8_t *msg_data, int32_t msg_datalen c_inactivity_result_t.month, c_inactivity_result_t.day, c_inactivity_result_t.hour, c_inactivity_result_t.minute, sizeof(cywee_inactivity_result_t)); - CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); + CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE, &c_inactivity_result_t, sizeof(cywee_inactivity_result_t)); break; // 睡眠累计 @@ -157,7 +157,7 @@ void cywee_msg_callback(uint8_t msg_type, uint8_t *msg_data, int32_t msg_datalen c_inactivity_result_t.total_sleep_time, c_inactivity_result_t.total_mild_sleep_time, c_inactivity_result_t.total_deep_sleep_time, c_inactivity_result_t.total_wake_time, c_inactivity_result_t.total_rem_sleep_time,c_inactivity_result_t.stand_freq); - CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); + CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE, &c_inactivity_result_t, sizeof(cywee_inactivity_result_t)); break; // 小睡 @@ -166,7 +166,7 @@ void cywee_msg_callback(uint8_t msg_type, uint8_t *msg_data, int32_t msg_datalen PRINT("nap status[%d], month[%d], day[%d], hour[%d], min[%d]\n", c_inactivity_result_t.nap_status, c_inactivity_result_t.month, c_inactivity_result_t.day, c_inactivity_result_t.hour, c_inactivity_result_t.minute); - CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); + CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE, &c_inactivity_result_t, sizeof(cywee_inactivity_result_t)); break; // 小睡累计 @@ -176,7 +176,7 @@ void cywee_msg_callback(uint8_t msg_type, uint8_t *msg_data, int32_t msg_datalen c_inactivity_result_t.total_nap_time, c_inactivity_result_t.total_mild_sleep_time, c_inactivity_result_t.total_deep_sleep_time, c_inactivity_result_t.total_wake_time, c_inactivity_result_t.total_rem_sleep_time,c_inactivity_result_t.stand_freq); - CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE, &c_activity_result_t, sizeof(cywee_activity_result_t)); + CustomEventPublish(TOPIC_EVENT_INACTIVITY_UPDATE, &c_inactivity_result_t, sizeof(cywee_inactivity_result_t)); break; } } @@ -273,9 +273,9 @@ static void cywee_service_check_task(void const *arg) break; case CYWEE_SERVICE_CMD_START_CHECK: - //cywee_service_running_stat = true; + cywee_service_running_stat = true; cywee_main_dml(); - //cywee_service_timer_start_check(CYWEE_CHECK_MS); + cywee_service_timer_start_check(CYWEE_CHECK_MS); break; case CYWEE_SERVICE_CMD_STOP_CHECK: diff --git a/code/sdk/drivers/peripheral/cywee/src/main_dml.c b/code/sdk/drivers/peripheral/cywee/src/main_dml.c index dc21839ed..06eb70964 100644 --- a/code/sdk/drivers/peripheral/cywee/src/main_dml.c +++ b/code/sdk/drivers/peripheral/cywee/src/main_dml.c @@ -329,6 +329,7 @@ void CWM_AP_SensorListen(pSensorEVT_t sensorEVT) { // sensorEVT->fData[1], // sensorEVT->fData[2] // ); + if(num_falg==25) { left_falg++; @@ -781,11 +782,11 @@ int cywee_main_dml(void) memset(&scl, 0, sizeof(scl)); scl.iData[0] = 1; scl.iData[7] = 5; //轴向配置 -#if 0 +#if 1 scl.iData[3] = 2; scl.iData[4] = 2; //1 anytime 2 fifo - scl.iData[6] = 25; //先設定5 - scl.iData[8] = 26; // for st sensor(52Hz) + scl.iData[6] = 15; //先設定5 + scl.iData[8] = 13; // for st sensor(52Hz) #else scl.iData[3] = 2; scl.iData[4] = 1; //1 anytime 2 fifo diff --git a/code/sdk/drivers/peripheral/ppg/hx3695/hx3695.c b/code/sdk/drivers/peripheral/ppg/hx3695/hx3695.c index 55dc43c02..907034d37 100644 --- a/code/sdk/drivers/peripheral/ppg/hx3695/hx3695.c +++ b/code/sdk/drivers/peripheral/ppg/hx3695/hx3695.c @@ -43,7 +43,7 @@ int16_t gsen_fifo_x[64]={0}; int16_t gsen_fifo_y[64]={0}; int16_t gsen_fifo_z[64]={0}; -gsenson_t gsensordata[8]; +gsenson_t gsensordata[5]; #ifdef SPO2_VECTOR #include "spo2_vec.h" @@ -2765,28 +2765,20 @@ void hx3695_hrs_ppg_Int_handle(void) PRINT("*count : %d \r\n",*count); if(*count < 10) { - gsensor_get_n_data(8,gsensordata); + gsensor_get_n_data(5,gsensordata); for(ii=0; ii<*count; ii++) { - if(ii == 8) - { - gsen_fifo_x_send[ii] = gsen_fifo_x_send[ii - 1]; - gsen_fifo_y_send[ii] = gsen_fifo_y_send[ii - 1]; - gsen_fifo_z_send[ii] = gsen_fifo_z_send[ii - 1]; - } - else - { // gsen_fifo_x_send[ii] = (gsensordata[ii*2].x + gsensordata[2*ii + 1].x)/2; // gsen_fifo_y_send[ii] = (gsensordata[ii*2].y + gsensordata[2*ii + 1].y)/2; // gsen_fifo_z_send[ii] = (gsensordata[ii*2].z + gsensordata[2*ii + 1].z)/2; - gsen_fifo_x_send[ii] = gsensordata[ii].x * 2048; - gsen_fifo_y_send[ii] = gsensordata[ii].y * 2048; - gsen_fifo_z_send[ii] = gsensordata[ii].z * 2048; - } + gsen_fifo_x_send[ii] = gsensordata[ii/2].x * 2048; + gsen_fifo_y_send[ii] = gsensordata[ii/2].y * 2048; + gsen_fifo_z_send[ii] = gsensordata[ii/2].z * 2048; + //PRINT("hxdata:%d/%d %d %d %.3f %.3f %.3f %d\r\n" ,1+ii,*count,PPG_buf[ii],ir_buf[0],gsen_fifo_x_send[ii],gsen_fifo_y_send[ii],gsen_fifo_z_send[ii],ppg_s_data.green_cur); PRINT("hxdata:%d/%d %d %d %d %d %d %d\r\n" ,1+ii,*count,PPG_buf[ii],ir_buf[0],gsen_fifo_x_send[ii],gsen_fifo_y_send[ii],gsen_fifo_z_send[ii],ppg_s_data.green_cur); + } - hrs_wear_status = hx3695_hrs_get_wear_status(); PRINT("hrs_wear_status: %d !!\r\n", hrs_wear_status); @@ -3231,24 +3223,17 @@ void hx3695_spo2_ppg_Int_handle(void) PRINT("*count[%d] \r\n",*count); if(*count < 10) { - gsensor_get_n_data(8,gsensordata); + gsensor_get_n_data(5,gsensordata); for(ii=0; ii<*count; ii++) { - if(ii == 8) - { - gsen_fifo_x_send[ii] = gsen_fifo_x_send[ii - 1]; - gsen_fifo_y_send[ii] = gsen_fifo_y_send[ii - 1]; - gsen_fifo_z_send[ii] = gsen_fifo_z_send[ii - 1]; - } - else - { - // gsen_fifo_x_send[ii] = (gsensordata[ii*2].x + gsensordata[2*ii + 1].x)/2; - // gsen_fifo_y_send[ii] = (gsensordata[ii*2].y + gsensordata[2*ii + 1].y)/2; - // gsen_fifo_z_send[ii] = (gsensordata[ii*2].z + gsensordata[2*ii + 1].z)/2; - gsen_fifo_x_send[ii] = gsensordata[ii].x * 2048; - gsen_fifo_y_send[ii] = gsensordata[ii].y * 2048; - gsen_fifo_z_send[ii] = gsensordata[ii].z * 2048; - } + + // gsen_fifo_x_send[ii] = (gsensordata[ii*2].x + gsensordata[2*ii + 1].x)/2; + // gsen_fifo_y_send[ii] = (gsensordata[ii*2].y + gsensordata[2*ii + 1].y)/2; + // gsen_fifo_z_send[ii] = (gsensordata[ii*2].z + gsensordata[2*ii + 1].z)/2; + gsen_fifo_x_send[ii] = gsensordata[ii/2].x * 2048; + gsen_fifo_y_send[ii] = gsensordata[ii/2].y * 2048; + gsen_fifo_z_send[ii] = gsensordata[ii/2].z * 2048; + PRINT("hxdata:%d/%d %d %d %d %d %d %d\r\n", 1+ii,*count,red_buf[ii],ir_buf[ii],green_buf[ii],gsen_fifo_x_send[ii],gsen_fifo_y_send[ii],gsen_fifo_z_send[ii]); //printf("FFF==>spo2 red_buf : %d, %d, %d, %d \n", 1+ii, *count, red_buf[ii], ir_buf[0]);