diff --git a/.vscode/settings.json b/.vscode/settings.json index 6ed6e97..e3877c1 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -25,7 +25,9 @@ "time.h": "c", "icmp.h": "c", "rgb.h": "c", - "main.h": "c" + "main.h": "c", + "indicator_led.h": "c", + "drv_matrix_led.h": "c" }, // "cortex-debug.openocdPath": "d:/Develop/" } \ No newline at end of file diff --git a/board/ports/led_matrix/drv_matrix_led.c b/board/ports/led_matrix/drv_matrix_led.c index 21caa7d..93f26fa 100644 --- a/board/ports/led_matrix/drv_matrix_led.c +++ b/board/ports/led_matrix/drv_matrix_led.c @@ -55,13 +55,8 @@ const RGBColor_TypeDef LT_GREEN = {32, 0, 0}; const RGBColor_TypeDef LT_BLUE = {0, 0, 32}; const RGBColor_TypeDef LT_WHITE = {16, 16, 16}; -const RGBColor_TypeDef LED_OFF = {0, 0, 0}; -const RGBColor_TypeDef LED_ON = {255, 255, 255}; -//灯处于特定颜色还是闪烁状态 -uint8_t LED_Blink_Staue[LED_NUM]={0}; -// 灯闪烁颜色缓存 -RGBColor_TypeDef LED_Blink_Color[LED_NUM] = {0}; + // 灯颜色缓存 RGBColor_TypeDef RGB_Data[LED_NUM] = {0}; @@ -166,58 +161,7 @@ void Set_LEDColor(uint16_t LedId, RGBColor_TypeDef Color) RGB_Data[LedId].R = Color.R; RGB_Data[LedId].B = Color.B; } -void LED_Set(uint16_t LedId, RGBColor_TypeDef Color) -{ - LED_Blink_Staue[LedId]=0; - RGB_Data[LedId].G = Color.G; - RGB_Data[LedId].R = Color.R; - RGB_Data[LedId].B = Color.B; - RGB_Reflash(); -} -void LED_Blink(uint16_t LedId, RGBColor_TypeDef Color) -{ - 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) -{ - uint8_t LED_Blink_ON=1; - while(1) - { - for(int LedId=0;LedId +#include + +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_Blink(uint16_t LedId, RGBColor_TypeDef Color); +extern void LED_BlinkMore(uint16_t LedId_begin, uint16_t LedId_end, RGBColor_TypeDef Color); +extern int led_init(void); + +extern const RGBColor_TypeDef LED_OFF; +extern const RGBColor_TypeDef LED_ON; \ No newline at end of file diff --git a/my_pro/myproject.c b/my_pro/myproject.c index f63b337..3cee4fd 100644 --- a/my_pro/myproject.c +++ b/my_pro/myproject.c @@ -15,38 +15,14 @@ #include "infrared.h" #include #include "my_func.h" -#include "drv_matrix_led.h" +#include "indicator_led.h" #define THREAD_PRIORITY 25 #define THREAD_STACK_SIZE 4096 #define THREAD_TIMESLICE 5 -#define BSP_USING_ONBOARD_LED_MATRIX +// #define BSP_USING_ONBOARD_LED_MATRIX -/* define LED */ -enum{ - EXTERN_LED_0, - EXTERN_LED_1, - EXTERN_LED_2, - EXTERN_LED_3, - EXTERN_LED_4, - EXTERN_LED_5, - EXTERN_LED_6, - EXTERN_LED_7, - EXTERN_LED_8, - EXTERN_LED_9, - EXTERN_LED_10, - EXTERN_LED_11, - EXTERN_LED_12, - EXTERN_LED_13, - EXTERN_LED_14, - EXTERN_LED_15, - EXTERN_LED_16, - EXTERN_LED_17, - EXTERN_LED_18, -}; - -rt_thread_t led_matrix_thread = RT_NULL; rt_thread_t MQTT_Thread = RT_NULL; rt_thread_t Snake_Thread = RT_NULL; rt_thread_t Infrared_Thread = RT_NULL; @@ -432,42 +408,7 @@ void cdc_entry(void *parameter) rt_thread_mdelay(500); } } -void led_matrix_example_entry(void *parameter) -{ - // while (1) - // { - // RGB_Show_64(); // 调用RGB灯板显示函数 - // rt_thread_mdelay(500); - // } - // int count = 0; - // while (1) - // { - // for (int i = EXTERN_LED_0; i <= EXTERN_LED_18; i++) - // { - // switch (count) - // { - // case 0: - // Set_LEDColor(i, LED_RED); - // break; - // case 1: - // Set_LEDColor(i, LED_GREEN); - // break; - // case 2: - // Set_LEDColor(i, LED_BLUE); - // break; - // default: - // return; - // break; - // } - // RGB_Reflash(); - // rt_thread_delay(20); - // } - // count = (count + 1) % 3; - // } - - LED_LITTLE_TEST(); -} // /* 用于接收消息的信号量 */ // static struct rt_semaphore rx_sem; // /* 接收数据回调函数 */ @@ -635,18 +576,7 @@ void inf_init(void) } } MSH_CMD_EXPORT_ALIAS(inf_init, inf, "Infrared"); -int led_init(void) -{ - led_matrix_thread = rt_thread_create("led matrix demo", led_matrix_example_entry, RT_NULL, 1024, 20, 20); - if(led_matrix_thread == RT_NULL) - { - rt_kprintf("led matrix demo thread creat failed!\n"); - return 0; - } - rt_thread_mdelay(200); // avoid multi-thread on LED matrix transmit. - rt_thread_startup(led_matrix_thread); -} void tst_init(void) { Test_Thread = rt_thread_create("Test_Thread", test_lcd, RT_NULL, THREAD_STACK_SIZE, THREAD_PRIORITY, THREAD_TIMESLICE); diff --git a/my_pro/mytest.c b/my_pro/mytest.c index 2de7056..339fd12 100644 --- a/my_pro/mytest.c +++ b/my_pro/mytest.c @@ -1,7 +1,34 @@ -#include "drv_matrix_led.h" +#include"indicator_led.h" +// #include "drv_matrix_led.h" #include - -void ledblink(int argc, char **argv){//设置/查询设备名称 +void ledblinkm(int argc, char **argv){ + + int LedId_begin = atoi(argv[2]); + int LedId_end = atoi(argv[3]); + if(!rt_strcmp(argv[1],"RED")) + { + LED_BlinkMore(LedId_begin,LedId_end,LED_RED); + } + else if(!rt_strcmp(argv[1],"BLUE")) + { + LED_BlinkMore(LedId_begin,LED_BLUE); + } +} +MSH_CMD_EXPORT_ALIAS(ledblinkm,LEDB, "BLINK LedId Color"); +void ledsetm(int argc, char **argv){ + + int LedId_begin = atoi(argv[2]); + int LedId_end = atoi(argv[3]); + if(!rt_strcmp(argv[1],"RED")) + { + LED_SetMore(LedId_begin,LedId_end,LED_RED); + } + else if(!rt_strcmp(argv[1],"BLUE")) + { + LED_SetMore(LedId_begin,LED_BLUE); + } +} +MSH_CMD_EXPORT_ALIAS(ledblinkm,LEDB, "BLINK LedId Color"); // if(argc < 2){ // const rt_uint8_t Buffer[] = "AT+NAME\r\n"; // rt_uint8_t len = rt_strlen((const char*)Buffer);