/*! @file Driver.h @brief @author Hendrik Schutter @version V1.0 @date 03.11.2020 */ #ifndef __DRIVER_H #define __DRIVER_H #include #include #include #include "driver/spi_master.h" #include "esp_system.h" #include "driver/gpio.h" #include "freertos/FreeRTOS.h" #include "freertos/task.h" #define LCD_HOST HSPI_HOST #define DMA_CHAN 2 #define PIN_NUM_MISO 25 #define PIN_NUM_MOSI 23 #define PIN_NUM_CLK 19 #define PIN_NUM_CS 22 #define PIN_NUM_DC 21 #define PIN_NUM_RST 18 #define PIN_NUM_BCKL 5 #define LCD_WIDTH 320 #define LCD_HIGH 240 //To speed up transfers, every SPI transfer sends a bunch of lines. This define specifies how many. More means more memory use, //but less overhead for setting up / finishing transfers. Make sure 240 is dividable by this. #define PARALLEL_LINES 16 /* The LCD needs a bunch of command/argument values to be initialized. They are stored in this struct. */ typedef struct { uint8_t cmd; uint8_t data[16]; uint8_t databytes; //No of data in data; bit 7 = delay after set; 0xFF = end of cmds. } lcd_init_cmd_t; typedef enum { LCD_TYPE_ILI = 1, LCD_TYPE_ST, LCD_TYPE_MAX, } type_lcd_t; esp_err_t vDriver_init(void); esp_err_t iDriver_writeFramebuffer(uint16_t ***pu16Framebuffer); #endif /* __DRIVER_H */