暂存,装004阀门
This commit is contained in:
parent
a3a95c5d0c
commit
19312b9ae0
|
@ -2,6 +2,7 @@ eclipse.preferences.version=1
|
|||
encoding//APP/peripheral_main.c=UTF-8
|
||||
encoding//BSP/inc/bsp_valve.h=UTF-8
|
||||
encoding//BSP/src/bsp_adc.c=UTF-8
|
||||
encoding//BSP/src/bsp_beep_led_emv.c=UTF-8
|
||||
encoding//BSP/src/bsp_i2c.c=UTF-8
|
||||
encoding//BSP/src/bsp_key.c=UTF-8
|
||||
encoding//BSP/src/bsp_valve.c=UTF-8
|
||||
|
|
|
@ -17,6 +17,7 @@
|
|||
"stdarg.h": "c",
|
||||
"bsp_flash.h": "c",
|
||||
"bsp_valve.h": "c",
|
||||
"log.h": "c"
|
||||
"log.h": "c",
|
||||
"hal.h": "c"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,6 +27,10 @@
|
|||
#include "bsp_i2c.h"
|
||||
#include "bsp_adc.h"
|
||||
|
||||
#include "bsp_beep_led_emv.h"
|
||||
|
||||
#include "SLEEP.h"
|
||||
|
||||
#undef LOG_ENABLE
|
||||
#define LOG_ENABLE 1
|
||||
|
||||
|
@ -48,7 +52,7 @@ void BSP_NoNeeedReplyCMd(void)
|
|||
}
|
||||
|
||||
// How often to perform periodic event
|
||||
#define SBP_PERIODIC_EVT_PERIOD (160 * 10 * 5) // (160 = 100ms)
|
||||
#define SBP_PERIODIC_EVT_PERIOD (1600 * 60) // (160 = 100ms)
|
||||
|
||||
// How often to perform read rssi event
|
||||
#define SBP_READ_RSSI_EVT_PERIOD (1600 * 3) // (160 = 100ms)
|
||||
|
@ -721,6 +725,29 @@ static void performPeriodicTask(void)
|
|||
{
|
||||
gValveData.bat = BSP_ReadVbat();
|
||||
|
||||
BSP_BlockSleep();
|
||||
BSP_RequestBoost();
|
||||
// DelayMs(1);
|
||||
ShowLed();
|
||||
|
||||
DelayMs(5);
|
||||
LED_ALL_OFF_DEINIT;
|
||||
// BEEP_OFF_DEINIT;
|
||||
|
||||
BSP_NoNeedBoost();
|
||||
BSP_RequestSleep();
|
||||
|
||||
// µçѹ¹ýµÍ¾Í¹Ø·§
|
||||
if (gValveData.bat <= LOW_VABAT_CLOSE_VALUE)
|
||||
{
|
||||
gValveData.switch_status = kClosed;
|
||||
tmos_set_event(vavle_task_id, VAVLE_CLOSE_START_EVT);
|
||||
}
|
||||
else if (gValveData.bat <= LOW_VABAT_ALARM_VALUE)
|
||||
{
|
||||
tmos_set_event(vavle_task_id, VAVLE_LOW_VBAT_ALARM_EVT);
|
||||
}
|
||||
|
||||
float _humi, _temp;
|
||||
if (BSP_ReadTempHumi(&_humi, &_temp) == 0)
|
||||
{
|
||||
|
|
|
@ -41,27 +41,58 @@
|
|||
|
||||
__attribute__((aligned(4))) uint32_t MEM_BUF[BLE_MEMHEAP_SIZE / 4];
|
||||
|
||||
static uint8_t key_cnt = 0;
|
||||
|
||||
static uint8_t key_press_cnt = 0;
|
||||
|
||||
|
||||
void app_task_handler(TeAppEvtType app_evt_type)
|
||||
{
|
||||
BSP_BlockSleep();
|
||||
|
||||
switch(app_evt_type)
|
||||
{
|
||||
case kKeyShort:
|
||||
logDebug("button short press");
|
||||
key_cnt++;
|
||||
if (key_cnt == 1)
|
||||
key_press_cnt++;
|
||||
logDebug("key_press_cnt = %d", key_press_cnt);
|
||||
if (key_press_cnt == 1)
|
||||
{
|
||||
// TODO:LED显示状态
|
||||
logDebug("LED显示状态");
|
||||
// tmos_set_event(led_task_id, LED_SHOW_START_EVT);
|
||||
BSP_BlockSleep();
|
||||
BSP_RequestBoost();
|
||||
DelayMs(1);
|
||||
ShowLed();
|
||||
// tmos_stop_task(led_task_id, LED_SHOW_ONCE_EVT);
|
||||
// tmos_start_task(led_task_id, LED_SHOW_ONCE_EVT, 1000);
|
||||
}
|
||||
else if (key_cnt == 2)
|
||||
else if (key_press_cnt >= 2)
|
||||
{
|
||||
if (gValveData.switch_status == kClosed)
|
||||
{
|
||||
logDebug("kClosed-->kOpened");
|
||||
// tmos_set_event(led_task_id, LED_SHOW_START_EVT);
|
||||
gValveData.switch_status = kOpened;
|
||||
BSP_BlockSleep();
|
||||
BSP_RequestBoost();
|
||||
DelayMs(1);
|
||||
ShowLed();
|
||||
// tmos_stop_task(led_task_id, LED_SHOW_ONCE_EVT);
|
||||
// tmos_start_task(led_task_id, LED_SHOW_ONCE_EVT, 1000);
|
||||
}
|
||||
else if (gValveData.switch_status == kOpened)
|
||||
else if (gValveData.switch_status != kClosed)
|
||||
{
|
||||
logDebug("kOpened-->kClosed");
|
||||
gValveData.switch_status = kClosed;
|
||||
tmos_set_event(vavle_task_id, VAVLE_CLOSE_START_EVT);
|
||||
|
||||
// tmos_set_event(led_task_id, LED_SHOW_START_EVT);
|
||||
BSP_BlockSleep();
|
||||
BSP_RequestBoost();
|
||||
DelayMs(1);
|
||||
ShowLed();
|
||||
// tmos_stop_task(led_task_id, LED_SHOW_ONCE_EVT);
|
||||
// tmos_start_task(led_task_id, LED_SHOW_ONCE_EVT, 1000);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -73,8 +104,16 @@ void app_task_handler(TeAppEvtType app_evt_type)
|
|||
case kKeyRelease:
|
||||
// BSP_KEY_EnterLowpower();
|
||||
// DelayMs(10);
|
||||
key_cnt = 0;
|
||||
key_press_cnt = 0;
|
||||
// BSP_RequestSleep();
|
||||
// tmos_set_event(led_task_id, LED_SHOW_END_EVT);
|
||||
|
||||
LED_ALL_OFF_DEINIT;
|
||||
BEEP_OFF_DEINIT;
|
||||
|
||||
BSP_NoNeedBoost();
|
||||
BSP_RequestSleep();
|
||||
|
||||
logDebug("gpio relase;BSP_RequestSleep");
|
||||
|
||||
break;
|
||||
|
@ -193,33 +232,19 @@ int main(void)
|
|||
#endif
|
||||
SetSysClock(CLK_SOURCE_PLL_60MHz);
|
||||
|
||||
|
||||
#if (defined(HAL_SLEEP)) && (HAL_SLEEP == TRUE)
|
||||
GPIOA_ModeCfg(GPIO_Pin_All, GPIO_ModeIN_PD);
|
||||
GPIOB_ModeCfg(GPIO_Pin_All, GPIO_ModeIN_PD);
|
||||
#endif
|
||||
#ifdef DEBUG
|
||||
// GPIOA_SetBits(bTXD1);
|
||||
// GPIOA_ModeCfg(bTXD1, GPIO_ModeOut_PP_5mA);
|
||||
|
||||
// UART1_DefInit();
|
||||
|
||||
// 改成1500000波特率了
|
||||
BSP_UART1_Init(1500000);
|
||||
logDebug("Start @ChipID=%02X\n", R8_CHIP_ID);
|
||||
logError("中文测试 %2.2f", 123.456);
|
||||
|
||||
#endif
|
||||
|
||||
DelayMs(1000 * 3);
|
||||
BSP_BEEP_LED_EMV_Init();
|
||||
|
||||
BOOST_OFF_DEINIT;
|
||||
BEEP_OFF_DEINIT;
|
||||
LED_ALL_OFF_DEINIT;
|
||||
EMV_CHARGE_OFF_DEINIT;
|
||||
EMV_OFF_DEINIT;
|
||||
|
||||
// BSP_ADC_Init();
|
||||
CH59x_BLEInit();
|
||||
|
||||
logDebug("%s\n", VER_LIB);
|
||||
|
@ -234,25 +259,51 @@ int main(void)
|
|||
// {
|
||||
// DelayMs(1000);
|
||||
// }
|
||||
HAL_Init();
|
||||
GAPRole_PeripheralInit();
|
||||
Peripheral_Init();
|
||||
|
||||
// 在连接间隔和广播间隔到来时,会进入回调中喂狗
|
||||
// LL_AdvertiseEventRegister(BLE_AdvertiseEventCB);
|
||||
// LL_ConnectEventRegister(BLE_ConnectEventCB);
|
||||
|
||||
BSP_FLASH_Init();
|
||||
|
||||
|
||||
DelayMs(100);
|
||||
GXHTC3C_Init();
|
||||
|
||||
BSP_KEY_Init(app_task_handler);
|
||||
|
||||
|
||||
|
||||
// IWDG_Init(1500);
|
||||
DelayMs(1000 * 3);
|
||||
|
||||
BSP_ADC_Init();
|
||||
|
||||
BSP_VAVLE_Init();
|
||||
|
||||
|
||||
|
||||
HAL_Init();
|
||||
GAPRole_PeripheralInit();
|
||||
Peripheral_Init();
|
||||
|
||||
BSP_BlockSleep();
|
||||
BSP_RequestBoost();
|
||||
DelayMs(1);
|
||||
ShowLed();
|
||||
BEEP_ON;
|
||||
|
||||
DelayMs(1000 * 1);
|
||||
|
||||
LED_ALL_OFF_DEINIT;
|
||||
BEEP_OFF_DEINIT;
|
||||
|
||||
BSP_NoNeedBoost();
|
||||
BSP_RequestSleep();
|
||||
|
||||
// 在连接间隔和广播间隔到来时,会进入回调中喂狗
|
||||
// LL_AdvertiseEventRegister(BLE_AdvertiseEventCB);
|
||||
// LL_ConnectEventRegister(BLE_ConnectEventCB);
|
||||
|
||||
|
||||
|
||||
|
||||
Main_Circulation();
|
||||
}
|
||||
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
* @Author : stark1898y 1658608470@qq.com
|
||||
* @Date : 2024-12-09 09:50:56
|
||||
* @LastEditors : stark1898y 1658608470@qq.com
|
||||
* @LastEditTime : 2024-12-15 15:37:31
|
||||
* @FilePath : \BLE_TYQ_CH592F - 副本\BSP\inc\bsp_beep_led_emv.h
|
||||
* @LastEditTime : 2024-12-17 10:49:46
|
||||
* @FilePath : \BLE_TYQ_CH592F\BSP\inc\bsp_beep_led_emv.h
|
||||
* @Description :
|
||||
*
|
||||
* Copyright (c) 2024 by yzy, All Rights Reserved.
|
||||
|
@ -14,6 +14,17 @@
|
|||
|
||||
#include "CONFIG.h"
|
||||
|
||||
extern tmosTaskID led_task_id;
|
||||
|
||||
#define LED_SHOW_START_EVT (0x0001 << 0)
|
||||
#define LED_SHOW_ONCE_EVT (0x0001 << 1)
|
||||
|
||||
#define LED_SHOW_END_EVT (0x0001 << 2)
|
||||
|
||||
#define CLOSE_VALVE_ACTION_EVT (0x0001 << 3)
|
||||
#define LOW_VBAT_EVT (0x0001 << 4)
|
||||
#define HIGH_TEMP_EVT (0x0001 << 5)
|
||||
|
||||
|
||||
/**********************BOOST 12V_EN************************ */
|
||||
#define BOOST_EN \
|
||||
|
@ -106,5 +117,8 @@
|
|||
GPIOB_ModeCfg(GPIO_Pin_12, GPIO_ModeIN_Floating); \
|
||||
} while (0);
|
||||
|
||||
void BSP_BEEP_LED_EMV_Init(void);
|
||||
|
||||
void ShowLed();
|
||||
|
||||
#endif // !__BSP_BEEP_LED_EMV_H__
|
||||
|
|
|
@ -6,14 +6,14 @@
|
|||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#define KEY_TIMOUT_MS 1000
|
||||
#define KEY_TIMOUT_MS 3000
|
||||
#define KEY_LONG_PRESS_MS 5000
|
||||
#define KEY_SACN_MS 40
|
||||
|
||||
#define KEY_SCAN_EVT (0x0001 << 0)
|
||||
#define KEY_WAKEUP_EVT (0x0001 << 1)
|
||||
#define KEY_RELEASE_EVT (0x0001 << 2)
|
||||
#define KEY_IDLE_TIMEOUT_EVT (0x0001 << 2)
|
||||
#define KEY_IDLE_TIMEOUT_EVT (0x0001 << 3)
|
||||
|
||||
// KEY_B_PIN at PB7,low->active
|
||||
#define KEY_B_PIN GPIO_Pin_7
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* @Author : stark1898y 1658608470@qq.com
|
||||
* @Date : 2024-12-12 15:55:38
|
||||
* @LastEditors : stark1898y 1658608470@qq.com
|
||||
* @LastEditTime : 2024-12-16 21:00:37
|
||||
* @LastEditTime : 2024-12-17 14:14:36
|
||||
* @FilePath : \BLE_TYQ_CH592F\BSP\inc\bsp_valve.h
|
||||
* @Description :
|
||||
*
|
||||
|
@ -23,9 +23,24 @@ extern tmosTaskID vavle_task_id;
|
|||
#define VAVLE_CLOSE_ACTION_EVT (0x0001 << 3) // 关阀,动作
|
||||
#define VAVLE_CLOSE_END_EVT (0x0001 << 4) // 关阀结束
|
||||
|
||||
#define VAVLE_LOW_VBAT_ALARM_EVT (0x0001 << 5) // 低电压提醒
|
||||
|
||||
#define VAVLE_DECT_EVT (0x0001 << 6) // 循环检测
|
||||
|
||||
|
||||
#define VALVE_LOW_VBAT_ALARM_PERIOD_MS (1600 * 60 * 10)
|
||||
|
||||
#define VALVE_DECT_PERIOD_MS (1600 * 60 * 10)
|
||||
|
||||
|
||||
|
||||
#define CHARGE_TIME_MS 1000
|
||||
|
||||
// 2.2V
|
||||
#define LOW_VABAT_ALARM_VALUE 22
|
||||
|
||||
#define LOW_VABAT_CLOSE_VALUE 20
|
||||
|
||||
|
||||
#define FRAME_HEADER 0xAA
|
||||
#define FRAME_TAIL 0x55
|
||||
|
|
|
@ -1,80 +1,118 @@
|
|||
#include "bsp_beep_led_emv.h"
|
||||
|
||||
#if 0
|
||||
void BSP_BOOST_Init(void)
|
||||
#include "bsp_uart.h"
|
||||
#include "log.h"
|
||||
|
||||
#include "bsp_beep_led_emv.h"
|
||||
#include "bsp_valve.h"
|
||||
|
||||
#include "SLEEP.h"
|
||||
|
||||
#include "bsp_adc.h"
|
||||
|
||||
#undef LOG_ENABLE
|
||||
#define LOG_ENABLE 1
|
||||
|
||||
#undef LOG_TAG
|
||||
#define LOG_TAG "led"
|
||||
|
||||
tmosTaskID led_task_id = INVALID_TASK_ID;
|
||||
|
||||
|
||||
|
||||
|
||||
void ShowLed()
|
||||
{
|
||||
gValveData.bat = BSP_ReadVbat();
|
||||
|
||||
// 电压过低就关阀
|
||||
if (gValveData.bat <= LOW_VABAT_ALARM_VALUE)
|
||||
{
|
||||
LED_ALL_OFF_DEINIT;
|
||||
LED_Y_ON;
|
||||
|
||||
BEEP_ON;
|
||||
logDebug("LED_Y_ON");
|
||||
}
|
||||
else if (gValveData.switch_status == kUnknown || gValveData.switch_status == kClosed)
|
||||
{
|
||||
LED_ALL_OFF_DEINIT;
|
||||
LED_R_ON;
|
||||
|
||||
logDebug("LED_R_ON");
|
||||
}
|
||||
else if (gValveData.switch_status == kOpened)
|
||||
{
|
||||
LED_ALL_OFF_DEINIT;
|
||||
|
||||
LED_G_ON;
|
||||
|
||||
logDebug("LED_G_ON");
|
||||
}
|
||||
}
|
||||
|
||||
static tmosEvents LED_Task_ProcessEvent(tmosTaskID taskID, tmosEvents event)
|
||||
{
|
||||
//event 处理
|
||||
if(event & LED_SHOW_START_EVT)
|
||||
{
|
||||
logDebug("LED_SHOW_START_EVT");
|
||||
BSP_BlockSleep();
|
||||
BSP_RequestBoost();
|
||||
DelayMs(1);
|
||||
ShowLed();
|
||||
tmos_stop_task(led_task_id, LED_SHOW_ONCE_EVT);
|
||||
tmos_start_task(led_task_id, LED_SHOW_ONCE_EVT, 1000);
|
||||
return (event ^ LED_SHOW_START_EVT);
|
||||
}
|
||||
if (event & LED_SHOW_ONCE_EVT)
|
||||
{
|
||||
logDebug("LED_SHOW_ONCE_EVT");
|
||||
|
||||
LED_ALL_OFF_DEINIT;
|
||||
BEEP_OFF_DEINIT;
|
||||
|
||||
tmos_set_event(led_task_id, LED_SHOW_END_EVT);
|
||||
|
||||
return (event ^ LED_SHOW_ONCE_EVT);
|
||||
}
|
||||
if(event & LED_SHOW_END_EVT)
|
||||
{
|
||||
logDebug("LED_SHOW_END_EVT");
|
||||
|
||||
LED_ALL_OFF_DEINIT;
|
||||
BEEP_OFF_DEINIT;
|
||||
|
||||
BSP_NoNeedBoost();
|
||||
BSP_RequestSleep();
|
||||
|
||||
// BEEP_OFF_DEINIT;
|
||||
// EMV_CHARGE_OFF_DEINIT;
|
||||
// EMV_OFF_DEINIT;
|
||||
|
||||
return (event ^ LED_SHOW_END_EVT);
|
||||
}
|
||||
if (event & LOW_VBAT_EVT)
|
||||
{
|
||||
logDebug("LOW_VBAT_EVT");
|
||||
LED_Y_ON;
|
||||
return (event ^ LOW_VBAT_EVT);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
void BSP_BOOST_DeInit(void)
|
||||
|
||||
void BSP_BEEP_LED_EMV_Init(void)
|
||||
{
|
||||
// 12V_EN
|
||||
GPIOB_ResetBits(GPIO_Pin_14);
|
||||
GPIOB_ModeCfg(GPIO_Pin_14, GPIO_ModeIN_PD);
|
||||
BOOST_OFF_DEINIT;
|
||||
BEEP_OFF_DEINIT;
|
||||
LED_ALL_OFF_DEINIT;
|
||||
EMV_CHARGE_OFF_DEINIT;
|
||||
EMV_OFF_DEINIT;
|
||||
|
||||
led_task_id = TMOS_ProcessEventRegister(LED_Task_ProcessEvent);
|
||||
logDebug("BSP_BEEP_LED_EMV_Init");
|
||||
}
|
||||
|
||||
|
||||
void BSP_BEEP_Init(void)
|
||||
{
|
||||
// BEEP
|
||||
GPIOA_ResetBits(GPIO_Pin_14);
|
||||
GPIOA_ModeCfg(GPIO_Pin_14, GPIO_ModeOut_PP_5mA);
|
||||
}
|
||||
|
||||
void BSP_BEEP_DeInit(void)
|
||||
{
|
||||
// BEEP
|
||||
GPIOA_ResetBits(GPIO_Pin_14);
|
||||
// 有数字晶体管的下拉
|
||||
GPIOA_ModeCfg(GPIO_Pin_14, GPIO_ModeIN_Floating);
|
||||
}
|
||||
|
||||
void BSP_LED_Init(void)
|
||||
{
|
||||
// LED_R
|
||||
GPIOA_ResetBits(GPIO_Pin_4);
|
||||
GPIOA_ModeCfg(GPIO_Pin_4, GPIO_ModeOut_PP_5mA);
|
||||
|
||||
// LED_G
|
||||
GPIOA_ResetBits(GPIO_Pin_5);
|
||||
GPIOA_ModeCfg(GPIO_Pin_5, GPIO_ModeOut_PP_5mA);
|
||||
|
||||
// LED_Y
|
||||
GPIOA_ResetBits(GPIO_Pin_15);
|
||||
GPIOA_ModeCfg(GPIO_Pin_15, GPIO_ModeOut_PP_5mA);
|
||||
}
|
||||
|
||||
void BEP_LED_DeInit(void)
|
||||
{
|
||||
// LED
|
||||
GPIOA_ResetBits(GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_15);
|
||||
// 有数字晶体管的下拉
|
||||
GPIOA_ModeCfg(GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_15, GPIO_ModeIN_Floating);
|
||||
}
|
||||
|
||||
void BSP_EMV_Init(void)
|
||||
{
|
||||
// EMV_CHARGE
|
||||
GPIOB_ResetBits(GPIO_Pin_13);
|
||||
GPIOB_ModeCfg(GPIO_Pin_13, GPIO_ModeOut_PP_5mA);
|
||||
|
||||
// EMV_EN
|
||||
GPIOB_ResetBits(GPIO_Pin_12);
|
||||
GPIOB_ModeCfg(GPIO_Pin_12, GPIO_ModeOut_PP_5mA);
|
||||
}
|
||||
|
||||
void BSP_EMV_DeInit(void)
|
||||
{
|
||||
// EMV_CHARGE
|
||||
GPIOB_ResetBits(GPIO_Pin_13);
|
||||
// 有数字晶体管的下拉
|
||||
GPIOB_ModeCfg(GPIO_Pin_13, GPIO_ModeIN_Floating);
|
||||
|
||||
// EMV_EN
|
||||
GPIOB_ResetBits(GPIO_Pin_12);
|
||||
// 有外部下拉电阻
|
||||
GPIOB_ModeCfg(GPIO_Pin_12, GPIO_ModeIN_Floating);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
|
|
@ -70,11 +70,10 @@ static uint16_t KEY_Task_ProcessEvent(uint8_t task_id, uint16_t events)
|
|||
{
|
||||
key_vaild_times++;
|
||||
}
|
||||
key_timeout_cnt = 10;
|
||||
key_timeout_cnt = KEY_TIMOUT_MS / KEY_SACN_MS;
|
||||
}
|
||||
else
|
||||
{ // button release
|
||||
|
||||
if (key_vaild_times)
|
||||
{
|
||||
if ((key_vaild_times) < (KEY_LONG_PRESS_MS / KEY_SACN_MS))
|
||||
|
@ -90,7 +89,7 @@ static uint16_t KEY_Task_ProcessEvent(uint8_t task_id, uint16_t events)
|
|||
if (key_timeout_cnt)
|
||||
{
|
||||
key_timeout_cnt--;
|
||||
logDebug("key_timeout_cnt %d", key_timeout_cnt);
|
||||
// logDebug("key_timeout_cnt %d", key_timeout_cnt);
|
||||
tmos_start_task(key_task_id, KEY_SCAN_EVT, MS1_TO_SYSTEM_TIME(KEY_SACN_MS)); // 40ms
|
||||
}
|
||||
else
|
||||
|
@ -109,19 +108,6 @@ static uint16_t KEY_Task_ProcessEvent(uint8_t task_id, uint16_t events)
|
|||
// 由按键中断唤醒后开启按键扫描
|
||||
void BSP_KEY_EnterLowpower(void)
|
||||
{
|
||||
// key_wakeup_flag = 0;
|
||||
// tmos_stop_task(key_task_id, KEY_SCAN_EVT);
|
||||
|
||||
// R16_PB_INT_MODE |= KEY_B_PIN; // edge mode
|
||||
// GPIOB_ResetBits(KEY_B_PIN); // edge fall
|
||||
// R16_PB_INT_IF = KEY_B_PIN;
|
||||
// R16_PB_INT_EN |= KEY_B_PIN;
|
||||
|
||||
// 由外部上拉电阻了
|
||||
// 设置为浮空输入模式
|
||||
// GPIOB_SetBits(KEY_B_PIN);
|
||||
// GPIOB_ModeCfg(KEY_B_PIN, GPIO_ModeIN_PU);
|
||||
|
||||
// TODO:按键电平触发设置
|
||||
// 下降沿触发
|
||||
GPIOB_ITModeCfg(KEY_B_PIN, GPIO_ITMode_FallEdge);
|
||||
|
@ -253,7 +239,7 @@ void BSP_KEY_Init(app_task_evt_handler_t handler)
|
|||
// 由外部上拉电阻了
|
||||
// 设置为浮空输入模式
|
||||
// GPIOB_SetBits(KEY_B_PIN);
|
||||
GPIOB_ModeCfg(KEY_B_PIN, GPIO_ModeIN_PU);
|
||||
GPIOB_ModeCfg(KEY_B_PIN, GPIO_ModeIN_Floating);
|
||||
|
||||
// 下降沿触发
|
||||
GPIOB_ITModeCfg(KEY_B_PIN, GPIO_ITMode_FallEdge);
|
||||
|
@ -266,42 +252,18 @@ void BSP_KEY_Init(app_task_evt_handler_t handler)
|
|||
PFIC_EnableIRQ(GPIO_B_IRQn);
|
||||
|
||||
tmos_start_task(key_task_id, KEY_SCAN_EVT, MS1_TO_SYSTEM_TIME(KEY_SACN_MS));
|
||||
|
||||
// tmos_start_task(key_task_id, KEY_SCAN_EVT, MS1_TO_SYSTEM_TIME(5));
|
||||
|
||||
//开始一个定时事件,不断的执行,除非运行tmos_stop_task关掉,
|
||||
//tmosTimer具体是 1600 = 1s
|
||||
// BSP_KEY_EnterLowpower();
|
||||
}
|
||||
|
||||
__HIGH_CODE
|
||||
__attribute__((noinline))
|
||||
void KEY_ProcessLoop(void)
|
||||
{
|
||||
// {
|
||||
// if (R16_PB_INT_IF & KEY_B_PIN)
|
||||
// {
|
||||
// R16_PB_INT_IF = KEY_B_PIN;
|
||||
// tmos_set_event(key_task_id, KEY_SCAN_EVT);
|
||||
// logDebug("KEY_ProcessLoop");
|
||||
// }
|
||||
// }
|
||||
if (key_wakeup_flag)
|
||||
{
|
||||
key_wakeup_flag = 0;
|
||||
tmos_set_event(key_task_id, KEY_SCAN_EVT);
|
||||
logDebug("KEY_ProcessLoop");
|
||||
}
|
||||
|
||||
|
||||
// if (key_wakeup_flag)
|
||||
// {
|
||||
// key_wakeup_flag = 0;
|
||||
// tmos_set_event(key_task_id, KEY_SCAN_EVT);
|
||||
// // tmos_start_task(key_task_id, KEY_SCAN_EVT, MS1_TO_SYSTEM_TIME(20));
|
||||
// // tmos_start_task(key_task_id, KEY_IDLE_TIMEOUT_EVT, MS1_TO_SYSTEM_TIME(1000 * 10));
|
||||
// logDebug("key_wakeup_flag");
|
||||
// }
|
||||
}
|
||||
|
||||
|
||||
|
@ -318,16 +280,8 @@ void GPIOB_IRQHandler(void)
|
|||
|
||||
GPIOB_ClearITFlagBit(KEY_B_PIN);
|
||||
|
||||
// tmos_set_event(key_task_id, KEY_SCAN_EVT);
|
||||
// logDebug("KEY_ProcessLoop");
|
||||
|
||||
key_wakeup_flag = 1;
|
||||
// key_timeout_flag = 0;
|
||||
|
||||
// BSP_BlockSleep();
|
||||
|
||||
// if (R16_PB_INT_IF & KEY_B_PIN)
|
||||
// {
|
||||
// R16_PB_INT_IF = KEY_B_PIN;
|
||||
// // tmos_set_event(key_task_id, KEY_SCAN_EVT);
|
||||
// BSP_KEY_ExitLowpower();
|
||||
// }
|
||||
// tmos_set_event(key_task_id,KEY_SCAN_EVT);
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* @Author : stark1898y 1658608470@qq.com
|
||||
* @Date : 2024-12-15 15:01:15
|
||||
* @LastEditors : stark1898y 1658608470@qq.com
|
||||
* @LastEditTime : 2024-12-16 21:11:32
|
||||
* @LastEditTime : 2024-12-17 14:36:52
|
||||
* @FilePath : \BLE_TYQ_CH592F\BSP\src\bsp_valve.c
|
||||
* @Description :
|
||||
*
|
||||
|
@ -19,6 +19,10 @@
|
|||
|
||||
#include "peripheral.h"
|
||||
|
||||
#include "SLEEP.h"
|
||||
|
||||
#include "bsp_adc.h"
|
||||
|
||||
#undef LOG_ENABLE
|
||||
#define LOG_ENABLE 1
|
||||
|
||||
|
@ -336,7 +340,7 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events)
|
|||
{
|
||||
logDebug("VAVLE_CLOSE_START_EVT");
|
||||
|
||||
BOOST_EN;
|
||||
BSP_RequestBoost();
|
||||
DelayMs(1);
|
||||
|
||||
// EMV_CHARGE
|
||||
|
@ -352,6 +356,7 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events)
|
|||
if (events & VAVLE_CLOSE_ACTION_EVT)
|
||||
{
|
||||
logDebug("VAVLE_CLOSE_ACTION_EVT");
|
||||
BEEP_ON;
|
||||
// 关阀动作
|
||||
EMV_CHARGE_OFF_DEINIT;
|
||||
logDebug("EMV_CHARGE_OFF_DEINIT");
|
||||
|
@ -365,18 +370,53 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events)
|
|||
}
|
||||
if (events & VAVLE_CLOSE_END_EVT)
|
||||
{
|
||||
BEEP_OFF_DEINIT;
|
||||
|
||||
EMV_CHARGE_OFF_DEINIT;
|
||||
EMV_OFF_DEINIT;
|
||||
|
||||
BSP_NoNeedBoost();
|
||||
|
||||
gValveData.switch_status = kClosed;
|
||||
|
||||
tmos_memset(&RelyData, 0, sizeof(RelyData));
|
||||
BSP_VALVE_Generate_ValveResponse(&RelyData, kCmdCloseVavle, 1);
|
||||
|
||||
|
||||
|
||||
tmos_set_event(Peripheral_TaskID, SBP_REPLY_CMD_EVT);
|
||||
|
||||
logDebug("VAVLE_CLOSE_END_EVT");
|
||||
return (events ^ VAVLE_CLOSE_END_EVT);
|
||||
}
|
||||
if (events & VAVLE_LOW_VBAT_ALARM_EVT)
|
||||
{
|
||||
logDebug("VAVLE_LOW_VBAT_ALARM_EVT");
|
||||
|
||||
tmos_set_event(vavle_task_id, VAVLE_CLOSE_START_EVT);
|
||||
|
||||
// tmos_start_task(vavle_task_id, VAVLE_LOW_VBAT_ALARM_EVT, MS1_TO_SYSTEM_TIME(VALVE_LOW_VBAT_ALARM_PERIOD_MS));
|
||||
|
||||
return (events ^ VAVLE_LOW_VBAT_ALARM_EVT);
|
||||
}
|
||||
if (events & VAVLE_DECT_EVT)
|
||||
{
|
||||
logDebug("VAVLE_DECT_EVT");
|
||||
|
||||
gValveData.bat = BSP_ReadVbat();
|
||||
|
||||
// 电压过低就关阀
|
||||
if (gValveData.bat <= LOW_VABAT_CLOSE_VALUE)
|
||||
{
|
||||
gValveData.switch_status = kClosed;
|
||||
tmos_set_event(vavle_task_id, VAVLE_CLOSE_START_EVT);
|
||||
}
|
||||
else if (gValveData.bat <= LOW_VABAT_ALARM_VALUE)
|
||||
{
|
||||
tmos_set_event(vavle_task_id, VAVLE_LOW_VBAT_ALARM_EVT);
|
||||
}
|
||||
tmos_start_task(vavle_task_id, VAVLE_DECT_EVT, MS1_TO_SYSTEM_TIME(VALVE_DECT_PERIOD_MS));
|
||||
|
||||
return (events ^ VAVLE_DECT_EVT);
|
||||
}
|
||||
|
||||
// Discard unknown events
|
||||
return 0;
|
||||
|
@ -395,10 +435,12 @@ void BSP_VAVLE_Init(void)
|
|||
gValveData.atm_pressure = 0;
|
||||
|
||||
gValveData.type = kTyq;
|
||||
gValveData.bat = 0;
|
||||
gValveData.bat = BSP_ReadVbat();
|
||||
|
||||
// //立即开始一个event
|
||||
// tmos_set_event(vavle_task_id, VAVLE_RX_DATA_EVT);
|
||||
|
||||
tmos_start_task(vavle_task_id, VAVLE_DECT_EVT, MS1_TO_SYSTEM_TIME(VALVE_DECT_PERIOD_MS));
|
||||
|
||||
logInfo("BSP_Valve_Init");
|
||||
}
|
||||
|
|
44
HAL/LED.c
44
HAL/LED.c
|
@ -6,7 +6,7 @@
|
|||
* Description :
|
||||
*********************************************************************************
|
||||
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
|
||||
* Attention: This software (modified or not) and binary are used for
|
||||
* Attention: This software (modified or not) and binary are used for
|
||||
* microcontroller manufactured by Nanjing Qinheng Microelectronics.
|
||||
*******************************************************************************/
|
||||
|
||||
|
@ -14,6 +14,8 @@
|
|||
/* Í·Îļþ°üº¬ */
|
||||
#include "HAL.h"
|
||||
|
||||
#include "bsp_beep_led_emv.h"
|
||||
|
||||
/* LED control structure */
|
||||
typedef struct
|
||||
{
|
||||
|
@ -58,10 +60,16 @@ void HalLedOnOff(uint8_t leds, uint8_t mode);
|
|||
void HAL_LedInit(void)
|
||||
{
|
||||
/* Initialize all LEDs to OFF */
|
||||
LED1_DDR;
|
||||
LEDR_DDR;
|
||||
LEDG_DDR;
|
||||
LEDY_DDR;
|
||||
BEEP_DDR;
|
||||
|
||||
HalLedSet(HAL_LED_ALL, HAL_LED_MODE_OFF);
|
||||
|
||||
BOOST_EN;
|
||||
// just test
|
||||
HalLedBlink(HAL_LED_1, 10, 30, 4000);
|
||||
HalLedBlink(HAL_LED_R, 10, 50, 200);
|
||||
/* Initialize sleepActive to FALSE */
|
||||
HalLedStatusControl.sleepActive = FALSE;
|
||||
}
|
||||
|
@ -101,7 +109,7 @@ uint8_t HalLedSet(uint8_t leds, uint8_t mode)
|
|||
case HAL_LED_MODE_OFF:
|
||||
case HAL_LED_MODE_TOGGLE:
|
||||
{
|
||||
led = HAL_LED_1;
|
||||
led = HAL_LED_R;
|
||||
leds &= HAL_LED_ALL;
|
||||
sts = HalLedStatusControl.HalLedControlTable;
|
||||
while(leds)
|
||||
|
@ -152,7 +160,7 @@ void HalLedBlink(uint8_t leds, uint8_t numBlinks, uint8_t percent, uint16_t peri
|
|||
{
|
||||
if(percent < 100)
|
||||
{
|
||||
led = HAL_LED_1;
|
||||
led = HAL_LED_R;
|
||||
leds &= HAL_LED_ALL;
|
||||
sts = HalLedStatusControl.HalLedControlTable;
|
||||
while(leds)
|
||||
|
@ -204,7 +212,7 @@ void HalLedUpdate(void)
|
|||
HalLedControl_t *sts;
|
||||
|
||||
next = 0;
|
||||
led = HAL_LED_1;
|
||||
led = HAL_LED_R;
|
||||
leds = HAL_LED_ALL;
|
||||
sts = HalLedStatusControl.HalLedControlTable;
|
||||
|
||||
|
@ -291,48 +299,48 @@ void HalLedUpdate(void)
|
|||
*/
|
||||
void HalLedOnOff(uint8_t leds, uint8_t mode)
|
||||
{
|
||||
if(leds & HAL_LED_1)
|
||||
if(leds & HAL_LED_R)
|
||||
{
|
||||
if(mode == HAL_LED_MODE_ON)
|
||||
{
|
||||
HAL_TURN_ON_LED1();
|
||||
HAL_TURN_ON_LEDR();
|
||||
}
|
||||
else
|
||||
{
|
||||
HAL_TURN_OFF_LED1();
|
||||
HAL_TURN_OFF_LEDR();
|
||||
}
|
||||
}
|
||||
if(leds & HAL_LED_2)
|
||||
if(leds & HAL_LED_G)
|
||||
{
|
||||
if(mode == HAL_LED_MODE_ON)
|
||||
{
|
||||
HAL_TURN_ON_LED2();
|
||||
HAL_TURN_ON_LEDG();
|
||||
}
|
||||
else
|
||||
{
|
||||
HAL_TURN_OFF_LED2();
|
||||
HAL_TURN_OFF_LEDG();
|
||||
}
|
||||
}
|
||||
if(leds & HAL_LED_3)
|
||||
if(leds & HAL_LED_Y)
|
||||
{
|
||||
if(mode == HAL_LED_MODE_ON)
|
||||
{
|
||||
HAL_TURN_ON_LED3();
|
||||
HAL_TURN_ON_LEDY();
|
||||
}
|
||||
else
|
||||
{
|
||||
HAL_TURN_OFF_LED3();
|
||||
HAL_TURN_OFF_LEDY();
|
||||
}
|
||||
}
|
||||
if(leds & HAL_LED_4)
|
||||
if(leds & HAL_LED_BEEP)
|
||||
{
|
||||
if(mode == HAL_LED_MODE_ON)
|
||||
{
|
||||
HAL_TURN_ON_LED4();
|
||||
HAL_TURN_ON_BEEP();
|
||||
}
|
||||
else
|
||||
{
|
||||
HAL_TURN_OFF_LED4();
|
||||
HAL_TURN_OFF_BEEP();
|
||||
}
|
||||
}
|
||||
/* Remember current state */
|
||||
|
|
23
HAL/SLEEP.c
23
HAL/SLEEP.c
|
@ -19,6 +19,8 @@
|
|||
#include "log.h"
|
||||
#include "bsp_uart.h"
|
||||
|
||||
#include "bsp_beep_led_emv.h"
|
||||
|
||||
|
||||
#undef LOG_ENABLE
|
||||
#define LOG_ENABLE 1
|
||||
|
@ -27,6 +29,7 @@
|
|||
#define LOG_TAG "sleep"
|
||||
|
||||
static volatile bool block_sleep_flag = false;
|
||||
static volatile bool block_boost_flag = false;
|
||||
|
||||
void BSP_RequestSleep(void)
|
||||
{
|
||||
|
@ -38,6 +41,18 @@ void BSP_BlockSleep(void)
|
|||
block_sleep_flag = true;
|
||||
}
|
||||
|
||||
void BSP_RequestBoost(void)
|
||||
{
|
||||
BOOST_EN;
|
||||
block_boost_flag = false;
|
||||
}
|
||||
|
||||
void BSP_NoNeedBoost(void)
|
||||
{
|
||||
block_boost_flag = true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
* @fn CH59x_LowPower
|
||||
|
@ -50,6 +65,14 @@ void BSP_BlockSleep(void)
|
|||
*/
|
||||
uint32_t CH59x_LowPower(uint32_t time)
|
||||
{
|
||||
if (block_boost_flag == false)
|
||||
{
|
||||
BOOST_EN;
|
||||
}
|
||||
else
|
||||
{
|
||||
BOOST_OFF_DEINIT;
|
||||
}
|
||||
if( true == block_sleep_flag)
|
||||
{
|
||||
// logDebug("block_sleep");
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
* Description :
|
||||
*********************************************************************************
|
||||
* Copyright (c) 2021 Nanjing Qinheng Microelectronics Co., Ltd.
|
||||
* Attention: This software (modified or not) and binary are used for
|
||||
* Attention: This software (modified or not) and binary are used for
|
||||
* microcontroller manufactured by Nanjing Qinheng Microelectronics.
|
||||
*******************************************************************************/
|
||||
|
||||
|
|
|
@ -23,11 +23,12 @@ extern "C" {
|
|||
*/
|
||||
|
||||
/* LEDS - The LED number is the same as the bit position */
|
||||
#define HAL_LED_1 0x01
|
||||
#define HAL_LED_2 0x02
|
||||
#define HAL_LED_3 0x04
|
||||
#define HAL_LED_4 0x08
|
||||
#define HAL_LED_ALL (HAL_LED_1 | HAL_LED_2 | HAL_LED_3 | HAL_LED_4)
|
||||
#define HAL_LED_R 0x01
|
||||
#define HAL_LED_G 0x02
|
||||
#define HAL_LED_Y 0x04
|
||||
// BEEP
|
||||
#define HAL_LED_BEEP 0x08
|
||||
#define HAL_LED_ALL (HAL_LED_R | HAL_LED_G | HAL_LED_Y | HAL_LED_BEEP)
|
||||
|
||||
/* Modes */
|
||||
#define HAL_LED_MODE_OFF 0x00
|
||||
|
@ -49,33 +50,42 @@ extern "C" {
|
|||
/* 连接一个LED用于监控演示程序的进度,低电平LED亮 */
|
||||
|
||||
/* 1 - LED */
|
||||
#define LED1_BV BV(15)
|
||||
#define LED2_BV
|
||||
#define LED3_BV
|
||||
#define LEDR_BV BV(4) // PA4
|
||||
#define LEDG_BV BV(5) // PA5
|
||||
#define LEDY_BV BV(15) // PA15
|
||||
|
||||
#define LED1_OUT (R32_PB_OUT)
|
||||
#define LED2_OUT 0
|
||||
#define LED3_OUT 0
|
||||
#define LED4_OUT 0
|
||||
#define BEEP_BV BV(14) // PA14
|
||||
|
||||
#define LED1_DDR (R32_PB_DIR |= LED1_BV)
|
||||
#define LED2_DDR 0
|
||||
#define LED3_DDR 0
|
||||
#define LEDR_OUT (R32_PA_OUT)
|
||||
#define LEDG_OUT (R32_PA_OUT)
|
||||
#define LEDY_OUT (R32_PA_OUT)
|
||||
|
||||
#define HAL_TURN_OFF_LED1() (LED1_OUT |= LED1_BV)
|
||||
#define HAL_TURN_OFF_LED2()
|
||||
#define HAL_TURN_OFF_LED3()
|
||||
#define HAL_TURN_OFF_LED4()
|
||||
#define BEEP_OUT (R32_PA_OUT)
|
||||
|
||||
#define HAL_TURN_ON_LED1() (LED1_OUT &= (~LED1_BV))
|
||||
#define HAL_TURN_ON_LED2()
|
||||
#define HAL_TURN_ON_LED3()
|
||||
#define HAL_TURN_ON_LED4()
|
||||
#define LEDR_DDR (R32_PA_DIR |= LEDR_BV)
|
||||
#define LEDG_DDR (R32_PA_DIR |= LEDG_BV)
|
||||
#define LEDY_DDR (R32_PA_DIR |= LEDY_BV)
|
||||
|
||||
#define HAL_STATE_LED1() 0
|
||||
#define HAL_STATE_LED2() 0
|
||||
#define HAL_STATE_LED3() 0
|
||||
#define HAL_STATE_LED4() 0
|
||||
#define BEEP_DDR (R32_PA_DIR |= BEEP_BV)
|
||||
|
||||
|
||||
#define HAL_TURN_OFF_LEDR() (LEDR_OUT &= (~LEDR_BV))
|
||||
#define HAL_TURN_OFF_LEDG() (LEDG_OUT &= (~LEDG_BV))
|
||||
#define HAL_TURN_OFF_LEDY() (LEDY_OUT &= (~LEDY_BV))
|
||||
|
||||
#define HAL_TURN_OFF_BEEP() (BEEP_OUT |= BEEP_BV)
|
||||
|
||||
#define HAL_TURN_ON_LEDR() (LEDR_OUT |= LEDR_BV)
|
||||
#define HAL_TURN_ON_LEDG() (LEDG_OUT |= LEDG_BV)
|
||||
#define HAL_TURN_ON_LEDY() (LEDY_OUT |= LEDY_BV)
|
||||
|
||||
#define HAL_TURN_ON_BEEP() (BEEP_OUT |= BEEP_BV)
|
||||
|
||||
#define HAL_STATE_LEDR() GPIOA_ReadPortPin(LEDR_BV)
|
||||
#define HAL_STATE_LEDG() GPIOA_ReadPortPin(LEDG_BV)
|
||||
#define HAL_STATE_LEDY() GPIOA_ReadPortPin(LEDY_BV)
|
||||
|
||||
#define HAL_STATE_BEEP() GPIOA_ReadPortPin(BEEP_BV)
|
||||
|
||||
/*********************************************************************
|
||||
* GLOBAL VARIABLES
|
||||
|
|
|
@ -25,6 +25,8 @@ extern "C" {
|
|||
void BSP_RequestSleep(void);
|
||||
void BSP_BlockSleep(void);
|
||||
|
||||
void BSP_RequestBoost(void);
|
||||
void BSP_NoNeedBoost(void);
|
||||
|
||||
/*********************************************************************
|
||||
* FUNCTIONS
|
||||
|
|
Loading…
Reference in New Issue