added support for TE pin on the st7789 driver
This commit is contained in:
parent
a4128e1d41
commit
24cabb1523
|
@ -739,6 +739,20 @@ menu "LVGL TFT Display controller"
|
||||||
help
|
help
|
||||||
Use software reset and ignores configured reset pin (some hardware does not use a reset pin).
|
Use software reset and ignores configured reset pin (some hardware does not use a reset pin).
|
||||||
|
|
||||||
|
config LV_DISPLAY_USE_TE_PIN
|
||||||
|
bool "Enable TE (Tearing effect) pin"
|
||||||
|
default y
|
||||||
|
help
|
||||||
|
Enable the TE pin to control the display. You can disable
|
||||||
|
it when the display does not need MISO signal to be controlled.
|
||||||
|
|
||||||
|
config LV_DISPLAY_TE_PIN
|
||||||
|
int "GPIO for TE (Tearing effect) pin"
|
||||||
|
depends on LV_DISPLAY_USE_TE_PIN
|
||||||
|
default 38
|
||||||
|
help
|
||||||
|
Configure the display TE pin here.
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
# menu will be visible only when LV_PREDEFINED_DISPLAY_NONE is y
|
# menu will be visible only when LV_PREDEFINED_DISPLAY_NONE is y
|
||||||
|
|
|
@ -82,6 +82,14 @@ void st7789_init(void)
|
||||||
{0xB6, {0x0A, 0x82, 0x27, 0x00}, 4},
|
{0xB6, {0x0A, 0x82, 0x27, 0x00}, 4},
|
||||||
{ST7789_SLPOUT, {0}, 0x80},
|
{ST7789_SLPOUT, {0}, 0x80},
|
||||||
{ST7789_DISPON, {0}, 0x80},
|
{ST7789_DISPON, {0}, 0x80},
|
||||||
|
#ifdef CONFIG_LV_DISPLAY_USE_TE_PIN
|
||||||
|
{ST7789_TEON, {0}, 1}, //[BJ] turn on TE
|
||||||
|
#endif
|
||||||
|
//-----------
|
||||||
|
//[BJ] Below I am trying to change refresh rate of the screen so the tearing is not prominent
|
||||||
|
//{ST7789_FRCTR2,{0x1F},1}, //[BJ] set the refresh rate
|
||||||
|
{ST7789_FRCTRL1,{0x01, 0x0F, 0x0F},3}, //[BJ] divide the refresh by 2.
|
||||||
|
// ----------------------------------------
|
||||||
{0, {0}, 0xff},
|
{0, {0}, 0xff},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -94,6 +102,11 @@ void st7789_init(void)
|
||||||
gpio_set_direction(ST7789_RST, GPIO_MODE_OUTPUT);
|
gpio_set_direction(ST7789_RST, GPIO_MODE_OUTPUT);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_LV_DISPLAY_USE_TE_PIN
|
||||||
|
gpio_pad_select_gpio(ST7789_TE);
|
||||||
|
gpio_set_direction(ST7789_TE, GPIO_MODE_INPUT);
|
||||||
|
#endif
|
||||||
|
|
||||||
//Reset the display
|
//Reset the display
|
||||||
#if !defined(ST7789_SOFT_RST)
|
#if !defined(ST7789_SOFT_RST)
|
||||||
gpio_set_level(ST7789_RST, 0);
|
gpio_set_level(ST7789_RST, 0);
|
||||||
|
@ -208,7 +221,7 @@ void st7789_send_data(void * data, uint16_t length)
|
||||||
|
|
||||||
static void st7789_send_color(void * data, size_t length)
|
static void st7789_send_color(void * data, size_t length)
|
||||||
{
|
{
|
||||||
//disp_wait_for_pending_transactions(); [BJ] noticed that commenting this made the display slightly faster.
|
// disp_wait_for_pending_transactions();
|
||||||
gpio_set_level(ST7789_DC, 1);
|
gpio_set_level(ST7789_DC, 1);
|
||||||
disp_spi_send_colors(data, length);
|
disp_spi_send_colors(data, length);
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,6 +23,8 @@ extern "C"
|
||||||
|
|
||||||
#define ST7789_DC CONFIG_LV_DISP_PIN_DC
|
#define ST7789_DC CONFIG_LV_DISP_PIN_DC
|
||||||
#define ST7789_RST CONFIG_LV_DISP_PIN_RST
|
#define ST7789_RST CONFIG_LV_DISP_PIN_RST
|
||||||
|
#define ST7789_TE CONFIG_LV_DISPLAY_TE_PIN
|
||||||
|
|
||||||
|
|
||||||
#if CONFIG_LV_DISP_USE_RST
|
#if CONFIG_LV_DISP_USE_RST
|
||||||
#if CONFIG_LV_DISP_ST7789_SOFT_RESET
|
#if CONFIG_LV_DISP_ST7789_SOFT_RESET
|
||||||
|
|
Loading…
Reference in a new issue