Просмотр исходного кода

update: LCD的DC等待时间现在只对特定IC起作用

alienwalker 4 лет назад
Родитель
Сommit
aa8f2b3018
3 измененных файлов с 5 добавлено и 2 удалено
  1. 3 1
      components/lcd/luat_lcd.c
  2. 1 0
      components/lcd/luat_lcd.h
  3. 1 1
      components/lcd/luat_lcd_ili9341.c

+ 3 - 1
components/lcd/luat_lcd.c

@@ -39,7 +39,9 @@ int lcd_write_cmd(luat_lcd_conf_t* conf, const uint8_t cmd){
     size_t len;
     luat_gpio_set(conf->pin_dc, Luat_GPIO_LOW);
 #ifdef LUAT_LCD_CMD_DELAY_US
-    luat_timer_us_delay(LUAT_LCD_CMD_DELAY_US);
+    if (conf->dc_delay_us){
+    	luat_timer_us_delay(conf->dc_delay_us);
+    }
 #endif
     if (conf->port == LUAT_LCD_SPI_DEVICE){
         len = luat_spi_device_send((luat_spi_device_t*)(conf->userdata),  (const char*)&cmd, 1);

+ 1 - 0
components/lcd/luat_lcd.h

@@ -50,6 +50,7 @@ typedef struct luat_lcd_conf {
     uint32_t w;
     uint32_t h;
     uint32_t buffer_size;
+    uint32_t dc_delay_us;
     uint8_t xoffset;//偏移
     uint8_t yoffset;//偏移
 

+ 1 - 1
components/lcd/luat_lcd_ili9341.c

@@ -41,7 +41,7 @@ static int ili9341_init(luat_lcd_conf_t* conf) {
         conf->h = LCD_H;
     if (conf->direction == 0)
         conf->direction = LCD_DIRECTION;
-
+    conf->dc_delay_us = 7;
     if (conf->pin_pwr != 255)
         luat_gpio_mode(conf->pin_pwr, Luat_GPIO_OUTPUT, Luat_GPIO_DEFAULT, Luat_GPIO_LOW); // POWER
     luat_gpio_mode(conf->pin_dc, Luat_GPIO_OUTPUT, Luat_GPIO_DEFAULT, Luat_GPIO_HIGH); // DC