mirror of
https://github.com/Dejvino/lilybook.git
synced 2025-12-30 05:39:34 +00:00
87 lines
2.2 KiB
C
87 lines
2.2 KiB
C
/*
|
|
* Author: LoBo (loboris@gmail.com, loboris.github)
|
|
*
|
|
* Module supporting SPI ePaper displays
|
|
*
|
|
* HIGH SPEED LOW LEVEL DISPLAY FUNCTIONS
|
|
* USING DIRECT or DMA SPI TRANSFER MODEs
|
|
*
|
|
*/
|
|
|
|
|
|
#ifndef _EPDSPI_H_
|
|
#define _EPDSPI_H_
|
|
|
|
#include <stdint.h>
|
|
#include "spi_master_lobo.h"
|
|
|
|
#define EPD_DISPLAY_WIDTH 296
|
|
#define EPD_DISPLAY_HEIGHT 128
|
|
|
|
#define SCK_Pin 18
|
|
#define MOSI_Pin 23
|
|
//#define MISO_Pin 19
|
|
#define DC_Pin 17//26
|
|
#define BUSY_Pin 4//32
|
|
#define RST_Pin 16//27
|
|
#define CS_Pin 5
|
|
// ePaper display can be powered from GPIO
|
|
// if powered directly from Vcc, set this to 0
|
|
#define POWER_Pin 22
|
|
|
|
#define DC_VAL (1 << DC_Pin)
|
|
|
|
#define EPD_CS_0 gpio_set_level(CS_Pin, 0)
|
|
#define EPD_CS_1 gpio_set_level(CS_Pin, 1)
|
|
#define isEPD_CS gpio_get_level(CS_Pin)
|
|
|
|
#define EPD_RST_0 gpio_set_level(RST_Pin, 0)
|
|
#define EPD_RST_1 gpio_set_level(RST_Pin, 1)
|
|
#define isEPD_RST gpio_get_level(RST_Pin)
|
|
|
|
#define EPD_DC_0 gpio_set_level(DC_Pin, 0)
|
|
#define EPD_DC_1 gpio_set_level(DC_Pin, 1)
|
|
|
|
#define isEPD_BUSY gpio_get_level(BUSY_Pin)
|
|
|
|
#define EPD_BUSY_LEVEL 0
|
|
|
|
// ==================================================
|
|
// Define which spi bus to use VSPI_HOST or HSPI_HOST
|
|
#define SPI_BUS VSPI_HOST
|
|
// ==================================================
|
|
|
|
spi_lobo_device_handle_t disp_spi;
|
|
uint8_t *gs_disp_buffer;
|
|
uint8_t *disp_buffer;
|
|
uint8_t *gs_drawBuff;
|
|
uint8_t *drawBuff;
|
|
int _width;
|
|
int _height;
|
|
uint16_t gs_used_shades;
|
|
uint8_t _gs;
|
|
uint8_t *LUT_part;
|
|
uint8_t LUTDefault_fastest[31];
|
|
uint8_t LUTDefault_part[31];
|
|
uint8_t LUT_gs[31];
|
|
uint8_t LUTDefault_full[31];
|
|
uint8_t lvl_buf[16];
|
|
uint8_t lvl_buf_jpg[16];
|
|
|
|
void EPD_wait(uint32_t ms);
|
|
void EPD_DisplaySetFull(uint8_t val);
|
|
void EPD_DisplaySetPart(int xStart, int xEnd, uint8_t yStart, uint8_t yEnd, uint8_t val);
|
|
void EPD_DisplayClearFull();
|
|
void EPD_DisplayClearPart();
|
|
void EPD_DisplayFull(uint8_t *DisBuffer);
|
|
void EPD_DisplayPart(int xStart, int xEnd, uint8_t yStart, uint8_t yEnd, uint8_t *DisBuffer);
|
|
void EPD_gsUpdate(int xStart, int xEnd, uint8_t yStart, uint8_t yEnd, uint8_t gs);
|
|
void EPD_Update(int xStart, int xEnd, uint8_t yStart, uint8_t yEnd);
|
|
void EPD_UpdateScreen();
|
|
void EPD_Cls();
|
|
void EPD_PowerOn();
|
|
void EPD_PowerOff();
|
|
|
|
|
|
#endif
|