修正呼吸灯,添加注释
This commit is contained in:
parent
1db683abda
commit
c172877ce5
1
.gitignore
vendored
1
.gitignore
vendored
@ -42,3 +42,4 @@ settings/
|
|||||||
cconfig.h
|
cconfig.h
|
||||||
Arduino-IRremote-master
|
Arduino-IRremote-master
|
||||||
*.pack
|
*.pack
|
||||||
|
chip/
|
||||||
|
@ -7,14 +7,32 @@ rt_thread_t led_breath_thread = RT_NULL;
|
|||||||
|
|
||||||
// 灯是否处于特定颜色还是闪烁状态
|
// 灯是否处于特定颜色还是闪烁状态
|
||||||
uint8_t LED_Blink_State[LED_NUM] = {LED_NOT_BLINKING};
|
uint8_t LED_Blink_State[LED_NUM] = {LED_NOT_BLINKING};
|
||||||
|
// 呼吸灯是否开启
|
||||||
|
uint8_t LED_Breath_State = LED_BREATH_OFF;
|
||||||
// 灯闪烁颜色缓存
|
// 灯闪烁颜色缓存
|
||||||
RGBColor_TypeDef LED_Blink_Color[LED_NUM] = {0};
|
RGBColor_TypeDef LED_Blink_Color[LED_NUM] = {0};
|
||||||
const RGBColor_TypeDef LED_OFF = {0, 0, 0};
|
const RGBColor_TypeDef LED_OFF = {0, 0, 0};
|
||||||
const RGBColor_TypeDef LED_ON = {255, 255, 255};
|
const RGBColor_TypeDef LED_ON = {255, 255, 255};
|
||||||
|
/**
|
||||||
|
* @brief 设置呼吸LED的开关
|
||||||
|
* @param LedBreath_state 开/关 LED_BREATH_ON/LED_BREATH_OFF
|
||||||
|
*/
|
||||||
|
void LED_BreathTurn(uint8_t LedBreath_state)
|
||||||
|
{
|
||||||
|
LED_Breath_State = LedBreath_state;
|
||||||
|
if (LedBreath_state == LED_BREATH_OFF)
|
||||||
|
{
|
||||||
|
// rt_thread_suspend(led_breath_thread);
|
||||||
|
LED_SetMore(LED_BREATH_ID(1), LED_BREATH_ID(12), LED_OFF);
|
||||||
|
}
|
||||||
|
else if (LedBreath_state == LED_BREATH_ON)
|
||||||
|
{
|
||||||
|
// rt_thread_resume(led_breath_thread);
|
||||||
|
}
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* @brief 设置特定LED的颜色或开关
|
* @brief 设置特定LED的颜色或开关
|
||||||
* @param LedId LED的序号(0~LED_NUM-1)
|
* @param LedId LED的序号(0~LED_NUM-1) LED_CHARGE_ID(x),LED_BREATH_ID(x)
|
||||||
* @param Color 颜色/开关 LED_RED,LED_BLUE,LED_OFF,LED_ON(白色)……
|
* @param Color 颜色/开关 LED_RED,LED_BLUE,LED_OFF,LED_ON(白色)……
|
||||||
*/
|
*/
|
||||||
void LED_Set(uint16_t LedId, RGBColor_TypeDef Color)
|
void LED_Set(uint16_t LedId, RGBColor_TypeDef Color)
|
||||||
@ -25,13 +43,13 @@ void LED_Set(uint16_t LedId, RGBColor_TypeDef Color)
|
|||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* @brief 设置连续多个特定LED的颜色或开关
|
* @brief 设置连续多个特定LED的颜色或开关
|
||||||
* @param LedId_begin LED的序号(0~LED_NUM-1)开始
|
* @param LedId_begin LED的序号(0~LED_NUM-1)开始 LED_CHARGE_ID(x),LED_BREATH_ID(x)
|
||||||
* @param LedId_end LED的序号(0~LED_NUM-1)结束
|
* @param LedId_end LED的序号(0~LED_NUM-1)结束 LED_CHARGE_ID(x),LED_BREATH_ID(x)
|
||||||
* @param Color 颜色/开关 LED_RED,LED_BLUE,LED_OFF,LED_ON(白色)……
|
* @param Color 颜色/开关 LED_RED,LED_BLUE,LED_OFF,LED_ON(白色)……
|
||||||
*/
|
*/
|
||||||
void LED_SetMore(uint16_t LedId_begin, uint16_t LedId_end, RGBColor_TypeDef Color)
|
void LED_SetMore(uint16_t LedId_begin, uint16_t LedId_end, RGBColor_TypeDef Color)
|
||||||
{
|
{
|
||||||
for (int LedId = LedId_begin; LedId <=LedId_end ; LedId++)
|
for (int LedId = LedId_begin; LedId <= LedId_end; LedId++)
|
||||||
{
|
{
|
||||||
LED_Blink_State[LedId] = 0;
|
LED_Blink_State[LedId] = 0;
|
||||||
Set_LEDColor(LedId, Color);
|
Set_LEDColor(LedId, Color);
|
||||||
@ -41,7 +59,7 @@ void LED_SetMore(uint16_t LedId_begin, uint16_t LedId_end, RGBColor_TypeDef Colo
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief 设置特定LED的闪烁
|
* @brief 设置特定LED的闪烁
|
||||||
* @param LedId LED的序号(0~LED_NUM-1)
|
* @param LedId LED的序号(0~LED_NUM-1) LED_CHARGE_ID(x),LED_BREATH_ID(x)
|
||||||
* @param Color 颜色 LED_RED,LED_BLUE……
|
* @param Color 颜色 LED_RED,LED_BLUE……
|
||||||
*/
|
*/
|
||||||
void LED_Blink(uint16_t LedId, RGBColor_TypeDef Color)
|
void LED_Blink(uint16_t LedId, RGBColor_TypeDef Color)
|
||||||
@ -51,13 +69,13 @@ void LED_Blink(uint16_t LedId, RGBColor_TypeDef Color)
|
|||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* @brief 设置连续多个特定LED的闪烁
|
* @brief 设置连续多个特定LED的闪烁
|
||||||
* @param LedId_begin LED的序号(0~LED_NUM-1)开始
|
* @param LedId_begin LED的序号(0~LED_NUM-1)开始 LED_CHARGE_ID(x),LED_BREATH_ID(x)
|
||||||
* @param LedId_end LED的序号(0~LED_NUM-1)结束
|
* @param LedId_end LED的序号(0~LED_NUM-1)结束 LED_CHARGE_ID(x),LED_BREATH_ID(x)
|
||||||
* @param Color 颜色 LED_RED,LED_BLUE……
|
* @param Color 颜色 LED_RED,LED_BLUE……
|
||||||
*/
|
*/
|
||||||
void LED_BlinkMore(uint16_t LedId_begin, uint16_t LedId_end, RGBColor_TypeDef Color)
|
void LED_BlinkMore(uint16_t LedId_begin, uint16_t LedId_end, RGBColor_TypeDef Color)
|
||||||
{
|
{
|
||||||
for (int LedId = LedId_begin; LedId <=LedId_end ; LedId++)
|
for (int LedId = LedId_begin; LedId <= LedId_end; LedId++)
|
||||||
{
|
{
|
||||||
LED_Blink_State[LedId] = 1;
|
LED_Blink_State[LedId] = 1;
|
||||||
LED_Blink_Color[LedId] = Color;
|
LED_Blink_Color[LedId] = Color;
|
||||||
@ -73,7 +91,7 @@ void led_blink_entry(void *parameter)
|
|||||||
{
|
{
|
||||||
for (int LedId = 0; LedId < LED_NUM; LedId++)
|
for (int LedId = 0; LedId < LED_NUM; LedId++)
|
||||||
{
|
{
|
||||||
if (LED_Blink_State[LedId]==LED_IS_BLINKING)
|
if (LED_Blink_State[LedId] == LED_IS_BLINKING)
|
||||||
{
|
{
|
||||||
if (LED_Blink_ON)
|
if (LED_Blink_ON)
|
||||||
{
|
{
|
||||||
@ -90,6 +108,9 @@ void led_blink_entry(void *parameter)
|
|||||||
rt_thread_mdelay(500);
|
rt_thread_mdelay(500);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* @brief 灯闪烁的初始化,线程创建
|
||||||
|
*/
|
||||||
int led_blink_init(void)
|
int led_blink_init(void)
|
||||||
{
|
{
|
||||||
led_blink_thread = rt_thread_create("led blink control thread", led_blink_entry, RT_NULL, 1024, 20, 20);
|
led_blink_thread = rt_thread_create("led blink control thread", led_blink_entry, RT_NULL, 1024, 20, 20);
|
||||||
@ -103,7 +124,7 @@ int led_blink_init(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief 每0.5s判断各盏灯是否要翻转
|
* @brief 流水灯
|
||||||
*/
|
*/
|
||||||
void led_breath_entry(void *parameter)
|
void led_breath_entry(void *parameter)
|
||||||
{
|
{
|
||||||
@ -112,6 +133,13 @@ void led_breath_entry(void *parameter)
|
|||||||
{
|
{
|
||||||
for (int i = LED_BREATH_ID(1); i <= LED_BREATH_ID(12); i++)
|
for (int i = LED_BREATH_ID(1); i <= LED_BREATH_ID(12); i++)
|
||||||
{
|
{
|
||||||
|
if (LED_Breath_State==LED_BREATH_OFF)
|
||||||
|
{
|
||||||
|
rt_thread_mdelay(100);
|
||||||
|
i = LED_BREATH_ID(1);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
switch (count)
|
switch (count)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
@ -128,13 +156,17 @@ void led_breath_entry(void *parameter)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
RGB_Reflash();
|
RGB_Reflash();
|
||||||
rt_thread_delay(20);
|
rt_thread_mdelay(500);
|
||||||
}
|
}
|
||||||
count = (count + 1) % 3;
|
count = (count + 1) % 3;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// MSH_CMD_EXPORT_ALIAS(led_breath_thread,BREATH, "BREATH LIGHT");
|
// MSH_CMD_EXPORT_ALIAS(led_breath_thread,BREATH, "BREATH LIGHT");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 流水灯的初始化,线程创建
|
||||||
|
*/
|
||||||
int led_breath_init(void)
|
int led_breath_init(void)
|
||||||
{
|
{
|
||||||
led_breath_thread = rt_thread_create("led breath control thread", led_breath_entry, RT_NULL, 1024, 20, 20);
|
led_breath_thread = rt_thread_create("led breath control thread", led_breath_entry, RT_NULL, 1024, 20, 20);
|
||||||
|
@ -3,14 +3,17 @@
|
|||||||
|
|
||||||
#define LED_IS_BLINKING 1
|
#define LED_IS_BLINKING 1
|
||||||
#define LED_NOT_BLINKING 0
|
#define LED_NOT_BLINKING 0
|
||||||
|
#define LED_BREATH_ON 1
|
||||||
|
#define LED_BREATH_OFF 0
|
||||||
|
|
||||||
#define LED_CHARGE_ID(i) (i+12-1)
|
#define LED_CHARGE_ID(i) (i+12-1) //电源指示灯序号(1-12)
|
||||||
#define LED_BREATH_ID(i) (i-1)
|
#define LED_BREATH_ID(i) (i-1) //呼吸灯序号(1-12)
|
||||||
|
|
||||||
extern void LED_Set(uint16_t LedId, RGBColor_TypeDef Color);
|
extern void LED_Set(uint16_t LedId, RGBColor_TypeDef Color);
|
||||||
extern void LED_SetMore(uint16_t LedId_begin,uint16_t LedId_end, RGBColor_TypeDef Color);
|
extern void LED_SetMore(uint16_t LedId_begin,uint16_t LedId_end, RGBColor_TypeDef Color);
|
||||||
extern void LED_Blink(uint16_t LedId, RGBColor_TypeDef Color);
|
extern void LED_Blink(uint16_t LedId, RGBColor_TypeDef Color);
|
||||||
extern void LED_BlinkMore(uint16_t LedId_begin, uint16_t LedId_end, RGBColor_TypeDef Color);
|
extern void LED_BlinkMore(uint16_t LedId_begin, uint16_t LedId_end, RGBColor_TypeDef Color);
|
||||||
|
extern void LED_BreathTurn(uint8_t LedBreath_state);
|
||||||
extern int led_blink_init(void);
|
extern int led_blink_init(void);
|
||||||
extern int led_breath_init(void);
|
extern int led_breath_init(void);
|
||||||
|
|
||||||
|
@ -15,6 +15,11 @@ void ledblinkm(int argc, char **argv){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
MSH_CMD_EXPORT_ALIAS(ledblinkm,LEDB, "BLINKS LedId Color");
|
MSH_CMD_EXPORT_ALIAS(ledblinkm,LEDB, "BLINKS LedId Color");
|
||||||
|
void ledbreath(int argc, char **argv){
|
||||||
|
|
||||||
|
LED_BreathTurn(atoi(argv[1]));
|
||||||
|
}
|
||||||
|
MSH_CMD_EXPORT_ALIAS(ledbreath,LEDBR, "BLINKS LedId Color");
|
||||||
void ledsetm(int argc, char **argv){
|
void ledsetm(int argc, char **argv){
|
||||||
|
|
||||||
int LedId_begin = atoi(argv[2]);
|
int LedId_begin = atoi(argv[2]);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user