bsp_led 测试ok

This commit is contained in:
stark1898y 2025-05-23 17:33:14 +08:00
parent 2d160a9ccc
commit 17b751f331
5 changed files with 219 additions and 101 deletions

View File

@ -10,7 +10,9 @@
"sleep.h": "c", "sleep.h": "c",
"bsp_ml307r.h": "c", "bsp_ml307r.h": "c",
"bsp_adc.h": "c", "bsp_adc.h": "c",
"log.h": "c" "log.h": "c",
"bsp_led.h": "c",
"bsp_uart.h": "c"
}, },
"MicroPython.executeButton": [ "MicroPython.executeButton": [
{ {

View File

@ -1,108 +1,124 @@
/* #ifndef __BSP_LED_H__
* bsp_led.h #define __BSP_LED_H__
*
* Created on: 2024Äê12ÔÂ16ÈÕ
* Author: 123
*/
#ifndef INC_BSP_LED_H_ #include "CONFIG.h"
#define INC_BSP_LED_H_
#include "CH58x_common.h" #define LED_ALARM_R_BPIN GPIO_Pin_8
#define LED_RUN_G_BPIN GPIO_Pin_9
#define LED_FAULT_Y_APIN GPIO_Pin_1
#define LED_VBAT_R_APIN GPIO_Pin_7
#define LED_VALVE_R_PIN GPIO_Pin_8 /**********LED_ALARM_R_BPIN**************/
#define LED_VALVE_G_PIN GPIO_Pin_9 #define LED_ALARM_R_ON \
#define LED_ALARM_PIN GPIO_Pin_1 do \
#define LED_VBAT_PIN GPIO_Pin_7 { \
GPIOB_SetBits(LED_ALARM_R_BPIN); \
GPIOB_ModeCfg(LED_ALARM_R_BPIN, GPIO_ModeOut_PP_5mA); \
} while (0);
/*********************************************************************************************** #define LED_ALARM_R_OFF \
#define LED_VALVE_OPEN {GPIOA_ResetBits(LED_VALVE_R_PIN | LED_VALVE_G_PIN | LED_VALVE_Y_PIN);\ do \
GPIOA_SetBits(LED_VALVE_G_PIN);} { \
GPIOB_ResetBits(LED_ALARM_R_BPIN); \
GPIOB_ModeCfg(LED_ALARM_R_BPIN, GPIO_ModeIN_PD); \
} while (0);
#define LED_VALVE_CLOSE {GPIOA_ResetBits(LED_VALVE_R_PIN | LED_VALVE_G_PIN | LED_VALVE_Y_PIN);\ /**********LED_RUN_G_BPIN**************/
GPIOA_SetBits(LED_VALVE_R_PIN);} #define LED_RUN_G_ON \
do \
{ \
GPIOB_SetBits(LED_RUN_G_BPIN); \
GPIOB_ModeCfg(LED_RUN_G_BPIN, GPIO_ModeOut_PP_5mA); \
} while (0);
#define LED_ALARM_OPEN GPIOB_SetBits(LED_ALARM_PIN) #define LED_RUN_G_OFF \
do \
{ \
GPIOB_ResetBits(LED_RUN_G_BPIN); \
GPIOB_ModeCfg(LED_RUN_G_BPIN, GPIO_ModeIN_PD); \
} while (0);
#define LED_ALARM_CLOSE GPIOB_ResetBits(LED_ALARM_PIN) /**********LED_FAULT_Y_APIN**************/
#define LED_FAULT_Y_ON \
do \
{ \
GPIOA_SetBits(LED_FAULT_Y_APIN); \
GPIOA_ModeCfg(LED_FAULT_Y_APIN, GPIO_ModeOut_PP_5mA); \
} while (0);
#define LED_VBAT_OPEN GPIOA_SetBits(LED_VBAT_PIN) #define LED_FAULT_Y_OFF do \
{ \
GPIOA_ResetBits(LED_FAULT_Y_APIN); \
GPIOA_ModeCfg(LED_FAULT_Y_APIN, GPIO_ModeIN_PD); \
} \
while (0);
#define LED_VBAT_CLOSE GPIOA_ResetBits(LED_VBAT_PIN) /**********LED_VBAT_R_APIN**************/
#define LED_VBAT_R_ON \
do \
{ \
GPIOA_SetBits(LED_VBAT_R_APIN); \
GPIOA_ModeCfg(LED_VBAT_R_APIN, GPIO_ModeOut_PP_5mA); \
} while (0);
#define LED_ALL_OPEN {GPIOA_SetBits(LED_VALVE_R_PIN | LED_VALVE_G_PIN | LED_VALVE_Y_PIN);\ #define LED_VBAT_R_OFF \
GPIOA_SetBits(LED_ALARM_PIN | LED_VBAT_PIN)} do \
{ \
GPIOA_ResetBits(LED_VBAT_R_APIN); \
GPIOA_ModeCfg(LED_VBAT_R_APIN, GPIO_ModeIN_PD); \
} while (0);
#define LED_ALL_CLOSE {GPIOA_ResetBits(LED_VALVE_R_PIN | LED_VALVE_G_PIN | LED_VALVE_Y_PIN);\
GPIOA_ResetBits(LED_ALARM_PIN | LED_VBAT_PIN);}
****************************************************************************************************/
/**********LED_VALVE**************/
#define LED_VALVE_OPEN \ #define LED_VALVE_OPEN \
do \ do \
{ \ { \
GPIOB_ResetBits(LED_VALVE_R_PIN | LED_VALVE_G_PIN );\ GPIOB_ResetBits(LED_ALARM_R_BPIN | LED_RUN_G_BPIN); \
GPIOB_SetBits(LED_VALVE_G_PIN); \ GPIOB_SetBits(LED_RUN_G_BPIN); \
GPIOB_ModeCfg(LED_VALVE_R_PIN | LED_VALVE_G_PIN, GPIO_ModeOut_PP_5mA); \ GPIOB_ModeCfg(LED_ALARM_R_BPIN | LED_RUN_G_BPIN, GPIO_ModeOut_PP_5mA); \
} while (0); } while (0);
#define LED_VALVE_CLOSE \ #define LED_VALVE_CLOSE \
do \ do \
{ \ { \
GPIOB_ResetBits(LED_VALVE_R_PIN | LED_VALVE_G_PIN);\ GPIOB_ResetBits(LED_ALARM_R_BPIN | LED_RUN_G_BPIN); \
GPIOB_SetBits(LED_VALVE_R_PIN); \ GPIOB_SetBits(LED_ALARM_R_BPIN); \
GPIOB_ModeCfg(LED_VALVE_R_PIN | LED_VALVE_G_PIN, GPIO_ModeOut_PP_5mA); \ GPIOB_ModeCfg(LED_ALARM_R_BPIN | LED_RUN_G_BPIN, GPIO_ModeOut_PP_5mA); \
} while (0); } while (0);
/**********LED_ALARM**************/ /**********LED_ALARM**************/
#define LED_ALARM_OPEN \ #define LED_ALARM_OPEN \
do \ do \
{ \ { \
GPIOA_SetBits(LED_ALARM_PIN); \ GPIOA_SetBits(LED_FAULT_Y_APIN); \
GPIOA_ModeCfg(LED_ALARM_PIN, GPIO_ModeOut_PP_5mA); \ GPIOA_ModeCfg(LED_FAULT_Y_APIN, GPIO_ModeOut_PP_5mA); \
} while (0); } while (0);
#define LED_ALARM_CLOSE \ #define LED_ALARM_CLOSE \
do \ do \
{ \ { \
GPIOA_ResetBits(LED_ALARM_PIN); \ GPIOA_ResetBits(LED_FAULT_Y_APIN); \
GPIOA_ModeCfg(LED_ALARM_PIN, GPIO_ModeOut_PP_5mA); \ GPIOA_ModeCfg(LED_FAULT_Y_APIN, GPIO_ModeOut_PP_5mA); \
} while (0); } while (0);
/**********LED_VBAT**************/ /**********LED_VBAT**************/
#define LED_VBAT_OPEN \ #define LED_VBAT_OPEN \
do \ do \
{ \ { \
GPIOA_SetBits(LED_VBAT_PIN); \ GPIOA_SetBits(LED_VBAT_R_APIN); \
GPIOA_ModeCfg(LED_VBAT_PIN, GPIO_ModeOut_PP_5mA); \ GPIOA_ModeCfg(LED_VBAT_R_APIN, GPIO_ModeOut_PP_5mA); \
} while (0); } while (0);
#define LED_VBAT_CLOSE \ #define LED_VBAT_CLOSE \
do \ do \
{ \ { \
GPIOA_ResetBits(LED_VBAT_PIN); \ GPIOA_ResetBits(LED_VBAT_R_APIN); \
GPIOA_ModeCfg(LED_VBAT_PIN, GPIO_ModeOut_PP_5mA); \ GPIOA_ModeCfg(LED_VBAT_R_APIN, GPIO_ModeOut_PP_5mA); \
} while (0); } while (0);
/**********LED_ALL**************/ extern tmosTaskID led_task_id;
#define LED_ALL_OPEN \
do \
{ \
GPIOB_SetBits(LED_VALVE_R_PIN | LED_VALVE_G_PIN);\
GPIOA_SetBits(LED_ALARM_PIN | LED_VBAT_PIN);\
GPIOB_ModeCfg(LED_VALVE_R_PIN | LED_VALVE_G_PIN, GPIO_ModeOut_PP_5mA); \
GPIOA_ModeCfg(LED_ALARM_PIN | LED_VBAT_PIN, GPIO_ModeOut_PP_5mA); \
} while (0);
#define LED_ALL_CLOSE \ void BSP_LED_AllOn(void);
do \ void BSP_LED_AllOff(void);
{ \
GPIOB_ResetBits(LED_VALVE_R_PIN | LED_VALVE_G_PIN);\
GPIOA_ResetBits(LED_ALARM_PIN | LED_VBAT_PIN); \
GPIOB_ModeCfg(LED_VALVE_R_PIN | LED_VALVE_G_PIN, GPIO_ModeOut_PP_5mA); \
GPIOA_ModeCfg(LED_ALARM_PIN | LED_VBAT_PIN, GPIO_ModeOut_PP_5mA); \
} while (0);
void BSP_LED_Init(void); void BSP_LED_Init(void);
#endif /* INC_BSP_LED_H_ */ #endif /* __BSP_LED_H__ */

