解决cywee中断不触发的问题 172/1
authorpenglei <1624952103@qq.com>
Thu, 16 May 2024 03:36:58 +0000 (11:36 +0800)
committerpenglei <1624952103@qq.com>
Thu, 16 May 2024 03:36:58 +0000 (11:36 +0800)
code/sdk/drivers/boards/brandy_evb/board_config/board_evb.h
code/sdk/drivers/peripheral/cywee/Inc/cywee_hal.h
code/sdk/drivers/peripheral/cywee/service/cywee_service.c
code/sdk/drivers/peripheral/cywee/src/main_dml.c

index e21d3d4..3ed74a4 100755 (executable)
@@ -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_DISABLE },    // S_AGPIO_L11 G_INT1
+    { 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_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_DEDGE, 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*/
index 7df0ead..65b672e 100644 (file)
@@ -499,8 +499,8 @@ void cywee_hrs_wearstatus_update(int hrs_data,int wearstatus);
 void cywee_set_user_info(int user_info[5]);
 void cywee_get_sleep_data(void);
 void cywee_reset_daily_data(void);
-void cyw_inactivity_mode_change(int mode);
-void cyw_activity_mode_change(int mode);
+void cywee_inactivity_mode_change(int mode);
+void cywee_activity_mode_change(int mode);
 void cywee_hand_updown_switch(int cmd);
 void cywee_ar_alert_switch(int cmd);
 extern uint8_t hrs_mode_state;
index 52b9abb..72cb4b1 100644 (file)
@@ -47,7 +47,7 @@ typedef struct
  * 其他cmd在Header里定义,对外开放
  */
 
-#define CYWEE_CHECK_MS 500
+#define CYWEE_CHECK_MS 40
 
 osTimerId_t g_cywee_service_timer = NULL;
 static bool g_batter_service_initialled = false;
@@ -260,122 +260,127 @@ static void cywee_service_check_task(void const *arg)
         {
             continue;
         }
-
-        if (mail.cmd == CYWEE_SERVICE_CMD_TIMER_CHECK)
-        {
-            cywee_int_handler();
-            // lis2doc_read_data();
-            // printf("CYWEE_SERVICE_CMD_TIMER_CHECK\r\n");
-        }
-        else if (mail.cmd == CYWEE_SERVICE_CMD_TEST)
-        {
-            test_api();
-        }
-        else if (mail.cmd == CYWEE_SERVICE_CMD_START_CHECK)
-        {
-            cywee_service_running_stat = true;
-            cywee_main_dml();
-            cywee_service_timer_start_check(CYWEE_CHECK_MS);
-        }
-        else if (mail.cmd == CYWEE_SERVICE_CMD_STOP_CHECK)
-        {
-            cywee_service_running_stat = false;
-            if (g_cywee_service_timer != NULL)
-                osTimerStop(g_cywee_service_timer);
-        }
-        else if (mail.cmd == CYWEE_SERVICE_CMD_NORMAL_MODE)
-        {
-            PRINT("普通运动模式\r\n");
-            cyw_activity_mode_change(SPORT_ACTIVE_MODE_NORMAL);
-        }
-        else if (mail.cmd == CYWEE_SERVICE_CMD_TREADMILL_MODE)
-        {
-            cyw_activity_mode_change(SPORT_ACTIVE_MODE_TREADMILL);
-        }
-        else if (mail.cmd == CYWEE_SERVICE_CMD_OUTDOOR_RUNNING_MODE)
-        {
-            PRINT("室外跑步模式\r\n");
-            cyw_activity_mode_change(SPORT_ACTIVE_MODE_OUTDOOR_RUNNING);
-        }
-        else if (mail.cmd == CYWEE_SERVICE_CMD_INDOOR_RUNNING_MODE)
-        {
-            PRINT("室内跑步模式\r\n");
-            cyw_activity_mode_change(SPORT_ACTIVE_MODE_INDOOR_RUNNING);
-        }
-        else if (mail.cmd == CYWEE_SERVICE_CMD_FITNESS_PEDOMETER_MODE)
-        {
-            cyw_activity_mode_change(SPORT_ACTIVE_MODE_FITNESS_PEDOMETERR);
-        }
-        else if (mail.cmd == CYWEE_SERVICE_CMD_FREE_TRAINING_MODE)
-        {
-            PRINT("自由训练模式\r\n");
-            cyw_activity_mode_change(SPORT_ACTIVE_MODE_FREE_TRAINING);
-        }
-        else if (mail.cmd == CYWEE_SERVICE_CMD_AR_ALERT_MODE)
-        {
-            cyw_activity_mode_change(SPORT_ACTIVE_MODE_AR_ALERT);
-        }
-        else if (mail.cmd == CYWEE_SERVICE_CMD_PAUSE)
-        {
-            activity_mode_setstatus(1);
-        }
-        else if (mail.cmd == CYWEE_SERVICE_CMD_RESUME)
-        {
-            activity_mode_setstatus(0);
-        }
-        else if (mail.cmd == CYWEE_SERVICE_CMD_ONCHARGING_CHANGE)
-        {
-            cywee_oncharging_update(mail.data[0]);
-        }
-        else if (mail.cmd == CYWEE_SERVICE_CMD_WEAR_STATUS_CHANGE)
-        {
-            cywee_wearstatus_update(mail.data[0]);
-        }
-        else if (mail.cmd == CYWEE_SERVICE_CMD_HRS_WEARSTATUS_CHANGE)
-        {
-            cywee_hrs_wearstatus_update(mail.data[0], mail.data[1]);
-        }
-        else if (mail.cmd == CYWEE_SERVICE_CMD_SEDENTARY_MODE)
-        {
-            cyw_inactivity_mode_change(INACTIVITY_MODE_SEDENTARY);
-        }
-        else if (mail.cmd == CYWEE_SERVICE_CMD_NAP_MODE)
-        {
-            cyw_inactivity_mode_change(INACTIVITY_MODE_NAP);
-        }
-        else if (mail.cmd == CYWEE_SERVICE_CMD_SLEEPING_MODE)
-        {
-            cyw_inactivity_mode_change(INACTIVITY_MODE_SLEEPING);
-        }
-        else if (mail.cmd == CYWEE_SERVICE_CMD_OPEN_HAND_UPDOWN)
+        switch(mail.cmd)
         {
-            cywee_hand_updown_switch(1);
-        }
-        else if (mail.cmd == CYWEE_SERVICE_CMD_CLOSE_HAND_UPDOWN)
-        {
-            cywee_hand_updown_switch(0);
-        }
-        else if (mail.cmd == CYWEE_SERVICE_CMD_OPEN_AR_ALERT)
-        {
-            cywee_ar_alert_switch(1);
-        }
-        else if (mail.cmd == CYWEE_SERVICE_CMD_CLOSE_AR_ALERT)
-        {
-            cywee_ar_alert_switch(0);
-        }
-        else if (mail.cmd == CYWEE_SERVICE_CMD_TIME_SYNC)
-        {
-            cywee_time_sync();
-        }
-        else if (mail.cmd == CYWEE_SERVICE_CMD_GET_SLEEP_DATA)
-        {
-            cywee_get_sleep_data();
-        }
-        else if (mail.cmd == CYWEE_SERVICE_CMD_RESET_DAILY_DATA)
-        {
-            cywee_reset_daily_data();
+            case CYWEE_SERVICE_CMD_TIMER_CHECK:
+                cywee_int_handler();
+                // lis2doc_read_data();
+                // printf("CYWEE_SERVICE_CMD_TIMER_CHECK\r\n");
+            break;
+
+            case CYWEE_SERVICE_CMD_TEST:
+                test_api();
+            break;
+
+            case CYWEE_SERVICE_CMD_START_CHECK:
+                //cywee_service_running_stat = true;
+                cywee_main_dml();
+                //cywee_service_timer_start_check(CYWEE_CHECK_MS);
+            break;
+
+            case CYWEE_SERVICE_CMD_STOP_CHECK:
+                cywee_service_running_stat = false;
+                if (g_cywee_service_timer != NULL)
+                    osTimerStop(g_cywee_service_timer);
+            break;
+
+            case CYWEE_SERVICE_CMD_NORMAL_MODE:
+                PRINT("普通运动模式\r\n");
+                cywee_activity_mode_change(SPORT_ACTIVE_MODE_NORMAL);
+            break;
+
+            case CYWEE_SERVICE_CMD_TREADMILL_MODE:
+                cywee_activity_mode_change(SPORT_ACTIVE_MODE_TREADMILL);
+            break;
+
+            case CYWEE_SERVICE_CMD_OUTDOOR_RUNNING_MODE:
+                PRINT("室外跑步模式\r\n");
+                cywee_activity_mode_change(SPORT_ACTIVE_MODE_OUTDOOR_RUNNING);
+            break;
+
+            case CYWEE_SERVICE_CMD_INDOOR_RUNNING_MODE:
+                PRINT("室内跑步模式\r\n");
+                cywee_activity_mode_change(CYWEE_SERVICE_CMD_INDOOR_RUNNING_MODE);
+            break;
+
+            case CYWEE_SERVICE_CMD_FITNESS_PEDOMETER_MODE:
+                cywee_activity_mode_change(SPORT_ACTIVE_MODE_FITNESS_PEDOMETERR);
+            break;
+
+            case CYWEE_SERVICE_CMD_FREE_TRAINING_MODE:
+                PRINT("自由训练模式\r\n");
+                cywee_activity_mode_change(SPORT_ACTIVE_MODE_FREE_TRAINING);
+            break;
+
+            case CYWEE_SERVICE_CMD_AR_ALERT_MODE:
+                cywee_activity_mode_change(SPORT_ACTIVE_MODE_AR_ALERT);
+            break;
+
+            case CYWEE_SERVICE_CMD_PAUSE:
+                activity_mode_setstatus(1);
+            break;
+
+            case CYWEE_SERVICE_CMD_RESUME:
+                activity_mode_setstatus(0);
+            break;
+
+            case CYWEE_SERVICE_CMD_ONCHARGING_CHANGE:
+                cywee_oncharging_update(mail.data[0]);
+            break;
+
+            case CYWEE_SERVICE_CMD_WEAR_STATUS_CHANGE:
+                cywee_wearstatus_update(mail.data[0]);
+            break;
+
+            case CYWEE_SERVICE_CMD_HRS_WEARSTATUS_CHANGE:
+                cywee_hrs_wearstatus_update(mail.data[0], mail.data[1]);
+            break;
+
+            case CYWEE_SERVICE_CMD_SEDENTARY_MODE:
+                cywee_inactivity_mode_change(INACTIVITY_MODE_SEDENTARY);
+            break;
+
+            case CYWEE_SERVICE_CMD_NAP_MODE:
+                cywee_inactivity_mode_change(INACTIVITY_MODE_NAP);
+            break;
+
+            case CYWEE_SERVICE_CMD_SLEEPING_MODE:
+                cywee_inactivity_mode_change(INACTIVITY_MODE_SLEEPING);
+            break;
+
+            case CYWEE_SERVICE_CMD_OPEN_HAND_UPDOWN:
+                cywee_hand_updown_switch(1);
+            break;
+
+            case CYWEE_SERVICE_CMD_CLOSE_HAND_UPDOWN:
+                cywee_hand_updown_switch(0);
+            break;
+
+            case CYWEE_SERVICE_CMD_OPEN_AR_ALERT:
+                cywee_ar_alert_switch(1);
+            break;
+
+            case CYWEE_SERVICE_CMD_CLOSE_AR_ALERT:
+                cywee_ar_alert_switch(0);
+            break;
+
+            case CYWEE_SERVICE_CMD_TIME_SYNC:
+                cywee_time_sync();
+            break;
+
+            case CYWEE_SERVICE_CMD_GET_SLEEP_DATA:
+                cywee_get_sleep_data();
+            break;
+
+            case CYWEE_SERVICE_CMD_RESET_DAILY_DATA:
+                cywee_reset_daily_data();
+            break;
+
+            default:
+                PRINT("unkonw cmd \r\n");
+                break;
+
         }
-        
     }
 }
 #define CYWEE_APP_BOARD_MSG_COUNT 50
