diff --git a/board/ports/led_matrix/drv_matrix_led.c b/board/ports/led_matrix/drv_matrix_led.c index e9b99ae..b059803 100644 --- a/board/ports/led_matrix/drv_matrix_led.c +++ b/board/ports/led_matrix/drv_matrix_led.c @@ -59,7 +59,9 @@ const RGBColor_TypeDef LED_OFF = {0, 0, 0}; const RGBColor_TypeDef LED_ON = {255, 255, 255}; //灯处于特定颜色还是闪烁状态 -uint8_t LED_staue[LED_NUM]={0}; +uint8_t LED_Blink_Staue[LED_NUM]={0}; +// 灯闪烁颜色缓存 +RGBColor_TypeDef LED_Blink_Color[LED_NUM] = {0}; // 灯颜色缓存 RGBColor_TypeDef RGB_Data[LED_NUM] = {0}; @@ -171,26 +173,48 @@ void LED_Set(uint16_t LedId, RGBColor_TypeDef Color) RGB_Data[LedId].B = Color.B; RGB_Reflash(); } -void LED_Toggle(uint16_t LedId, RGBColor_TypeDef Color) +void LED_Blink(uint16_t LedId, RGBColor_TypeDef Color) { - while(1) - { - LED_Set(LedId,Color); - rt_thread_mdelay(500); - LED_Set(LedId,LED_OFF); - rt_thread_mdelay(500); - } + LED_Blink_Staue[LedId]=1; + LED_Blink_Color[LedId]=Color; + // while(1) + // { + // LED_Set(LedId,Color); + // rt_thread_mdelay(500); + // LED_Set(LedId,LED_OFF); + // rt_thread_mdelay(500); + // } } void LED_LITTLE_TEST(void) { - LED_Set(1,LED_RED); - rt_thread_mdelay(4000); - LED_Toggle(1,LED_RED); - rt_thread_mdelay(4000); - LED_Set(1,LED_RED); - rt_thread_mdelay(4000); - LED_Toggle(1,LED_RED); - rt_thread_mdelay(4000); + uint8_t LED_Blink_ON=1; + while(1) + { + for(int LedId=0;LedId