Add Schmitt SPI display driver
This commit is contained in:
parent
26fe6e7703
commit
8592cb9d29
9 changed files with 72 additions and 3 deletions
|
@ -178,6 +178,10 @@ menu "LVGL TFT Display controller"
|
|||
bool
|
||||
help
|
||||
PCD8544 display controller (Nokia 3110/5110)
|
||||
config LV_TFT_DISPLAY_CONTROLLER_SCHMITT
|
||||
bool
|
||||
help
|
||||
Schmitt's display controller
|
||||
# Display controller communication protocol
|
||||
#
|
||||
# This symbols define the communication protocol used by the
|
||||
|
@ -349,6 +353,10 @@ menu "LVGL TFT Display controller"
|
|||
select LV_TFT_DISPLAY_CONTROLLER_PCD8544
|
||||
select LV_TFT_DISPLAY_PROTOCOL_SPI
|
||||
select LV_TFT_DISPLAY_MONOCHROME
|
||||
config LV_TFT_DISPLAY_USER_CONTROLLER_SCHMITT
|
||||
bool "SCHMITT"
|
||||
select LV_TFT_DISPLAY_CONTROLLER_SCHMITT
|
||||
select LV_TFT_DISPLAY_PROTOCOL_SPI
|
||||
endchoice
|
||||
|
||||
config CUSTOM_DISPLAY_BUFFER_SIZE
|
||||
|
|
|
@ -45,6 +45,8 @@ void *disp_driver_init(void)
|
|||
ili9163c_init();
|
||||
#elif defined CONFIG_LV_TFT_DISPLAY_CONTROLLER_PCD8544
|
||||
pcd8544_init();
|
||||
#elif defined CONFIG_LV_TFT_DISPLAY_CONTROLLER_SCHMITT
|
||||
schmitt_init();
|
||||
#endif
|
||||
|
||||
// We still use menuconfig for these settings
|
||||
|
@ -111,6 +113,8 @@ void disp_driver_flush(lv_disp_drv_t * drv, const lv_area_t * area, lv_color_t *
|
|||
ili9163c_flush(drv, area, color_map);
|
||||
#elif defined CONFIG_LV_TFT_DISPLAY_CONTROLLER_PCD8544
|
||||
pcd8544_flush(drv, area, color_map);
|
||||
#elif defined CONFIG_LV_TFT_DISPLAY_CONTROLLER_SCHMITT
|
||||
schmitt_flush(drv, area, color_map);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -54,6 +54,8 @@ extern "C" {
|
|||
#include "ili9163c.h"
|
||||
#elif defined CONFIG_LV_TFT_DISPLAY_CONTROLLER_PCD8544
|
||||
#include "pcd8544.h"
|
||||
#elif defined CONFIG_LV_TFT_DISPLAY_CONTROLLER_SCHMITT
|
||||
#include "schmitt.h"
|
||||
#endif
|
||||
|
||||
/*********************
|
||||
|
|
27
lvgl_tft/schmitt.c
Normal file
27
lvgl_tft/schmitt.c
Normal file
|
@ -0,0 +1,27 @@
|
|||
#include <stdio.h>
|
||||
|
||||
#include "schmitt.h"
|
||||
#include "disp_spi.h"
|
||||
|
||||
#include "esp_log.h"
|
||||
|
||||
static const char* TAG = "SCHMITT_DIS";
|
||||
|
||||
void schmitt_init(void)
|
||||
{
|
||||
disp_spi_acquire();
|
||||
// Do things
|
||||
ESP_LOGI(TAG, "schmitt_init() called");
|
||||
disp_spi_release();
|
||||
}
|
||||
|
||||
void schmitt_flush(lv_disp_drv_t * drv, const lv_area_t * area, lv_color_t * color_map)
|
||||
{
|
||||
disp_spi_acquire();
|
||||
// Do things
|
||||
uint32_t size = lv_area_get_width(area) * lv_area_get_height(area);
|
||||
disp_spi_send_colors(color_map, size * 4);
|
||||
ESP_LOGI(TAG, "schmitt_flush() called");
|
||||
disp_spi_release();
|
||||
lv_disp_flush_ready(drv);
|
||||
}
|
20
lvgl_tft/schmitt.h
Normal file
20
lvgl_tft/schmitt.h
Normal file
|
@ -0,0 +1,20 @@
|
|||
#ifndef SCHMITT_H_
|
||||
#define SCHMITT_H_
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
|
||||
#include "lvgl.h"
|
||||
#else
|
||||
#include "lvgl/lvgl.h"
|
||||
#endif
|
||||
#include "../lvgl_helpers.h"
|
||||
|
||||
#define LV_HOR_RES_MAX 64
|
||||
#define LV_VER_RES_MAX 64
|
||||
|
||||
void schmitt_init(void);
|
||||
|
||||
void schmitt_flush(lv_disp_drv_t * drv, const lv_area_t * area, lv_color_t * color_map);
|
||||
|
||||
#endif /* SCHMITT_H_ */
|
Loading…
Add table
Add a link
Reference in a new issue