From f66a2a63dee1be39986a27bf70f9b11f41d51b45 Mon Sep 17 00:00:00 2001 From: C47D Date: Mon, 25 Jan 2021 20:57:15 -0600 Subject: [PATCH 1/4] SSD1306: Remove portrait orientation from menuconfig --- lvgl_tft/Kconfig | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lvgl_tft/Kconfig b/lvgl_tft/Kconfig index f20b9fd..e30af79 100644 --- a/lvgl_tft/Kconfig +++ b/lvgl_tft/Kconfig @@ -186,11 +186,12 @@ menu "LVGL TFT Display controller" # Used in display init function to send display orientation commands choice DISPLAY_ORIENTATION prompt "Display orientation" - default DISPLAY_ORIENTATION_PORTRAIT + default DISPLAY_ORIENTATION_PORTRAIT if !LV_TFT_DISPLAY_CONTROLLER_SSD1306 + default DISPLAY_ORIENTATION_LANDSCAPE if LV_TFT_DISPLAY_CONTROLLER_SSD1306 config DISPLAY_ORIENTATION_PORTRAIT - bool "Portrait" + bool "Portrait" if !LV_TFT_DISPLAY_CONTROLLER_SSD1306 config DISPLAY_ORIENTATION_PORTRAIT_INVERTED - bool "Portrait inverted" + bool "Portrait inverted" if !LV_TFT_DISPLAY_CONTROLLER_SSD1306 config DISPLAY_ORIENTATION_LANDSCAPE bool "Landscape" config DISPLAY_ORIENTATION_LANDSCAPE_INVERTED From d6bb341f00860fd1e0300db77275fa4d7a304bde Mon Sep 17 00:00:00 2001 From: C47D Date: Mon, 25 Jan 2021 21:04:11 -0600 Subject: [PATCH 2/4] SSD1306: Update orientation configuration --- lvgl_tft/ssd1306.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lvgl_tft/ssd1306.c b/lvgl_tft/ssd1306.c index 79e5b38..6529eee 100644 --- a/lvgl_tft/ssd1306.c +++ b/lvgl_tft/ssd1306.c @@ -101,10 +101,10 @@ void ssd1306_init(void) uint8_t orientation_1 = 0; uint8_t orientation_2 = 0; -#if defined (CONFIG_DISPLAY_ORIENTATION_PORTRAIT) +#if defined (CONFIG_DISPLAY_ORIENTATION_LANDSCAPE) orientation_1 = OLED_CMD_SET_SEGMENT_REMAP; orientation_2 = OLED_CMD_SET_COM_SCAN_MODE_REMAP; -#elif defined (CONFIG_DISPLAY_ORIENTATION_PORTRAIT_INVERTED) +#elif defined (CONFIG_DISPLAY_ORIENTATION_LANDSCAPE_INVERTED) orientation_1 = 0xA0; orientation_2 = OLED_CMD_SET_COM_SCAN_MODE_NORMAL; #else From 6b0fd1f1acbb1520b2f6675c1eeb28501d52de43 Mon Sep 17 00:00:00 2001 From: C47D Date: Sun, 31 Jan 2021 17:28:03 -0600 Subject: [PATCH 3/4] SSD1306: Handle theme not being mono --- lvgl_helpers.h | 4 ++++ lvgl_tft/ssd1306.c | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/lvgl_helpers.h b/lvgl_helpers.h index 9c622f7..bbe8211 100644 --- a/lvgl_helpers.h +++ b/lvgl_helpers.h @@ -40,7 +40,11 @@ extern "C" { #elif defined CONFIG_LV_TFT_DISPLAY_CONTROLLER_ILI9341 #define DISP_BUF_SIZE (LV_HOR_RES_MAX * 64) #elif defined CONFIG_LV_TFT_DISPLAY_CONTROLLER_SSD1306 +#if defined (CONFIG_LV_THEME_MONO) #define DISP_BUF_SIZE (LV_HOR_RES_MAX * (LV_VER_RES_MAX / 8)) +#else +#define DISP_BUF_SIZE (LV_HOR_RES_MAX * LV_VER_RES_MAX) +#endif #elif defined (CONFIG_LV_TFT_DISPLAY_CONTROLLER_FT81X) #define DISP_BUF_LINES 40 #define DISP_BUF_SIZE (LV_HOR_RES_MAX * DISP_BUF_LINES) diff --git a/lvgl_tft/ssd1306.c b/lvgl_tft/ssd1306.c index 6529eee..276039a 100644 --- a/lvgl_tft/ssd1306.c +++ b/lvgl_tft/ssd1306.c @@ -176,8 +176,18 @@ void ssd1306_flush(lv_disp_drv_t * disp_drv, const lv_area_t * area, lv_color_t void ssd1306_rounder(lv_disp_drv_t * disp_drv, lv_area_t *area) { +#if defined (CONFIG_LV_THEME_MONO) area->x1 = area->x1 & ~(0x07); area->x2 = area->x2 | 0x07; +#else + uint8_t hor_max = disp_drv->hor_res; + uint8_t ver_max = disp_drv->ver_res; + + area->x1 = 0; + area->y1 = 0; + area->x2 = hor_max - 1; + area->y2 = ver_max - 1; +#endif } void ssd1306_sleep_in(void) From bfb129a554063dbd542c0546cb076988d2c55707 Mon Sep 17 00:00:00 2001 From: C47D Date: Tue, 9 Feb 2021 23:27:58 -0600 Subject: [PATCH 4/4] ssd1306: Remove partial update support --- lvgl_tft/ssd1306.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/lvgl_tft/ssd1306.c b/lvgl_tft/ssd1306.c index 276039a..d80486b 100644 --- a/lvgl_tft/ssd1306.c +++ b/lvgl_tft/ssd1306.c @@ -176,10 +176,6 @@ void ssd1306_flush(lv_disp_drv_t * disp_drv, const lv_area_t * area, lv_color_t void ssd1306_rounder(lv_disp_drv_t * disp_drv, lv_area_t *area) { -#if defined (CONFIG_LV_THEME_MONO) - area->x1 = area->x1 & ~(0x07); - area->x2 = area->x2 | 0x07; -#else uint8_t hor_max = disp_drv->hor_res; uint8_t ver_max = disp_drv->ver_res; @@ -187,7 +183,6 @@ void ssd1306_rounder(lv_disp_drv_t * disp_drv, lv_area_t *area) area->y1 = 0; area->x2 = hor_max - 1; area->y2 = ver_max - 1; -#endif } void ssd1306_sleep_in(void)