This commit is contained in:
parent
87e0ede049
commit
0a51ba710b
|
@ -38,6 +38,7 @@ void app_task_handler(TeAppEvtType app_evt_type)
|
|||
|
||||
BSP_BlockSleep();
|
||||
BSP_RequestBoost();
|
||||
logDebug("BSP_RequestBoost");
|
||||
|
||||
#if 1
|
||||
switch (app_evt_type)
|
||||
|
@ -46,6 +47,10 @@ void app_task_handler(TeAppEvtType app_evt_type)
|
|||
{
|
||||
logDebug("button short press");
|
||||
|
||||
DelayMs(30);
|
||||
LDect_Init();
|
||||
logDebug("LDect_Init");
|
||||
|
||||
key_press_cnt++;
|
||||
logDebug("key_press_cnt = %d", key_press_cnt);
|
||||
#if 1
|
||||
|
@ -107,6 +112,8 @@ void app_task_handler(TeAppEvtType app_evt_type)
|
|||
LED_ALL_OFF_DEINIT;
|
||||
BEEP_OFF_DEINIT;
|
||||
|
||||
LDect_Deinit();
|
||||
|
||||
BSP_NoNeedBoost();
|
||||
BSP_RequestSleep();
|
||||
|
||||
|
|
|
@ -117,6 +117,9 @@ typedef struct __attribute__((packed))
|
|||
} TsValveData;
|
||||
extern TsValveData gValveData;
|
||||
|
||||
void LDect_Deinit(void);
|
||||
void LDect_Init(void);
|
||||
|
||||
uint8_t CheckSum(const uint8_t *data, size_t len);
|
||||
|
||||
void VavleDect_Switch(void);
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* @Author : stark1898y 1658608470@qq.com
|
||||
* @Date : 2024-12-15 15:01:15
|
||||
* @LastEditors : stark1898y 1658608470@qq.com
|
||||
* @LastEditTime : 2025-05-21 16:23:23
|
||||
* @LastEditTime : 2025-05-21 17:23:23
|
||||
* @FilePath : \BLE_TYQ_CH584M\BSP\src\bsp_valve.c
|
||||
* @Description :
|
||||
*
|
||||
|
@ -583,6 +583,56 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events)
|
|||
return 0;
|
||||
}
|
||||
|
||||
void LDect_Deinit(void)
|
||||
{
|
||||
// 休眠时候,这里下拉输入
|
||||
GPIOA_ModeCfg(GPIO_Pin_2, GPIO_ModeIN_PD);
|
||||
}
|
||||
|
||||
void LDect_IoInit(void)
|
||||
{
|
||||
// PA2
|
||||
/* 定时器3,CAP捕捉, */
|
||||
GPIOA_ResetBits(GPIO_Pin_2);
|
||||
GPIOA_ModeCfg(GPIO_Pin_2, GPIO_ModeIN_PU);
|
||||
}
|
||||
|
||||
void LDect_Init(void)
|
||||
{
|
||||
// 退出休眠需要重新设置
|
||||
#if 1
|
||||
|
||||
// TMR3功能引脚映射选择位:
|
||||
// 1:TMR3_/PWM3_/CAP3_映射到PA[2];
|
||||
R16_PIN_ALTERNATE |= (1 << 3);
|
||||
logDebug("TMR3_CapInit 0");
|
||||
|
||||
TMR3_CapInit(FallEdge_To_FallEdge);
|
||||
// (1 / 62.4MHz) * 2的26次方 = 0.01602564102564102564102564102564 us * 67108864 约等于 1.0754625641025641025641025641025 S
|
||||
|
||||
TMR3_CAPTimeoutCfg(GetSysClock() / 100); // 设置捕捉超时时间 10ms
|
||||
|
||||
// TMR3_CAPTimeoutCfg(0x3FFFFFF); // 设置捕捉超时时间
|
||||
TMR3_DMACfg(ENABLE, (uint16_t)(uint32_t)&cap_buf[0], (uint16_t)(uint32_t)&cap_buf[20], Mode_Single);
|
||||
TMR3_ITCfg(ENABLE, TMR0_3_IT_DMA_END); // 开启DMA完成中断
|
||||
PFIC_EnableIRQ(TMR3_IRQn);
|
||||
|
||||
LDect_IoInit();
|
||||
|
||||
logDebug("TMR3_CapInit");
|
||||
while(cap_flag == 0);
|
||||
cap_flag = 0;
|
||||
for(uint8_t i = 0; i < 20; i++)
|
||||
{
|
||||
logDebug("%08ld ", cap_buf[i] & 0x1ffffff); // 26bit, 最高位表示 高电平还是低电平
|
||||
uint16_t t = ((cap_buf[i] & 0x1ffffff) * 1.0f) / FREQ_SYS * 1000000;
|
||||
uint16_t f = 1000000 / t;
|
||||
logDebug("T = %04d us, f = %04d Hz", t, f);
|
||||
BSP_UART1_TxLoop();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void BSP_VAVLE_Init(void)
|
||||
{
|
||||
vavle_task_id = TMOS_ProcessEventRegister(VAVLE_Task_ProcessEvent);
|
||||
|
@ -600,7 +650,8 @@ void BSP_VAVLE_Init(void)
|
|||
|
||||
tmos_start_task(vavle_task_id, VAVLE_LOOP_DECT_EVT, MS1_TO_SYSTEM_TIME(VALVE_DECT_PERIOD_MS));
|
||||
|
||||
|
||||
LDect_Init();
|
||||
#if 0
|
||||
// PA2
|
||||
/* 定时器3,CAP捕捉, */
|
||||
GPIOA_ResetBits(GPIO_Pin_2);
|
||||
|
@ -611,13 +662,9 @@ void BSP_VAVLE_Init(void)
|
|||
R16_PIN_ALTERNATE |= (1 << 3);
|
||||
logDebug("TMR3_CapInit 0");
|
||||
|
||||
|
||||
TMR3_CapInit(FallEdge_To_FallEdge);
|
||||
// (1 / 62.4MHz) * 2的26次方 = 0.01602564102564102564102564102564 us * 67108864 约等于 1.0754625641025641025641025641025 S
|
||||
// TMR3_CAPTimeoutCfg(FREQ_SYS ); // 设置捕捉超时时间
|
||||
#if 0
|
||||
// TODO:这里进睡眠就出错?
|
||||
// 在这里偶发重启 RST_FLAG_RPOR
|
||||
|
||||
TMR3_CAPTimeoutCfg(GetSysClock() / 100); // 设置捕捉超时时间 10ms
|
||||
|
||||
// TMR3_CAPTimeoutCfg(0x3FFFFFF); // 设置捕捉超时时间
|
||||
|
@ -638,6 +685,15 @@ void BSP_VAVLE_Init(void)
|
|||
}
|
||||
#endif
|
||||
|
||||
// R8_TMR3_CTRL_MOD = RB_TMR_ALL_CLEAR;
|
||||
// TMR3_Disable();
|
||||
// // TMR3_ITCfg(DISABLE, TMR0_3_IT_DMA_END); // 关闭DMA完成中断
|
||||
// PFIC_DisableIRQ(TMR3_IRQn);
|
||||
|
||||
// GPIOA_ResetBits(GPIO_Pin_2);
|
||||
// TODO:问题出在这里,这里会导致出错
|
||||
LDect_Deinit();
|
||||
|
||||
logInfo("BSP_Valve_Init");
|
||||
}
|
||||
|
||||
|
|
14
HAL/SLEEP.c
14
HAL/SLEEP.c
|
@ -45,6 +45,8 @@ void BSP_BlockSleep(void)
|
|||
__HIGH_CODE
|
||||
void BSP_RequestBoost(void)
|
||||
{
|
||||
// LDect_Init();
|
||||
|
||||
BOOST_EN;
|
||||
block_boost_flag = false;
|
||||
}
|
||||
|
@ -53,6 +55,9 @@ __HIGH_CODE
|
|||
void BSP_NoNeedBoost(void)
|
||||
{
|
||||
block_boost_flag = true;
|
||||
LDect_Deinit();
|
||||
|
||||
BOOST_OFF_DEINIT;
|
||||
}
|
||||
|
||||
|
||||
|
@ -73,17 +78,22 @@ uint32_t CH58x_LowPower(uint32_t time)
|
|||
// BSP_UART1_TxLowPower();
|
||||
if (block_boost_flag == false)
|
||||
{
|
||||
BOOST_EN;
|
||||
// LDect_Init();
|
||||
|
||||
// BOOST_EN;
|
||||
}
|
||||
else
|
||||
{
|
||||
BOOST_OFF_DEINIT;
|
||||
// LDect_Deinit();
|
||||
|
||||
// BOOST_OFF_DEINIT;
|
||||
}
|
||||
if (true == block_sleep_flag)
|
||||
{
|
||||
// logDebug("block_sleep");
|
||||
return 0;
|
||||
}
|
||||
LDect_Deinit();
|
||||
#if (defined(HAL_SLEEP)) && (HAL_SLEEP == TRUE)
|
||||
volatile uint32_t i;
|
||||
uint32_t time_tign, time_sleep, time_curr;
|
||||
|
|
Loading…
Reference in New Issue