暂存,装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//APP/peripheral_main.c=UTF-8
|
||||||
encoding//BSP/inc/bsp_valve.h=UTF-8
|
encoding//BSP/inc/bsp_valve.h=UTF-8
|
||||||
encoding//BSP/src/bsp_adc.c=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_i2c.c=UTF-8
|
||||||
encoding//BSP/src/bsp_key.c=UTF-8
|
encoding//BSP/src/bsp_key.c=UTF-8
|
||||||
encoding//BSP/src/bsp_valve.c=UTF-8
|
encoding//BSP/src/bsp_valve.c=UTF-8
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
"stdarg.h": "c",
|
"stdarg.h": "c",
|
||||||
"bsp_flash.h": "c",
|
"bsp_flash.h": "c",
|
||||||
"bsp_valve.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_i2c.h"
|
||||||
#include "bsp_adc.h"
|
#include "bsp_adc.h"
|
||||||
|
|
||||||
|
#include "bsp_beep_led_emv.h"
|
||||||
|
|
||||||
|
#include "SLEEP.h"
|
||||||
|
|
||||||
#undef LOG_ENABLE
|
#undef LOG_ENABLE
|
||||||
#define LOG_ENABLE 1
|
#define LOG_ENABLE 1
|
||||||
|
|
||||||
|
@ -48,7 +52,7 @@ void BSP_NoNeeedReplyCMd(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
// How often to perform periodic event
|
// 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
|
// How often to perform read rssi event
|
||||||
#define SBP_READ_RSSI_EVT_PERIOD (1600 * 3) // (160 = 100ms)
|
#define SBP_READ_RSSI_EVT_PERIOD (1600 * 3) // (160 = 100ms)
|
||||||
|
@ -721,6 +725,29 @@ static void performPeriodicTask(void)
|
||||||
{
|
{
|
||||||
gValveData.bat = BSP_ReadVbat();
|
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;
|
float _humi, _temp;
|
||||||
if (BSP_ReadTempHumi(&_humi, &_temp) == 0)
|
if (BSP_ReadTempHumi(&_humi, &_temp) == 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -41,27 +41,58 @@
|
||||||
|
|
||||||
__attribute__((aligned(4))) uint32_t MEM_BUF[BLE_MEMHEAP_SIZE / 4];
|
__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)
|
void app_task_handler(TeAppEvtType app_evt_type)
|
||||||
{
|
{
|
||||||
|
BSP_BlockSleep();
|
||||||
|
|
||||||
switch(app_evt_type)
|
switch(app_evt_type)
|
||||||
{
|
{
|
||||||
case kKeyShort:
|
case kKeyShort:
|
||||||
logDebug("button short press");
|
logDebug("button short press");
|
||||||
key_cnt++;
|
key_press_cnt++;
|
||||||
if (key_cnt == 1)
|
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)
|
if (gValveData.switch_status == kClosed)
|
||||||
{
|
{
|
||||||
|
logDebug("kClosed-->kOpened");
|
||||||
|
// tmos_set_event(led_task_id, LED_SHOW_START_EVT);
|
||||||
gValveData.switch_status = kOpened;
|
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;
|
break;
|
||||||
|
@ -73,8 +104,16 @@ void app_task_handler(TeAppEvtType app_evt_type)
|
||||||
case kKeyRelease:
|
case kKeyRelease:
|
||||||
// BSP_KEY_EnterLowpower();
|
// BSP_KEY_EnterLowpower();
|
||||||
// DelayMs(10);
|
// 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();
|
BSP_RequestSleep();
|
||||||
|
|
||||||
logDebug("gpio relase;BSP_RequestSleep");
|
logDebug("gpio relase;BSP_RequestSleep");
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -193,33 +232,19 @@ int main(void)
|
||||||
#endif
|
#endif
|
||||||
SetSysClock(CLK_SOURCE_PLL_60MHz);
|
SetSysClock(CLK_SOURCE_PLL_60MHz);
|
||||||
|
|
||||||
|
|
||||||
#if (defined(HAL_SLEEP)) && (HAL_SLEEP == TRUE)
|
#if (defined(HAL_SLEEP)) && (HAL_SLEEP == TRUE)
|
||||||
GPIOA_ModeCfg(GPIO_Pin_All, GPIO_ModeIN_PD);
|
GPIOA_ModeCfg(GPIO_Pin_All, GPIO_ModeIN_PD);
|
||||||
GPIOB_ModeCfg(GPIO_Pin_All, GPIO_ModeIN_PD);
|
GPIOB_ModeCfg(GPIO_Pin_All, GPIO_ModeIN_PD);
|
||||||
#endif
|
#endif
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
// GPIOA_SetBits(bTXD1);
|
|
||||||
// GPIOA_ModeCfg(bTXD1, GPIO_ModeOut_PP_5mA);
|
|
||||||
|
|
||||||
// UART1_DefInit();
|
|
||||||
|
|
||||||
// 改成1500000波特率了
|
// 改成1500000波特率了
|
||||||
BSP_UART1_Init(1500000);
|
BSP_UART1_Init(1500000);
|
||||||
logDebug("Start @ChipID=%02X\n", R8_CHIP_ID);
|
logDebug("Start @ChipID=%02X\n", R8_CHIP_ID);
|
||||||
logError("中文测试 %2.2f", 123.456);
|
logError("中文测试 %2.2f", 123.456);
|
||||||
|
|
||||||
#endif
|
#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();
|
CH59x_BLEInit();
|
||||||
|
|
||||||
logDebug("%s\n", VER_LIB);
|
logDebug("%s\n", VER_LIB);
|
||||||
|
@ -234,25 +259,51 @@ int main(void)
|
||||||
// {
|
// {
|
||||||
// DelayMs(1000);
|
// DelayMs(1000);
|
||||||
// }
|
// }
|
||||||
HAL_Init();
|
|
||||||
GAPRole_PeripheralInit();
|
|
||||||
Peripheral_Init();
|
|
||||||
|
|
||||||
// 在连接间隔和广播间隔到来时,会进入回调中喂狗
|
|
||||||
// LL_AdvertiseEventRegister(BLE_AdvertiseEventCB);
|
|
||||||
// LL_ConnectEventRegister(BLE_ConnectEventCB);
|
|
||||||
|
|
||||||
BSP_FLASH_Init();
|
BSP_FLASH_Init();
|
||||||
|
|
||||||
|
|
||||||
DelayMs(100);
|
DelayMs(100);
|
||||||
GXHTC3C_Init();
|
GXHTC3C_Init();
|
||||||
|
|
||||||
BSP_KEY_Init(app_task_handler);
|
BSP_KEY_Init(app_task_handler);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// IWDG_Init(1500);
|
// IWDG_Init(1500);
|
||||||
|
DelayMs(1000 * 3);
|
||||||
|
|
||||||
|
BSP_ADC_Init();
|
||||||
|
|
||||||
BSP_VAVLE_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();
|
Main_Circulation();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,8 +2,8 @@
|
||||||
* @Author : stark1898y 1658608470@qq.com
|
* @Author : stark1898y 1658608470@qq.com
|
||||||
* @Date : 2024-12-09 09:50:56
|
* @Date : 2024-12-09 09:50:56
|
||||||
* @LastEditors : stark1898y 1658608470@qq.com
|
* @LastEditors : stark1898y 1658608470@qq.com
|
||||||
* @LastEditTime : 2024-12-15 15:37:31
|
* @LastEditTime : 2024-12-17 10:49:46
|
||||||
* @FilePath : \BLE_TYQ_CH592F - 副本\BSP\inc\bsp_beep_led_emv.h
|
* @FilePath : \BLE_TYQ_CH592F\BSP\inc\bsp_beep_led_emv.h
|
||||||
* @Description :
|
* @Description :
|
||||||
*
|
*
|
||||||
* Copyright (c) 2024 by yzy, All Rights Reserved.
|
* Copyright (c) 2024 by yzy, All Rights Reserved.
|
||||||
|
@ -14,6 +14,17 @@
|
||||||
|
|
||||||
#include "CONFIG.h"
|
#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************************ */
|
/**********************BOOST 12V_EN************************ */
|
||||||
#define BOOST_EN \
|
#define BOOST_EN \
|
||||||
|
@ -106,5 +117,8 @@
|
||||||
GPIOB_ModeCfg(GPIO_Pin_12, GPIO_ModeIN_Floating); \
|
GPIOB_ModeCfg(GPIO_Pin_12, GPIO_ModeIN_Floating); \
|
||||||
} while (0);
|
} while (0);
|
||||||
|
|
||||||
|
void BSP_BEEP_LED_EMV_Init(void);
|
||||||
|
|
||||||
|
void ShowLed();
|
||||||
|
|
||||||
#endif // !__BSP_BEEP_LED_EMV_H__
|
#endif // !__BSP_BEEP_LED_EMV_H__
|
||||||
|
|
|
@ -6,14 +6,14 @@
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
|
||||||
#define KEY_TIMOUT_MS 1000
|
#define KEY_TIMOUT_MS 3000
|
||||||
#define KEY_LONG_PRESS_MS 5000
|
#define KEY_LONG_PRESS_MS 5000
|
||||||
#define KEY_SACN_MS 40
|
#define KEY_SACN_MS 40
|
||||||
|
|
||||||
#define KEY_SCAN_EVT (0x0001 << 0)
|
#define KEY_SCAN_EVT (0x0001 << 0)
|
||||||
#define KEY_WAKEUP_EVT (0x0001 << 1)
|
#define KEY_WAKEUP_EVT (0x0001 << 1)
|
||||||
#define KEY_RELEASE_EVT (0x0001 << 2)
|
#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
|
// KEY_B_PIN at PB7,low->active
|
||||||
#define KEY_B_PIN GPIO_Pin_7
|
#define KEY_B_PIN GPIO_Pin_7
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* @Author : stark1898y 1658608470@qq.com
|
* @Author : stark1898y 1658608470@qq.com
|
||||||
* @Date : 2024-12-12 15:55:38
|
* @Date : 2024-12-12 15:55:38
|
||||||
* @LastEditors : stark1898y 1658608470@qq.com
|
* @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
|
* @FilePath : \BLE_TYQ_CH592F\BSP\inc\bsp_valve.h
|
||||||
* @Description :
|
* @Description :
|
||||||
*
|
*
|
||||||
|
@ -23,9 +23,24 @@ extern tmosTaskID vavle_task_id;
|
||||||
#define VAVLE_CLOSE_ACTION_EVT (0x0001 << 3) // 关阀,动作
|
#define VAVLE_CLOSE_ACTION_EVT (0x0001 << 3) // 关阀,动作
|
||||||
#define VAVLE_CLOSE_END_EVT (0x0001 << 4) // 关阀结束
|
#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
|
#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_HEADER 0xAA
|
||||||
#define FRAME_TAIL 0x55
|
#define FRAME_TAIL 0x55
|
||||||
|
|
|
@ -1,80 +1,118 @@
|
||||||
#include "bsp_beep_led_emv.h"
|
#include "bsp_beep_led_emv.h"
|
||||||
|
|
||||||
#if 0
|
#include "bsp_uart.h"
|
||||||
void BSP_BOOST_Init(void)
|
#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");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void BSP_BOOST_DeInit(void)
|
static tmosEvents LED_Task_ProcessEvent(tmosTaskID taskID, tmosEvents event)
|
||||||
{
|
{
|
||||||
// 12V_EN
|
//event 处理
|
||||||
GPIOB_ResetBits(GPIO_Pin_14);
|
if(event & LED_SHOW_START_EVT)
|
||||||
GPIOB_ModeCfg(GPIO_Pin_14, GPIO_ModeIN_PD);
|
{
|
||||||
|
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_BEEP_Init(void)
|
|
||||||
{
|
|
||||||
// BEEP
|
|
||||||
GPIOA_ResetBits(GPIO_Pin_14);
|
|
||||||
GPIOA_ModeCfg(GPIO_Pin_14, GPIO_ModeOut_PP_5mA);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void BSP_BEEP_DeInit(void)
|
|
||||||
|
void BSP_BEEP_LED_EMV_Init(void)
|
||||||
{
|
{
|
||||||
// BEEP
|
BOOST_OFF_DEINIT;
|
||||||
GPIOA_ResetBits(GPIO_Pin_14);
|
BEEP_OFF_DEINIT;
|
||||||
// 有数字晶体管的下拉
|
LED_ALL_OFF_DEINIT;
|
||||||
GPIOA_ModeCfg(GPIO_Pin_14, GPIO_ModeIN_Floating);
|
EMV_CHARGE_OFF_DEINIT;
|
||||||
|
EMV_OFF_DEINIT;
|
||||||
|
|
||||||
|
led_task_id = TMOS_ProcessEventRegister(LED_Task_ProcessEvent);
|
||||||
|
logDebug("BSP_BEEP_LED_EMV_Init");
|
||||||
}
|
}
|
||||||
|
|
||||||
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_vaild_times++;
|
||||||
}
|
}
|
||||||
key_timeout_cnt = 10;
|
key_timeout_cnt = KEY_TIMOUT_MS / KEY_SACN_MS;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ // button release
|
{ // button release
|
||||||
|
|
||||||
if (key_vaild_times)
|
if (key_vaild_times)
|
||||||
{
|
{
|
||||||
if ((key_vaild_times) < (KEY_LONG_PRESS_MS / KEY_SACN_MS))
|
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)
|
if (key_timeout_cnt)
|
||||||
{
|
{
|
||||||
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
|
tmos_start_task(key_task_id, KEY_SCAN_EVT, MS1_TO_SYSTEM_TIME(KEY_SACN_MS)); // 40ms
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -109,19 +108,6 @@ static uint16_t KEY_Task_ProcessEvent(uint8_t task_id, uint16_t events)
|
||||||
// 由按键中断唤醒后开启按键扫描
|
// 由按键中断唤醒后开启按键扫描
|
||||||
void BSP_KEY_EnterLowpower(void)
|
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:按键电平触发设置
|
// TODO:按键电平触发设置
|
||||||
// 下降沿触发
|
// 下降沿触发
|
||||||
GPIOB_ITModeCfg(KEY_B_PIN, GPIO_ITMode_FallEdge);
|
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_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);
|
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);
|
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(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
|
__HIGH_CODE
|
||||||
__attribute__((noinline))
|
__attribute__((noinline))
|
||||||
void KEY_ProcessLoop(void)
|
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)
|
if (key_wakeup_flag)
|
||||||
{
|
{
|
||||||
key_wakeup_flag = 0;
|
key_wakeup_flag = 0;
|
||||||
tmos_set_event(key_task_id, KEY_SCAN_EVT);
|
tmos_set_event(key_task_id, KEY_SCAN_EVT);
|
||||||
logDebug("KEY_ProcessLoop");
|
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);
|
GPIOB_ClearITFlagBit(KEY_B_PIN);
|
||||||
|
|
||||||
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);
|
// tmos_set_event(key_task_id, KEY_SCAN_EVT);
|
||||||
|
// logDebug("KEY_ProcessLoop");
|
||||||
|
|
||||||
|
key_wakeup_flag = 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 : 2024-12-16 21:11:32
|
* @LastEditTime : 2024-12-17 14:36:52
|
||||||
* @FilePath : \BLE_TYQ_CH592F\BSP\src\bsp_valve.c
|
* @FilePath : \BLE_TYQ_CH592F\BSP\src\bsp_valve.c
|
||||||
* @Description :
|
* @Description :
|
||||||
*
|
*
|
||||||
|
@ -19,6 +19,10 @@
|
||||||
|
|
||||||
#include "peripheral.h"
|
#include "peripheral.h"
|
||||||
|
|
||||||
|
#include "SLEEP.h"
|
||||||
|
|
||||||
|
#include "bsp_adc.h"
|
||||||
|
|
||||||
#undef LOG_ENABLE
|
#undef LOG_ENABLE
|
||||||
#define LOG_ENABLE 1
|
#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");
|
logDebug("VAVLE_CLOSE_START_EVT");
|
||||||
|
|
||||||
BOOST_EN;
|
BSP_RequestBoost();
|
||||||
DelayMs(1);
|
DelayMs(1);
|
||||||
|
|
||||||
// EMV_CHARGE
|
// 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)
|
if (events & VAVLE_CLOSE_ACTION_EVT)
|
||||||
{
|
{
|
||||||
logDebug("VAVLE_CLOSE_ACTION_EVT");
|
logDebug("VAVLE_CLOSE_ACTION_EVT");
|
||||||
|
BEEP_ON;
|
||||||
// 关阀动作
|
// 关阀动作
|
||||||
EMV_CHARGE_OFF_DEINIT;
|
EMV_CHARGE_OFF_DEINIT;
|
||||||
logDebug("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)
|
if (events & VAVLE_CLOSE_END_EVT)
|
||||||
{
|
{
|
||||||
|
BEEP_OFF_DEINIT;
|
||||||
|
|
||||||
|
EMV_CHARGE_OFF_DEINIT;
|
||||||
|
EMV_OFF_DEINIT;
|
||||||
|
|
||||||
|
BSP_NoNeedBoost();
|
||||||
|
|
||||||
gValveData.switch_status = kClosed;
|
gValveData.switch_status = kClosed;
|
||||||
|
|
||||||
tmos_memset(&RelyData, 0, sizeof(RelyData));
|
tmos_memset(&RelyData, 0, sizeof(RelyData));
|
||||||
BSP_VALVE_Generate_ValveResponse(&RelyData, kCmdCloseVavle, 1);
|
BSP_VALVE_Generate_ValveResponse(&RelyData, kCmdCloseVavle, 1);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
tmos_set_event(Peripheral_TaskID, SBP_REPLY_CMD_EVT);
|
tmos_set_event(Peripheral_TaskID, SBP_REPLY_CMD_EVT);
|
||||||
|
|
||||||
logDebug("VAVLE_CLOSE_END_EVT");
|
logDebug("VAVLE_CLOSE_END_EVT");
|
||||||
return (events ^ 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
|
// Discard unknown events
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -395,10 +435,12 @@ void BSP_VAVLE_Init(void)
|
||||||
gValveData.atm_pressure = 0;
|
gValveData.atm_pressure = 0;
|
||||||
|
|
||||||
gValveData.type = kTyq;
|
gValveData.type = kTyq;
|
||||||
gValveData.bat = 0;
|
gValveData.bat = BSP_ReadVbat();
|
||||||
|
|
||||||
// //立即开始一个event
|
// //立即开始一个event
|
||||||
// tmos_set_event(vavle_task_id, VAVLE_RX_DATA_EVT);
|
// 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");
|
logInfo("BSP_Valve_Init");
|
||||||
}
|
}
|
||||||
|
|
42
HAL/LED.c
42
HAL/LED.c
|
@ -14,6 +14,8 @@
|
||||||
/* Í·Îļþ°üº¬ */
|
/* Í·Îļþ°üº¬ */
|
||||||
#include "HAL.h"
|
#include "HAL.h"
|
||||||
|
|
||||||
|
#include "bsp_beep_led_emv.h"
|
||||||
|
|
||||||
/* LED control structure */
|
/* LED control structure */
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
@ -58,10 +60,16 @@ void HalLedOnOff(uint8_t leds, uint8_t mode);
|
||||||
void HAL_LedInit(void)
|
void HAL_LedInit(void)
|
||||||
{
|
{
|
||||||
/* Initialize all LEDs to OFF */
|
/* Initialize all LEDs to OFF */
|
||||||
LED1_DDR;
|
LEDR_DDR;
|
||||||
|
LEDG_DDR;
|
||||||
|
LEDY_DDR;
|
||||||
|
BEEP_DDR;
|
||||||
|
|
||||||
HalLedSet(HAL_LED_ALL, HAL_LED_MODE_OFF);
|
HalLedSet(HAL_LED_ALL, HAL_LED_MODE_OFF);
|
||||||
|
|
||||||
|
BOOST_EN;
|
||||||
// just test
|
// just test
|
||||||
HalLedBlink(HAL_LED_1, 10, 30, 4000);
|
HalLedBlink(HAL_LED_R, 10, 50, 200);
|
||||||
/* Initialize sleepActive to FALSE */
|
/* Initialize sleepActive to FALSE */
|
||||||
HalLedStatusControl.sleepActive = 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_OFF:
|
||||||
case HAL_LED_MODE_TOGGLE:
|
case HAL_LED_MODE_TOGGLE:
|
||||||
{
|
{
|
||||||
led = HAL_LED_1;
|
led = HAL_LED_R;
|
||||||
leds &= HAL_LED_ALL;
|
leds &= HAL_LED_ALL;
|
||||||
sts = HalLedStatusControl.HalLedControlTable;
|
sts = HalLedStatusControl.HalLedControlTable;
|
||||||
while(leds)
|
while(leds)
|
||||||
|
@ -152,7 +160,7 @@ void HalLedBlink(uint8_t leds, uint8_t numBlinks, uint8_t percent, uint16_t peri
|
||||||
{
|
{
|
||||||
if(percent < 100)
|
if(percent < 100)
|
||||||
{
|
{
|
||||||
led = HAL_LED_1;
|
led = HAL_LED_R;
|
||||||
leds &= HAL_LED_ALL;
|
leds &= HAL_LED_ALL;
|
||||||
sts = HalLedStatusControl.HalLedControlTable;
|
sts = HalLedStatusControl.HalLedControlTable;
|
||||||
while(leds)
|
while(leds)
|
||||||
|
@ -204,7 +212,7 @@ void HalLedUpdate(void)
|
||||||
HalLedControl_t *sts;
|
HalLedControl_t *sts;
|
||||||
|
|
||||||
next = 0;
|
next = 0;
|
||||||
led = HAL_LED_1;
|
led = HAL_LED_R;
|
||||||
leds = HAL_LED_ALL;
|
leds = HAL_LED_ALL;
|
||||||
sts = HalLedStatusControl.HalLedControlTable;
|
sts = HalLedStatusControl.HalLedControlTable;
|
||||||
|
|
||||||
|
@ -291,48 +299,48 @@ void HalLedUpdate(void)
|
||||||
*/
|
*/
|
||||||
void HalLedOnOff(uint8_t leds, uint8_t mode)
|
void HalLedOnOff(uint8_t leds, uint8_t mode)
|
||||||
{
|
{
|
||||||
if(leds & HAL_LED_1)
|
if(leds & HAL_LED_R)
|
||||||
{
|
{
|
||||||
if(mode == HAL_LED_MODE_ON)
|
if(mode == HAL_LED_MODE_ON)
|
||||||
{
|
{
|
||||||
HAL_TURN_ON_LED1();
|
HAL_TURN_ON_LEDR();
|
||||||
}
|
}
|
||||||
else
|
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)
|
if(mode == HAL_LED_MODE_ON)
|
||||||
{
|
{
|
||||||
HAL_TURN_ON_LED2();
|
HAL_TURN_ON_LEDG();
|
||||||
}
|
}
|
||||||
else
|
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)
|
if(mode == HAL_LED_MODE_ON)
|
||||||
{
|
{
|
||||||
HAL_TURN_ON_LED3();
|
HAL_TURN_ON_LEDY();
|
||||||
}
|
}
|
||||||
else
|
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)
|
if(mode == HAL_LED_MODE_ON)
|
||||||
{
|
{
|
||||||
HAL_TURN_ON_LED4();
|
HAL_TURN_ON_BEEP();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
HAL_TURN_OFF_LED4();
|
HAL_TURN_OFF_BEEP();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Remember current state */
|
/* Remember current state */
|
||||||
|
|
23
HAL/SLEEP.c
23
HAL/SLEEP.c
|
@ -19,6 +19,8 @@
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
#include "bsp_uart.h"
|
#include "bsp_uart.h"
|
||||||
|
|
||||||
|
#include "bsp_beep_led_emv.h"
|
||||||
|
|
||||||
|
|
||||||
#undef LOG_ENABLE
|
#undef LOG_ENABLE
|
||||||
#define LOG_ENABLE 1
|
#define LOG_ENABLE 1
|
||||||
|
@ -27,6 +29,7 @@
|
||||||
#define LOG_TAG "sleep"
|
#define LOG_TAG "sleep"
|
||||||
|
|
||||||
static volatile bool block_sleep_flag = false;
|
static volatile bool block_sleep_flag = false;
|
||||||
|
static volatile bool block_boost_flag = false;
|
||||||
|
|
||||||
void BSP_RequestSleep(void)
|
void BSP_RequestSleep(void)
|
||||||
{
|
{
|
||||||
|
@ -38,6 +41,18 @@ void BSP_BlockSleep(void)
|
||||||
block_sleep_flag = true;
|
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
|
* @fn CH59x_LowPower
|
||||||
|
@ -50,6 +65,14 @@ void BSP_BlockSleep(void)
|
||||||
*/
|
*/
|
||||||
uint32_t CH59x_LowPower(uint32_t time)
|
uint32_t CH59x_LowPower(uint32_t time)
|
||||||
{
|
{
|
||||||
|
if (block_boost_flag == false)
|
||||||
|
{
|
||||||
|
BOOST_EN;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
BOOST_OFF_DEINIT;
|
||||||
|
}
|
||||||
if( true == block_sleep_flag)
|
if( true == block_sleep_flag)
|
||||||
{
|
{
|
||||||
// logDebug("block_sleep");
|
// logDebug("block_sleep");
|
||||||
|
|
|
@ -23,11 +23,12 @@ extern "C" {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* LEDS - The LED number is the same as the bit position */
|
/* LEDS - The LED number is the same as the bit position */
|
||||||
#define HAL_LED_1 0x01
|
#define HAL_LED_R 0x01
|
||||||
#define HAL_LED_2 0x02
|
#define HAL_LED_G 0x02
|
||||||
#define HAL_LED_3 0x04
|
#define HAL_LED_Y 0x04
|
||||||
#define HAL_LED_4 0x08
|
// BEEP
|
||||||
#define HAL_LED_ALL (HAL_LED_1 | HAL_LED_2 | HAL_LED_3 | HAL_LED_4)
|
#define HAL_LED_BEEP 0x08
|
||||||
|
#define HAL_LED_ALL (HAL_LED_R | HAL_LED_G | HAL_LED_Y | HAL_LED_BEEP)
|
||||||
|
|
||||||
/* Modes */
|
/* Modes */
|
||||||
#define HAL_LED_MODE_OFF 0x00
|
#define HAL_LED_MODE_OFF 0x00
|
||||||
|
@ -49,33 +50,42 @@ extern "C" {
|
||||||
/* 连接一个LED用于监控演示程序的进度,低电平LED亮 */
|
/* 连接一个LED用于监控演示程序的进度,低电平LED亮 */
|
||||||
|
|
||||||
/* 1 - LED */
|
/* 1 - LED */
|
||||||
#define LED1_BV BV(15)
|
#define LEDR_BV BV(4) // PA4
|
||||||
#define LED2_BV
|
#define LEDG_BV BV(5) // PA5
|
||||||
#define LED3_BV
|
#define LEDY_BV BV(15) // PA15
|
||||||
|
|
||||||
#define LED1_OUT (R32_PB_OUT)
|
#define BEEP_BV BV(14) // PA14
|
||||||
#define LED2_OUT 0
|
|
||||||
#define LED3_OUT 0
|
|
||||||
#define LED4_OUT 0
|
|
||||||
|
|
||||||
#define LED1_DDR (R32_PB_DIR |= LED1_BV)
|
#define LEDR_OUT (R32_PA_OUT)
|
||||||
#define LED2_DDR 0
|
#define LEDG_OUT (R32_PA_OUT)
|
||||||
#define LED3_DDR 0
|
#define LEDY_OUT (R32_PA_OUT)
|
||||||
|
|
||||||
#define HAL_TURN_OFF_LED1() (LED1_OUT |= LED1_BV)
|
#define BEEP_OUT (R32_PA_OUT)
|
||||||
#define HAL_TURN_OFF_LED2()
|
|
||||||
#define HAL_TURN_OFF_LED3()
|
|
||||||
#define HAL_TURN_OFF_LED4()
|
|
||||||
|
|
||||||
#define HAL_TURN_ON_LED1() (LED1_OUT &= (~LED1_BV))
|
#define LEDR_DDR (R32_PA_DIR |= LEDR_BV)
|
||||||
#define HAL_TURN_ON_LED2()
|
#define LEDG_DDR (R32_PA_DIR |= LEDG_BV)
|
||||||
#define HAL_TURN_ON_LED3()
|
#define LEDY_DDR (R32_PA_DIR |= LEDY_BV)
|
||||||
#define HAL_TURN_ON_LED4()
|
|
||||||
|
|
||||||
#define HAL_STATE_LED1() 0
|
#define BEEP_DDR (R32_PA_DIR |= BEEP_BV)
|
||||||
#define HAL_STATE_LED2() 0
|
|
||||||
#define HAL_STATE_LED3() 0
|
|
||||||
#define HAL_STATE_LED4() 0
|
#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
|
* GLOBAL VARIABLES
|
||||||
|
|
|
@ -25,6 +25,8 @@ extern "C" {
|
||||||
void BSP_RequestSleep(void);
|
void BSP_RequestSleep(void);
|
||||||
void BSP_BlockSleep(void);
|
void BSP_BlockSleep(void);
|
||||||
|
|
||||||
|
void BSP_RequestBoost(void);
|
||||||
|
void BSP_NoNeedBoost(void);
|
||||||
|
|
||||||
/*********************************************************************
|
/*********************************************************************
|
||||||
* FUNCTIONS
|
* FUNCTIONS
|
||||||
|
|
Loading…
Reference in New Issue