This commit is contained in:
parent
87e0ede049
commit
0a51ba710b
|
@ -38,6 +38,7 @@ void app_task_handler(TeAppEvtType app_evt_type)
|
||||||
|
|
||||||
BSP_BlockSleep();
|
BSP_BlockSleep();
|
||||||
BSP_RequestBoost();
|
BSP_RequestBoost();
|
||||||
|
logDebug("BSP_RequestBoost");
|
||||||
|
|
||||||
#if 1
|
#if 1
|
||||||
switch (app_evt_type)
|
switch (app_evt_type)
|
||||||
|
@ -46,6 +47,10 @@ void app_task_handler(TeAppEvtType app_evt_type)
|
||||||
{
|
{
|
||||||
logDebug("button short press");
|
logDebug("button short press");
|
||||||
|
|
||||||
|
DelayMs(30);
|
||||||
|
LDect_Init();
|
||||||
|
logDebug("LDect_Init");
|
||||||
|
|
||||||
key_press_cnt++;
|
key_press_cnt++;
|
||||||
logDebug("key_press_cnt = %d", key_press_cnt);
|
logDebug("key_press_cnt = %d", key_press_cnt);
|
||||||
#if 1
|
#if 1
|
||||||
|
@ -107,6 +112,8 @@ void app_task_handler(TeAppEvtType app_evt_type)
|
||||||
LED_ALL_OFF_DEINIT;
|
LED_ALL_OFF_DEINIT;
|
||||||
BEEP_OFF_DEINIT;
|
BEEP_OFF_DEINIT;
|
||||||
|
|
||||||
|
LDect_Deinit();
|
||||||
|
|
||||||
BSP_NoNeedBoost();
|
BSP_NoNeedBoost();
|
||||||
BSP_RequestSleep();
|
BSP_RequestSleep();
|
||||||
|
|
||||||
|
|
|
@ -117,6 +117,9 @@ typedef struct __attribute__((packed))
|
||||||
} TsValveData;
|
} TsValveData;
|
||||||
extern TsValveData gValveData;
|
extern TsValveData gValveData;
|
||||||
|
|
||||||
|
void LDect_Deinit(void);
|
||||||
|
void LDect_Init(void);
|
||||||
|
|
||||||
uint8_t CheckSum(const uint8_t *data, size_t len);
|
uint8_t CheckSum(const uint8_t *data, size_t len);
|
||||||
|
|
||||||
void VavleDect_Switch(void);
|
void VavleDect_Switch(void);
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* @Author : stark1898y 1658608470@qq.com
|
* @Author : stark1898y 1658608470@qq.com
|
||||||
* @Date : 2024-12-15 15:01:15
|
* @Date : 2024-12-15 15:01:15
|
||||||
* @LastEditors : stark1898y 1658608470@qq.com
|
* @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
|
* @FilePath : \BLE_TYQ_CH584M\BSP\src\bsp_valve.c
|
||||||
* @Description :
|
* @Description :
|
||||||
*
|
*
|
||||||
|
@ -583,6 +583,56 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events)
|
||||||
return 0;
|
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)
|
void BSP_VAVLE_Init(void)
|
||||||
{
|
{
|
||||||
vavle_task_id = TMOS_ProcessEventRegister(VAVLE_Task_ProcessEvent);
|
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));
|
tmos_start_task(vavle_task_id, VAVLE_LOOP_DECT_EVT, MS1_TO_SYSTEM_TIME(VALVE_DECT_PERIOD_MS));
|
||||||
|
|
||||||
|
LDect_Init();
|
||||||
|
#if 0
|
||||||
// PA2
|
// PA2
|
||||||
/* 定时器3,CAP捕捉, */
|
/* 定时器3,CAP捕捉, */
|
||||||
GPIOA_ResetBits(GPIO_Pin_2);
|
GPIOA_ResetBits(GPIO_Pin_2);
|
||||||
|
@ -611,13 +662,9 @@ void BSP_VAVLE_Init(void)
|
||||||
R16_PIN_ALTERNATE |= (1 << 3);
|
R16_PIN_ALTERNATE |= (1 << 3);
|
||||||
logDebug("TMR3_CapInit 0");
|
logDebug("TMR3_CapInit 0");
|
||||||
|
|
||||||
|
|
||||||
TMR3_CapInit(FallEdge_To_FallEdge);
|
TMR3_CapInit(FallEdge_To_FallEdge);
|
||||||
// (1 / 62.4MHz) * 2的26次方 = 0.01602564102564102564102564102564 us * 67108864 约等于 1.0754625641025641025641025641025 S
|
// (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(GetSysClock() / 100); // 设置捕捉超时时间 10ms
|
||||||
|
|
||||||
// TMR3_CAPTimeoutCfg(0x3FFFFFF); // 设置捕捉超时时间
|
// TMR3_CAPTimeoutCfg(0x3FFFFFF); // 设置捕捉超时时间
|
||||||
|
@ -638,6 +685,15 @@ void BSP_VAVLE_Init(void)
|
||||||
}
|
}
|
||||||
#endif
|
#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");
|
logInfo("BSP_Valve_Init");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
14
HAL/SLEEP.c
14
HAL/SLEEP.c
|
@ -45,6 +45,8 @@ void BSP_BlockSleep(void)
|
||||||
__HIGH_CODE
|
__HIGH_CODE
|
||||||
void BSP_RequestBoost(void)
|
void BSP_RequestBoost(void)
|
||||||
{
|
{
|
||||||
|
// LDect_Init();
|
||||||
|
|
||||||
BOOST_EN;
|
BOOST_EN;
|
||||||
block_boost_flag = false;
|
block_boost_flag = false;
|
||||||
}
|
}
|
||||||
|
@ -53,6 +55,9 @@ __HIGH_CODE
|
||||||
void BSP_NoNeedBoost(void)
|
void BSP_NoNeedBoost(void)
|
||||||
{
|
{
|
||||||
block_boost_flag = true;
|
block_boost_flag = true;
|
||||||
|
LDect_Deinit();
|
||||||
|
|
||||||
|
BOOST_OFF_DEINIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -73,17 +78,22 @@ uint32_t CH58x_LowPower(uint32_t time)
|
||||||
// BSP_UART1_TxLowPower();
|
// BSP_UART1_TxLowPower();
|
||||||
if (block_boost_flag == false)
|
if (block_boost_flag == false)
|
||||||
{
|
{
|
||||||
BOOST_EN;
|
// LDect_Init();
|
||||||
|
|
||||||
|
// BOOST_EN;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
BOOST_OFF_DEINIT;
|
// LDect_Deinit();
|
||||||
|
|
||||||
|
// BOOST_OFF_DEINIT;
|
||||||
}
|
}
|
||||||
if (true == block_sleep_flag)
|
if (true == block_sleep_flag)
|
||||||
{
|
{
|
||||||
// logDebug("block_sleep");
|
// logDebug("block_sleep");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
LDect_Deinit();
|
||||||
#if (defined(HAL_SLEEP)) && (HAL_SLEEP == TRUE)
|
#if (defined(HAL_SLEEP)) && (HAL_SLEEP == TRUE)
|
||||||
volatile uint32_t i;
|
volatile uint32_t i;
|
||||||
uint32_t time_tign, time_sleep, time_curr;
|
uint32_t time_tign, time_sleep, time_curr;
|
||||||
|
|
Loading…
Reference in New Issue