141
ePaper-ESP-IDF/components/lilygo-epd47/ed047tc1.h
Normal file
141
ePaper-ESP-IDF/components/lilygo-epd47/ed047tc1.h
Normal file
@@ -0,0 +1,141 @@
|
||||
#ifndef _ED047TC1_H_
|
||||
#define _ED047TC1_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/******************************************************************************/
|
||||
/*** include files ***/
|
||||
/******************************************************************************/
|
||||
|
||||
#include <driver/gpio.h>
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/******************************************************************************/
|
||||
/*** macro definitions ***/
|
||||
/******************************************************************************/
|
||||
|
||||
#if CONFIG_IDF_TARGET_ESP32
|
||||
|
||||
/* Config Reggister Control */
|
||||
#define CFG_DATA GPIO_NUM_23
|
||||
#define CFG_CLK GPIO_NUM_18
|
||||
#define CFG_STR GPIO_NUM_0
|
||||
|
||||
/* Control Lines */
|
||||
#define CKV GPIO_NUM_25
|
||||
#define STH GPIO_NUM_26
|
||||
|
||||
/* Edges */
|
||||
#define CKH GPIO_NUM_5
|
||||
|
||||
/* Data Lines */
|
||||
#define D7 GPIO_NUM_22
|
||||
#define D6 GPIO_NUM_21
|
||||
#define D5 GPIO_NUM_27
|
||||
#define D4 GPIO_NUM_2
|
||||
#define D3 GPIO_NUM_19
|
||||
#define D2 GPIO_NUM_4
|
||||
#define D1 GPIO_NUM_32
|
||||
#define D0 GPIO_NUM_33
|
||||
|
||||
#elif CONFIG_IDF_TARGET_ESP32S3
|
||||
|
||||
/* Config Reggister Control */
|
||||
#define CFG_DATA GPIO_NUM_13
|
||||
#define CFG_CLK GPIO_NUM_12
|
||||
#define CFG_STR GPIO_NUM_0
|
||||
|
||||
/* Control Lines */
|
||||
#define CKV GPIO_NUM_38
|
||||
#define STH GPIO_NUM_40
|
||||
|
||||
/* Edges */
|
||||
#define CKH GPIO_NUM_41
|
||||
|
||||
/* Data Lines */
|
||||
#define D7 GPIO_NUM_7
|
||||
#define D6 GPIO_NUM_6
|
||||
#define D5 GPIO_NUM_5
|
||||
#define D4 GPIO_NUM_4
|
||||
#define D3 GPIO_NUM_3
|
||||
#define D2 GPIO_NUM_2
|
||||
#define D1 GPIO_NUM_1
|
||||
#define D0 GPIO_NUM_8
|
||||
|
||||
#else
|
||||
#error "Unknown SOC"
|
||||
#endif
|
||||
|
||||
/******************************************************************************/
|
||||
/*** type definitions ***/
|
||||
/******************************************************************************/
|
||||
|
||||
/******************************************************************************/
|
||||
/*** exported variables ***/
|
||||
/******************************************************************************/
|
||||
|
||||
/******************************************************************************/
|
||||
/*** exported functions ***/
|
||||
/******************************************************************************/
|
||||
|
||||
void epd_base_init(uint32_t epd_row_width);
|
||||
void epd_poweron();
|
||||
void epd_poweroff();
|
||||
|
||||
/**
|
||||
* @brief Start a draw cycle.
|
||||
*/
|
||||
void epd_start_frame();
|
||||
|
||||
/**
|
||||
* @brief End a draw cycle.
|
||||
*/
|
||||
void epd_end_frame();
|
||||
|
||||
/**
|
||||
* @brief output row data
|
||||
*
|
||||
* @note Waits until all previously submitted data has been written.
|
||||
* Then, the following operations are initiated:
|
||||
*
|
||||
* 1. Previously submitted data is latched to the output register.
|
||||
* 2. The RMT peripheral is set up to pulse the vertical (gate) driver
|
||||
* for `output_time_dus` / 10 microseconds.
|
||||
* 3. The I2S peripheral starts transmission of the current buffer to
|
||||
* the source driver.
|
||||
* 4. The line buffers are switched.
|
||||
*
|
||||
* This sequence of operations allows for pipelining data preparation and
|
||||
* transfer, reducing total refresh times.
|
||||
*/
|
||||
void epd_output_row(uint32_t output_time_dus);
|
||||
|
||||
/**
|
||||
* @brief Skip a row without writing to it.
|
||||
*/
|
||||
void epd_skip();
|
||||
|
||||
/**
|
||||
* @brief Get the currently writable line buffer.
|
||||
*/
|
||||
uint8_t* epd_get_current_buffer();
|
||||
|
||||
/**
|
||||
* @brief Switches front and back line buffer.
|
||||
*
|
||||
* @note If the switched-to line buffer is currently in use, this function
|
||||
* blocks until transmission is done.
|
||||
*/
|
||||
void epd_switch_buffer();
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
/******************************************************************************/
|
||||
/*** END OF FILE ***/
|
||||
/******************************************************************************/
|
Reference in New Issue
Block a user