@@ -400,7 +405,7 @@ errcode_t uapi_cywee_service_init(void)
     app_task_definition_t taskcfg = {0};
     taskcfg.create_queue_handle = create_cywee_queue;
     taskcfg.attr.name = "cywee_service";
-    taskcfg.attr.priority = osPriorityNormal;
+    taskcfg.attr.priority = osPriorityNormal2;
     taskcfg.attr.stack_size = CYWEE_APP_BOARD_TASK_SIZE;
     taskcfg.func = cywee_service_check_task;
     taskcfg.use_mem = USE_DTCM_MEM;
@@ -422,7 +427,7 @@ errcode_t uapi_cywee_service_init(void)
 
 void cywee_int_callback(pin_t pin, uintptr_t param)
 {
-    // PRINT("cywee_int1_callback %d 0x%X\n",pin,param);
+    //PRINT("cywee_int1_callback %d 0x%X\n",pin,param);
     uapi_gpio_clear_interrupt(pin);
     do_cywee_service_check_msg(CYWEE_SERVICE_CMD_TIMER_CHECK, NULL);
 }
index b6c48a8..dc21839 100644 (file)
@@ -100,7 +100,7 @@ void cywee_time_sync(void)
     struct tm* timeinfo;
     time(&rawtime);
     timeinfo = localtime(&rawtime);
