mirror of
https://gitcode.com/gh_mirrors/es/esp32-opencv.git
synced 2025-08-14 01:57:43 +08:00
Modified lvgl init
- lvgl init was already done in `lvgl_gui` component (in `lvgl.c`), and this method called `lvgl_lcd_hal_init()` - `lv_tick()` was also initialized to be called each 1ms - `lv_task_handler()` was also initialized to be called each 5ms
This commit is contained in:
@ -54,7 +54,7 @@ void lvgl_init()
|
|||||||
esp_timer_handle_t g_wifi_connect_timer = NULL;
|
esp_timer_handle_t g_wifi_connect_timer = NULL;
|
||||||
esp_timer_create(&timer_conf, &g_wifi_connect_timer);
|
esp_timer_create(&timer_conf, &g_wifi_connect_timer);
|
||||||
|
|
||||||
esp_timer_start_periodic(g_wifi_connect_timer, 1 * 1000U);
|
esp_timer_start_periodic(g_wifi_connect_timer, 1 * 1000U); // lv_tick_inc() called each 1 ms
|
||||||
|
|
||||||
/* Display interface */
|
/* Display interface */
|
||||||
lvgl_lcd_hal_init();
|
lvgl_lcd_hal_init();
|
||||||
@ -67,7 +67,7 @@ void lvgl_init()
|
|||||||
esp_timer_handle_t lv_task_timer = NULL;
|
esp_timer_handle_t lv_task_timer = NULL;
|
||||||
esp_timer_create(&lv_task_timer_conf, &lv_task_timer);
|
esp_timer_create(&lv_task_timer_conf, &lv_task_timer);
|
||||||
|
|
||||||
esp_timer_start_periodic(lv_task_timer, 5 * 1000U);
|
esp_timer_start_periodic(lv_task_timer, 5 * 1000U); // lv_task_handler() called each 5 ms
|
||||||
|
|
||||||
vTaskDelay(LVGL_INIT_DELAY / portTICK_PERIOD_MS); // wait for execute lv_task_handler and lv_tick_inc to avoid some widget don't refresh.
|
vTaskDelay(LVGL_INIT_DELAY / portTICK_PERIOD_MS); // wait for execute lv_task_handler and lv_tick_inc to avoid some widget don't refresh.
|
||||||
|
|
||||||
|
@ -406,7 +406,7 @@ exit:
|
|||||||
#include "lvgl.h"
|
#include "lvgl.h"
|
||||||
|
|
||||||
/* lvgl internal graphics buffers */
|
/* lvgl internal graphics buffers */
|
||||||
#define DISP_BUF_SIZE LV_HOR_RES_MAX * 24 // Horizontal resolution X number of lines sent to the driver
|
#define DISP_BUF_SIZE LV_HOR_RES_MAX * 24 // Horizontal resolution * number of lines sent to the driver
|
||||||
static lv_disp_buf_t disp_buf;
|
static lv_disp_buf_t disp_buf;
|
||||||
static lv_color_t buf_1[DISP_BUF_SIZE];
|
static lv_color_t buf_1[DISP_BUF_SIZE];
|
||||||
static lv_color_t buf_2[DISP_BUF_SIZE];
|
static lv_color_t buf_2[DISP_BUF_SIZE];
|
||||||
@ -421,34 +421,6 @@ static void ex_disp_flush(lv_disp_drv_t *disp_drv, const lv_area_t *area, lv_col
|
|||||||
lv_disp_flush_ready(&disp->driver);
|
lv_disp_flush_ready(&disp->driver);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*Calls `lv_tick_inc()` at regular interval to inform lvgl of elapsed time*/
|
|
||||||
static void IRAM_ATTR lv_tick_cb(void) {
|
|
||||||
lv_tick_inc(portTICK_RATE_MS);
|
|
||||||
}
|
|
||||||
|
|
||||||
void lvgl_init()
|
|
||||||
{
|
|
||||||
/* register lvgl tick callback function */
|
|
||||||
esp_register_freertos_tick_hook(lv_tick_cb);
|
|
||||||
|
|
||||||
/*lvgl initialize*/
|
|
||||||
lv_init();
|
|
||||||
|
|
||||||
/* init display buffers */
|
|
||||||
lv_disp_buf_init(&disp_buf, buf_1, buf_2, DISP_BUF_SIZE);
|
|
||||||
|
|
||||||
/* screen driver */
|
|
||||||
lv_disp_drv_t disp_drv; /*Descriptor of a display driver*/
|
|
||||||
lv_disp_drv_init(&disp_drv); /*Basic initialization*/
|
|
||||||
|
|
||||||
disp_drv.flush_cb = ex_disp_flush;
|
|
||||||
disp_drv.buffer = &disp_buf;
|
|
||||||
|
|
||||||
/* Finally register the driver */
|
|
||||||
lv_disp_drv_register(&disp_drv);
|
|
||||||
}
|
|
||||||
|
|
||||||
// todo: separate lcv_hal_init() and lvgl_init()
|
|
||||||
void lvgl_lcd_hal_init()
|
void lvgl_lcd_hal_init()
|
||||||
{
|
{
|
||||||
lcd_conf_t lcd_pins = {
|
lcd_conf_t lcd_pins = {
|
||||||
@ -477,6 +449,16 @@ void lvgl_lcd_hal_init()
|
|||||||
tft->setRotation(0);
|
tft->setRotation(0);
|
||||||
tft->fillScreen(COLOR_BLACK);
|
tft->fillScreen(COLOR_BLACK);
|
||||||
|
|
||||||
/*init lvgl*/
|
/* init lvgl display buffers */
|
||||||
lvgl_init();
|
lv_disp_buf_init(&disp_buf, buf_1, buf_2, DISP_BUF_SIZE);
|
||||||
|
|
||||||
|
/* lvgl screen driver */
|
||||||
|
lv_disp_drv_t disp_drv; /*Descriptor of a display driver*/
|
||||||
|
lv_disp_drv_init(&disp_drv); /*Basic initialization*/
|
||||||
|
|
||||||
|
disp_drv.flush_cb = ex_disp_flush;
|
||||||
|
disp_drv.buffer = &disp_buf;
|
||||||
|
|
||||||
|
/* Finally register the driver */
|
||||||
|
lv_disp_drv_register(&disp_drv);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user