From 61e3bf3dff2cef49116a7683e7185689cf889e12 Mon Sep 17 00:00:00 2001 From: stark1898y <1658608470@qq.com> Date: Mon, 24 Feb 2025 17:59:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9A=82=E5=AD=98=EF=BC=8C=E8=BF=98=E6=98=AF?= =?UTF-8?q?=E4=B8=8D=E5=AF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BSP/src/bsp_key.c | 2 ++ BSP/src/bsp_valve.c | 19 +++++++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/BSP/src/bsp_key.c b/BSP/src/bsp_key.c index 3f50a61..65cfc08 100644 --- a/BSP/src/bsp_key.c +++ b/BSP/src/bsp_key.c @@ -284,6 +284,8 @@ void KEY_ProcessLoop(void) { // 阻止睡眠 BSP_BlockSleep(); + // BSP_RequestBoost(); + // 关按键中断 BSP_KEY_ExitLowpower(); diff --git a/BSP/src/bsp_valve.c b/BSP/src/bsp_valve.c index 48eb181..0239fd0 100644 --- a/BSP/src/bsp_valve.c +++ b/BSP/src/bsp_valve.c @@ -2,7 +2,7 @@ * @Author : stark1898y 1658608470@qq.com * @Date : 2024-12-15 15:01:15 * @LastEditors : stark1898y 1658608470@qq.com - * @LastEditTime : 2025-02-24 17:33:09 + * @LastEditTime : 2025-02-24 17:58:40 * @FilePath : \BLE_TYQ_CH584M\BSP\src\bsp_valve.c * @Description : * @@ -79,6 +79,9 @@ void VavleDect_Start(void) tmos_memset(cap_buf, 0, sizeof(cap_buf)); + TMR3_CapInit(FallEdge_To_FallEdge); + TMR3_CAPTimeoutCfg(GetSysClock() / 100); // 设置捕捉超时时间 10ms + // TMR3_CAPTimeoutCfg(0x3FFFFFF); // 设置捕捉超时时间 TMR3_DMACfg(ENABLE, (uint16_t)(uint32_t)&cap_buf[0], (uint16_t)(uint32_t)&cap_buf[CAP_BUF_LEN], Mode_Single); TMR3_ITCfg(ENABLE, TMR0_3_IT_DMA_END); // 开启DMA完成中断 @@ -121,8 +124,8 @@ uint16_t VavleDect_GetFreq(void) uint16_t freq = 0; if (cap_flag == 0) { - TMR3_ITCfg(DISABLE, TMR0_3_IT_DMA_END); // 使用单次DMA功能+中断,注意完成后关闭此中断使能,否则会一直上报中断。 - TMR3_ClearITFlag(TMR0_3_IT_DMA_END); // 清除中断标志 + // TMR3_ITCfg(DISABLE, TMR0_3_IT_DMA_END); // 使用单次DMA功能+中断,注意完成后关闭此中断使能,否则会一直上报中断。 + // TMR3_ClearITFlag(TMR0_3_IT_DMA_END); // 清除中断标志 logError("cap err"); return 0; } @@ -540,7 +543,7 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events) valve_switch_dect_flag = 0; logDebug("VAVLE_DECT_SWITCH_START_EVT"); VavleDect_Start(); - tmos_start_task(vavle_task_id, VAVLE_DECT_SWITCH_END_EVT, MS1_TO_SYSTEM_TIME(10)); + tmos_start_task(vavle_task_id, VAVLE_DECT_SWITCH_END_EVT, MS1_TO_SYSTEM_TIME(12)); return (events ^ VAVLE_DECT_SWITCH_START_EVT); } if (events & VAVLE_DECT_SWITCH_END_EVT) @@ -646,10 +649,10 @@ void BSP_VAVLE_Init(void) // 1:TMR3_/PWM3_/CAP3_映射到PA[2]; R16_PIN_ALTERNATE |= (1 << 3); - TMR3_CapInit(FallEdge_To_FallEdge); - // (1 / 62.4MHz) * 2的26次方 = 0.01602564102564102564102564102564 us * 67108864 约等于 1.0754625641025641025641025641025 S - // TMR3_CAPTimeoutCfg(FREQ_SYS ); // 设置捕捉超时时间 - TMR3_CAPTimeoutCfg(GetSysClock() / 100); // 设置捕捉超时时间 10ms + // TMR3_CapInit(FallEdge_To_FallEdge); + // // (1 / 62.4MHz) * 2的26次方 = 0.01602564102564102564102564102564 us * 67108864 约等于 1.0754625641025641025641025641025 S + // // TMR3_CAPTimeoutCfg(FREQ_SYS ); // 设置捕捉超时时间 + // TMR3_CAPTimeoutCfg(GetSysClock() / 100); // 设置捕捉超时时间 10ms tmos_start_task(vavle_task_id, VAVLE_LOOP_DECT_EVT, MS1_TO_SYSTEM_TIME(VALVE_DECT_PERIOD_MS));