-    PRINT("year[%d], mon[%d], day[%d], hour[%d], min[%d], msc[%d] \r\n",
+    CWM_OS_dbgPrintf("year[%d], mon[%d], day[%d], hour[%d], min[%d], msc[%d] \r\n",
     timeinfo->tm_year+1900,timeinfo->tm_mon+1,timeinfo->tm_mday,
     timeinfo->tm_hour,timeinfo->tm_min,timeinfo->tm_sec);
 
@@ -162,7 +162,7 @@ void activity_mode_setstatus(int cmd)
     CWM_SettingControl(SCL_ACTIVITY_PAUSE, &scl);
 }
 
-void cyw_inactivity_mode_change(int mode)
+void cywee_inactivity_mode_change(int mode)
 {
     cywee_time_sync();
     switch (mode)
@@ -216,7 +216,7 @@ void cyw_inactivity_mode_change(int mode)
     }
 }
 
-void cyw_activity_mode_change(int mode)
+void cywee_activity_mode_change(int mode)
 {
     switch (mode)
     {
@@ -293,7 +293,7 @@ void get_gsonsen_xyz(gsenson_t *t)
 
 void gsensor_get_n_data(uint8_t cnt,gsenson_t t[])
 {
-     for(int i=0;i<cnt;i++)
+    for(int i=0;i<cnt;i++)
     {
         // if(osal_mutex_trylock(&mutex_gsenson_queue)==0)
         // {
@@ -781,7 +781,7 @@ int cywee_main_dml(void)
     memset(&scl, 0, sizeof(scl));
     scl.iData[0] = 1;
     scl.iData[7] = 5;  //轴向配置
-#if 1
+#if 0
     scl.iData[3] = 2;
     scl.iData[4] = 2; //1 anytime 2 fifo
     scl.iData[6] = 25; //先設定5
@@ -896,11 +896,11 @@ int cywee_main_dml(void)
     //CWM_Sensor_Enable(IDX_ALGO_ABSOLUTE_STATIC);
     //CWM_OS_dbgPrintf("[DBG] %s %d\n", __func__,__LINE__);
 
-    cyw_activity_mode_change(SPORT_ACTIVE_MODE_NORMAL);
+    cywee_activity_mode_change(SPORT_ACTIVE_MODE_NORMAL);
     
-    cyw_inactivity_mode_change(INACTIVITY_MODE_SEDENTARY);
+    cywee_inactivity_mode_change(INACTIVITY_MODE_SEDENTARY);
 
-    //cyw_inactivity_mode_change(INACTIVITY_MODE_SLEEPING);
+    //cywee_inactivity_mode_change(INACTIVITY_MODE_SLEEPING);
 
     return 0;
 }