espressif / esp-dev-kits

Docs, Schematics, Factory Firmwares for ESP Development Kits
Other
352 stars 184 forks source link

LCD AVOID TEAR WHEN SCREEN ROTATION 180 (AEGHB-49) #64

Closed Wvirgil123 closed 1 year ago

Wvirgil123 commented 1 year ago

问题: 当删除 ' depends on LCD_EVB_SCREEN_ROTATION_0 ' 依赖项时( https://github.com/espressif/esp-dev-kits/blob/71aad98bd60cd5028c070bf299bff102edad58a7/esp32-s3-lcd-ev-board/examples/smart-panel/components/bsp/Kconfig.projbuild#L80), 然后开启avoid tear 功能, 并旋转180°。 但实际效果是无法旋转180°。请问一下是否可以既旋转180°, 又能开启 avoid tear 功能呢?

环境: esp32s3 + RGB565 (480*480)

Lzw655 commented 1 year ago

@Wvirgil123 因为防撕裂方案是基于 LVGL 的 direct-mode/full-refresh 种模式实现的,LVGL 暂不支持 direct-mode/full-refresh + 软件旋转,见 issue,而且 RGB LCD 屏幕一般也不能设置硬件旋转,所以这个需求暂时无法实现。

EDIT: RGB LCD 虽然无法做到 xy 轴硬件反转(旋转 90 °),但是可能实现 xy 轴镜像(旋转 180°),如下图 ML 控制位,你可以查阅下 LCD IC 手册是否有相关命令。 image

Lzw655 commented 1 year ago

防撕裂方案已进行更新,请参考 bsp,相关配置项为:BSP_LCD_RGB_DOUBLE_BUFFER、BSP_LCD_RGB_REFRESH_TASK_ENABLE 、BSP_DISPLAY_LVGL_AVOID_TEAR

Wvirgil123 commented 1 year ago

感谢, 加上这个可以实现x 轴镜像

image
Lzw655 commented 1 year ago

不客气,那请关闭此 issue