View File

@ -418,10 +418,10 @@ void PRESS_LowerIO_Init(void)
void Lower_IO_Deinit(void) void Lower_IO_Deinit(void)
{ {
// LED // LED
GPIOB_ResetBits(LED_VALVE_R_PIN | LED_VALVE_G_PIN); GPIOB_ResetBits(LED_ALARM_R_BPIN | LED_RUN_G_BPIN);
GPIOB_ModeCfg(LED_VALVE_R_PIN | LED_VALVE_G_PIN, GPIO_ModeIN_PD); GPIOB_ModeCfg(LED_ALARM_R_BPIN | LED_RUN_G_BPIN, GPIO_ModeIN_PD);
GPIOA_ResetBits(LED_VBAT_PIN | LED_ALARM_PIN); GPIOA_ResetBits(LED_VBAT_R_APIN | LED_FAULT_Y_APIN);
GPIOA_ModeCfg(LED_VBAT_PIN | LED_ALARM_PIN, GPIO_ModeIN_PD); GPIOA_ModeCfg(LED_VBAT_R_APIN | LED_FAULT_Y_APIN, GPIO_ModeIN_PD);
// KEY | RESET KEY | boot KEY // KEY | RESET KEY | boot KEY
GPIOB_ResetBits(KEY_BPIN); GPIOB_ResetBits(KEY_BPIN);

View File

@ -6,15 +6,115 @@
*/ */
#include "bsp_led.h" #include "bsp_led.h"
void BSP_LED_Init(void) #include "bsp_uart.h"
#include "log.h"
#undef LOG_ENABLE
#define LOG_ENABLE 1
#define LOG_LVL LOG_DEBUG
#undef LOG_TAG
#define LOG_TAG "led"
tmosTaskID led_task_id = INVALID_TASK_ID;
static tmosEvents LED_Task_ProcessEvent(tmosTaskID taskID, tmosEvents event)
{ {
GPIOB_ResetBits(LED_VALVE_R_PIN | LED_VALVE_G_PIN);
GPIOB_ModeCfg(LED_VALVE_R_PIN | LED_VALVE_G_PIN, GPIO_ModeOut_PP_5mA);
GPIOA_ResetBits(LED_ALARM_PIN);
GPIOA_ModeCfg(LED_ALARM_PIN, GPIO_ModeOut_PP_5mA);
GPIOA_ResetBits(LED_VBAT_PIN);
GPIOA_ModeCfg(LED_VBAT_PIN, GPIO_ModeOut_PP_5mA);
} }
void BSP_LED_AllOn(void)
{
LED_ALARM_R_ON;
LED_RUN_G_ON;
LED_FAULT_Y_ON;
LED_VBAT_R_ON;;
}
void BSP_LED_AllOff(void)
{
LED_ALARM_R_OFF;
LED_RUN_G_OFF;
LED_FAULT_Y_OFF;
LED_VBAT_R_OFF;
}
void BSP_LED_Init(void)
{
BSP_LED_AllOff();
led_task_id = TMOS_ProcessEventRegister(LED_Task_ProcessEvent);
if (led_task_id == INVALID_TASK_ID)
{
logError("LED task register failed");
return;
}
logInfo("BSP_LED_Init");
}
void LED_Ctrl(uint8_t led, uint8_t status)
{
switch (led)
{
case 0:
if (status)
{
BSP_LED_AllOn();
}
else
{
BSP_LED_AllOff();
}
break;
case 1:
if (status)
{
LED_ALARM_R_ON;
}
else
{
LED_ALARM_R_OFF;
}
break;
case 2:
if (status)
{
LED_RUN_G_ON;
}
else
{
LED_RUN_G_OFF;
}
break;
case 3:
if (status)
{
LED_FAULT_Y_ON;
}
else
{
LED_FAULT_Y_OFF;
}
break;
case 4:
if (status)
{
LED_VBAT_R_ON;
}
else
{
LED_VBAT_R_OFF;
}
break;
default:
break;
}
}
SHELL_EXPORT_CMD(SHELL_CMD_PERMISSION(0) | SHELL_CMD_TYPE(SHELL_TYPE_CMD_FUNC),
LED_Ctrl, LED_Ctrl, "LED_Ctrl <led> <status>");

View File

@ -282,7 +282,7 @@ 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) // 阀门关闭结束事件
{ {
VALVE_STOP(); VALVE_STOP();
LED_ALL_CLOSE; BSP_LED_AllOff();
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);
@ -328,7 +328,7 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events) // 阀
if (events & VAVLE_OPEN_END_EVT) // 阀门打开结束事件 if (events & VAVLE_OPEN_END_EVT) // 阀门打开结束事件
{ {
VALVE_STOP(); VALVE_STOP();
LED_ALL_CLOSE; BSP_LED_AllOff();
tmos_memset(&RelyData, 0, sizeof(RelyData)); tmos_memset(&RelyData, 0, sizeof(RelyData));
BSP_VALVE_Generate_ValveResponse(&RelyData, kCmdOpenVavle, 1); BSP_VALVE_Generate_ValveResponse(&RelyData, kCmdOpenVavle, 1);