mirror of
https://github.com/WeActStudio/WeActStudio.EpaperModule.git
synced 2026-08-16 13:13:45 +02:00
119 lines
3.7 KiB
C
119 lines
3.7 KiB
C
#ifndef EPAPER_H
|
|
#define EPAPER_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <stdint.h>
|
|
|
|
////#define EPD_29
|
|
// #define EPD_213
|
|
//
|
|
// #if (!defined EPD_29) && (!defined EPD_213)
|
|
// #error EPD Type Undefine
|
|
// #endif
|
|
//
|
|
// #ifdef EPD_29
|
|
// #define EPD_W 128
|
|
// #define EPD_H 296
|
|
// #endif
|
|
//
|
|
// #ifdef EPD_213
|
|
// #define EPD_W 122
|
|
// #define EPD_H 250
|
|
// #endif
|
|
|
|
#define EPD213_219 0
|
|
#define EPD154 1
|
|
#define EPD420 2
|
|
#define EPD370_UC8253 3
|
|
|
|
extern uint16_t EPD_H;
|
|
extern uint16_t EPD_W;
|
|
extern uint8_t epd_type;
|
|
|
|
#define EPD_OK 0
|
|
#define EPD_ERROR 1
|
|
|
|
#define EPD_ROTATE_0 0
|
|
#define EPD_ROTATE_90 90
|
|
#define EPD_ROTATE_180 180
|
|
#define EPD_ROTATE_270 270
|
|
|
|
#define EPD_COLOR_WHITE 0xFF
|
|
#define EPD_COLOR_BLACK 0x00
|
|
#define EPD_COLOR_RED EPD_COLOR_BLACK
|
|
|
|
#define EPD_FONT_SIZE8x6 (8)
|
|
#define EPD_FONT_SIZE12x6 (12)
|
|
#define EPD_FONT_SIZE16x8 (16)
|
|
#define EPD_FONT_SIZE24x12 (24)
|
|
|
|
#define EPD_DEEPSLEEP_MODE1 (0x01)
|
|
#define EPD_DEEPSLEEP_MODE2 (0x03)
|
|
|
|
#define EPD_W_BUFF_SIZE ((EPD_W % 8 == 0) ? (EPD_W / 8) : (EPD_W / 8 + 1))
|
|
|
|
typedef struct
|
|
{
|
|
uint8_t *Image;
|
|
uint16_t Width;
|
|
uint16_t Height;
|
|
uint16_t WidthMemory;
|
|
uint16_t HeightMemory;
|
|
uint16_t Color;
|
|
uint16_t Rotate;
|
|
uint16_t WidthByte;
|
|
uint16_t HeightByte;
|
|
} EPD_PAINT;
|
|
extern EPD_PAINT EPD_Paint;
|
|
|
|
void epd_io_init(void);
|
|
void epd_io_deinit(void);
|
|
void epd_write_reg(uint8_t reg);
|
|
void epd_write_imagedata(uint8_t *Image1, uint32_t length);
|
|
void epd_set_panel(uint8_t type, uint16_t width, uint16_t height);
|
|
uint8_t epd_init(void);
|
|
uint8_t epd_init_fast(void);
|
|
uint8_t epd_init_partial(void);
|
|
void epd_enter_deepsleepmode(uint8_t mode);
|
|
uint8_t epd_power_on(void);
|
|
uint8_t epd_power_off(void);
|
|
void epd_init_internalTempSensor(void);
|
|
void epd_update(void);
|
|
void epd_update_fast(void);
|
|
void epd_update_partial(void);
|
|
void epd_address_set(uint16_t x_start, uint16_t y_start, uint16_t x_end, uint16_t y_end);
|
|
void epd_setpos(uint16_t x, uint16_t y);
|
|
void epd_display(uint8_t *Image1, uint8_t *Image2);
|
|
void epd_displayBW(uint8_t *Image);
|
|
void epd_displayBW_fast(uint8_t *Image);
|
|
void epd_displayBW_partial(uint8_t *Image);
|
|
void epd_displayRED(uint8_t *Image);
|
|
void epd_displayRED_invert(uint8_t *Image);
|
|
|
|
void epd_paint_newimage(uint8_t *image, uint16_t Width, uint16_t Height, uint16_t Rotate, uint16_t Color);
|
|
void epd_paint_setpixel(uint16_t Xpoint, uint16_t Ypoint, uint16_t Color);
|
|
void epd_paint_selectimage(uint8_t *image);
|
|
void epd_paint_clear(uint16_t color);
|
|
void epd_paint_drawPoint(uint16_t Xpoint, uint16_t Ypoint, uint16_t Color);
|
|
void epd_paint_drawLine(uint16_t Xstart, uint16_t Ystart, uint16_t Xend, uint16_t Yend, uint16_t Color);
|
|
void epd_paint_drawRectangle(uint16_t Xstart, uint16_t Ystart, uint16_t Xend, uint16_t Yend, uint16_t Color, uint8_t mode);
|
|
void epd_paint_drawCircle(uint16_t X_Center, uint16_t Y_Center, uint16_t Radius, uint16_t Color, uint8_t mode);
|
|
void epd_paint_showChar(uint16_t x, uint16_t y, uint16_t chr, uint16_t size1, uint16_t color);
|
|
void epd_paint_showString(uint16_t x, uint16_t y, uint8_t *chr, uint16_t size1, uint16_t color);
|
|
void epd_paint_showNum(uint16_t x, uint16_t y, uint32_t num, uint16_t len, uint16_t size1, uint16_t color);
|
|
void epd_paint_showChinese(uint16_t x, uint16_t y, uint16_t num, uint16_t size1, uint16_t color);
|
|
void epd_paint_showPicture(uint16_t x, uint16_t y, uint16_t sizex, uint16_t sizey, const uint8_t BMP[], uint16_t Color);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|