Răsfoiți Sursa

update:颜色避免重复定义

Dozingfiretruck 2 ani în urmă
părinte
comite
a16c696410

+ 7 - 1
components/lcd/luat_lcd.c

@@ -8,7 +8,7 @@
 #define LUAT_LOG_TAG "lcd"
 #include "luat_log.h"
 
-luat_color_t BACK_COLOR = WHITE, FORE_COLOR = BLACK;
+luat_color_t BACK_COLOR = LCD_WHITE, FORE_COLOR = LCD_BLACK;
 
 #define LUAT_LCD_CONF_COUNT (1)
 static luat_lcd_conf_t* confs[LUAT_LCD_CONF_COUNT] = {0};
@@ -44,6 +44,9 @@ void luat_lcd_execute_cmds(luat_lcd_conf_t* conf, uint32_t* cmds, uint32_t count
 
 
 int lcd_write_cmd(luat_lcd_conf_t* conf, const uint8_t cmd){
+    if (conf->opts->write_cmd){
+        return conf->opts->write_cmd(conf,cmd);
+    }
     size_t len;
     luat_gpio_set(conf->pin_dc, Luat_GPIO_LOW);
 #ifdef LUAT_LCD_CMD_DELAY_US
@@ -71,6 +74,9 @@ int lcd_write_cmd(luat_lcd_conf_t* conf, const uint8_t cmd){
 }
 
 int lcd_write_data(luat_lcd_conf_t* conf, const uint8_t data){
+    if (conf->opts->write_cmd){
+        return conf->opts->write_data(conf,data);
+    }
     size_t len;
     if (conf->port == LUAT_LCD_SPI_DEVICE){
         len = luat_spi_device_send((luat_spi_device_t*)(conf->lcd_spi_device),  (const char*)&data, 1);

+ 4 - 19
components/lcd/luat_lcd.h

@@ -6,24 +6,8 @@
 #include "luat_spi.h"
 #include "u8g2.h"
 
-#define WHITE            0xFFFF
-#define BLACK            0x0000
-#define BLUE             0x001F
-#define BRED             0XF81F
-#define GRED             0XFFE0
-#define GBLUE            0X07FF
-#define RED              0xF800
-#define MAGENTA          0xF81F
-#define GREEN            0x07E0
-#define CYAN             0x7FFF
-#define YELLOW           0xFFE0
-#define BROWN            0XBC40
-#define BRRED            0XFC07
-#define GRAY             0X8430
-#define GRAY175          0XAD75
-#define GRAY151          0X94B2
-#define GRAY187          0XBDD7
-#define GRAY240          0XF79E
+#define LCD_WHITE            0xFFFF
+#define LCD_BLACK            0x0000
 
 #ifndef LUAT_LCD_COLOR_DEPTH
 #define LUAT_LCD_COLOR_DEPTH 16
@@ -74,11 +58,12 @@ typedef struct luat_lcd_conf {
 typedef struct luat_lcd_opts {
     const char* name;
     int (*init)(luat_lcd_conf_t* conf);
+    int (*write_cmd)(luat_lcd_conf_t* conf,const uint8_t cmd);
+    int (*write_data)(luat_lcd_conf_t* conf,const uint8_t data);
 } luat_lcd_opts_t;
 
 int lcd_write_cmd(luat_lcd_conf_t* conf,const uint8_t cmd);
 int lcd_write_data(luat_lcd_conf_t* conf,const uint8_t data);
-int lcd_write_half_word(luat_lcd_conf_t* conf,const luat_color_t da);
 
 luat_lcd_conf_t* luat_lcd_get_default(void);
 const char* luat_lcd_name(luat_lcd_conf_t* conf);

+ 1 - 1
components/lcd/luat_lcd_custom.c

@@ -41,7 +41,7 @@ static int custom_init(luat_lcd_conf_t* conf) {
     luat_lcd_wakeup(conf);
     /* wait for power stability */
     luat_rtos_task_sleep(100);
-    luat_lcd_clear(conf,BLACK);
+    luat_lcd_clear(conf,LCD_BLACK);
     /* display on */
     luat_lcd_display_on(conf);
     return 0;

+ 1 - 1
components/lcd/luat_lcd_gc9106l.c

@@ -89,7 +89,7 @@ static int gc9106l_init(luat_lcd_conf_t* conf) {
     lcd_write_cmd(conf,0x11);
     /* wait for power stability */
     luat_rtos_task_sleep(100);
-    luat_lcd_clear(conf,BLACK);
+    luat_lcd_clear(conf,LCD_BLACK);
     /* display on */
     luat_lcd_display_on(conf);
     return 0;

+ 1 - 1
components/lcd/luat_lcd_gc9306x.c

@@ -162,7 +162,7 @@ static int gc9306x_init(luat_lcd_conf_t* conf) {
     /* wait for power stability */
     luat_rtos_task_sleep(100);
     lcd_write_cmd(conf,0x2c);
-    luat_lcd_clear(conf,BLACK);
+    luat_lcd_clear(conf,LCD_BLACK);
     /* display on */
     luat_lcd_display_on(conf);
     lcd_write_cmd(conf,0x2c);

+ 1 - 1
components/lcd/luat_lcd_gc9a01.c

@@ -258,7 +258,7 @@ static int gc9a01_init(luat_lcd_conf_t* conf) {
     luat_lcd_wakeup(conf);
     /* wait for power stability */
     luat_rtos_task_sleep(100);
-    luat_lcd_clear(conf,BLACK);
+    luat_lcd_clear(conf,LCD_BLACK);
     /* display on */
     luat_lcd_display_on(conf);
     return 0;

+ 1 - 1
components/lcd/luat_lcd_ili9341.c

@@ -137,7 +137,7 @@ static int ili9341_init(luat_lcd_conf_t* conf) {
     lcd_write_cmd(conf,0x11);
     /* wait for power stability */
     luat_rtos_task_sleep(100);
-    luat_lcd_clear(conf,BLACK);
+    luat_lcd_clear(conf,LCD_BLACK);
     /* display on */
     luat_lcd_display_on(conf);
     return 0;

+ 1 - 1
components/lcd/luat_lcd_ili9486.c

@@ -115,7 +115,7 @@ static int ili9486_init(luat_lcd_conf_t* conf) {
     lcd_write_cmd(conf,0x11);
     /* wait for power stability */
     luat_rtos_task_sleep(100);
-    luat_lcd_clear(conf,BLACK);
+    luat_lcd_clear(conf,LCD_BLACK);
     /* display on */
     luat_lcd_display_on(conf);
     return 0;

+ 1 - 1
components/lcd/luat_lcd_st7735.c

@@ -119,7 +119,7 @@ static int st7735_init(luat_lcd_conf_t* conf) {
     lcd_write_cmd(conf,0x11);
     /* wait for power stability */
     luat_rtos_task_sleep(100);
-    luat_lcd_clear(conf,BLACK);
+    luat_lcd_clear(conf,LCD_BLACK);
     /* display on */
     luat_lcd_display_on(conf);
     return 0;

+ 1 - 1
components/lcd/luat_lcd_st7735s.c

@@ -127,7 +127,7 @@ static int st7735s_init(luat_lcd_conf_t* conf) {
 	lcd_write_data(conf,conf->h+conf->yoffset-1);    //160
 	lcd_write_cmd(conf,0x2C);
 
-    luat_lcd_clear(conf,BLACK);
+    luat_lcd_clear(conf,LCD_BLACK);
     /* display on */
     luat_lcd_display_on(conf);
     return 0;

+ 1 - 1
components/lcd/luat_lcd_st7735v.c

@@ -135,7 +135,7 @@ static int st7735v_init(luat_lcd_conf_t* conf) {
 
     /* wait for power stability */
     luat_rtos_task_sleep(100);
-    luat_lcd_clear(conf,BLACK);
+    luat_lcd_clear(conf,LCD_BLACK);
     /* display on */
     luat_lcd_display_on(conf);
     return 0;

+ 1 - 1
components/lcd/luat_lcd_st7789.c

@@ -113,7 +113,7 @@ static int st7789_init(luat_lcd_conf_t* conf) {
     lcd_write_cmd(conf,0x11);
     /* wait for power stability */
     luat_rtos_task_sleep(100);
-    luat_lcd_clear(conf,BLACK);
+    luat_lcd_clear(conf,LCD_BLACK);
     /* display on */
     luat_lcd_display_on(conf);
     return 0;

+ 1 - 1
components/lcd/luat_lcd_st7796.c

@@ -156,7 +156,7 @@ static int st7796_init(luat_lcd_conf_t* conf) {
     lcd_write_data(conf,0x69);
 
     luat_rtos_task_sleep(100);
-    luat_lcd_clear(conf,BLACK);
+    luat_lcd_clear(conf,LCD_BLACK);
     /* display on */
     luat_lcd_display_on(conf);
     return 0;