ZJY 3.5": Use provided function.

This commit is contained in:
imi415 2022-08-29 00:54:06 +08:00
parent 6fe4c748bd
commit 40bef05c63
Signed by: imi415
GPG Key ID: 17F01E106F9F5E0A
2 changed files with 13 additions and 29 deletions

View File

@ -31,8 +31,7 @@ typedef struct {
} lcd_zjy350c4001_t;
epd_ret_t lcd_zjy350c4001_init(lcd_zjy350c4001_t *lcd);
epd_ret_t lcd_zjy350c4001_upload(lcd_zjy350c4001_t *lcd, uint8_t *data, uint16_t x_start, uint16_t x_end,
uint16_t y_start, uint16_t y_end);
epd_ret_t lcd_zjy350c4001_upload(lcd_zjy350c4001_t *lcd, uint8_t *data, epd_coord_t *coord);
epd_ret_t lcd_zjy350c4001_sleep(lcd_zjy350c4001_t *lcd, uint8_t sleep_mode);
epd_ret_t lcd_zjy350c4001_display(lcd_zjy350c4001_t *lcd, uint8_t display_on);
epd_ret_t lcd_zjy350c4001_config(lcd_zjy350c4001_t *lcd, LCD_ZJY350C4001_config_t *config);

View File

@ -4,7 +4,7 @@
#include "epd_private.h"
static uint8_t LCD_ZJY350C4001_init_seq_zjy_480_320[] = {
static uint8_t lcd_zjy350c4001_init_seq_zjy_480_320[] = {
0x01, 0xF0, 0xC3, // Enable command part 1
0x01, 0xF0, 0x96, // Enable command part 2
0x08, 0xE8, 0x40, 0x82, 0x07, 0x18, 0x27, 0x0A, 0xB6, 0x33, // DOCA
@ -16,21 +16,7 @@ static uint8_t LCD_ZJY350C4001_init_seq_zjy_480_320[] = {
0x01, 0xF0, 0x69, // Disable command part 2
};
epd_ret_t _LCD_ZJY350C4001_init_seq(lcd_zjy350c4001_t *lcd) {
uint16_t i = 0;
while (i < sizeof(LCD_ZJY350C4001_init_seq_zjy_480_320)) {
if (lcd->cb.write_command_cb(lcd->user_data, &LCD_ZJY350C4001_init_seq_zjy_480_320[i + 1],
LCD_ZJY350C4001_init_seq_zjy_480_320[i] + 1) != EPD_OK) {
return EPD_FAIL;
};
i += LCD_ZJY350C4001_init_seq_zjy_480_320[i] + 2;
}
return EPD_OK;
}
epd_ret_t _LCD_ZJY350C4001_window(lcd_zjy350c4001_t *lcd, uint16_t x_start, uint16_t x_end, uint16_t y_start, uint16_t y_end) {
epd_ret_t lcd_zjy350c4001_window(lcd_zjy350c4001_t *lcd, epd_coord_t *coord) {
uint16_t real_x_start, real_x_end, real_y_start, real_y_end;
uint16_t x_offset, y_offset;
@ -56,10 +42,10 @@ epd_ret_t _LCD_ZJY350C4001_window(lcd_zjy350c4001_t *lcd, uint16_t x_start, uint
y_offset = 0;
}
real_x_start = x_start + x_offset;
real_x_end = x_end + x_offset;
real_y_start = y_start + y_offset;
real_y_end = y_end + y_offset;
real_x_start = coord->x_start + x_offset;
real_x_end = coord->x_end + x_offset;
real_y_start = coord->y_start + y_offset;
real_y_end = coord->y_end + y_offset;
uint8_t tx_buf[5] = {0x2A, ((uint8_t)(real_x_start >> 0x08U) & 0xFFU), (real_x_start & 0xFFU),
((uint8_t)(real_x_end >> 0x08U) & 0xFFU), (real_x_end & 0xFFU)};
@ -81,11 +67,11 @@ epd_ret_t _LCD_ZJY350C4001_window(lcd_zjy350c4001_t *lcd, uint16_t x_start, uint
return EPD_OK;
}
epd_ret_t _LCD_ZJY350C4001_reset(lcd_zjy350c4001_t *lcd) { return lcd->cb.reset_cb(lcd->user_data); }
epd_ret_t lcd_zjy350c4001_reset(lcd_zjy350c4001_t *lcd) { return lcd->cb.reset_cb(lcd->user_data); }
epd_ret_t lcd_zjy350c4001_init(lcd_zjy350c4001_t *lcd) {
if (_LCD_ZJY350C4001_reset(lcd) != EPD_OK) return EPD_FAIL;
if (_LCD_ZJY350C4001_init_seq(lcd) != EPD_OK) return EPD_FAIL;
if (lcd_zjy350c4001_reset(lcd) != EPD_OK) return EPD_FAIL;
if(epd_common_execute_sequence(&lcd->cb, lcd->user_data, lcd_zjy350c4001_init_seq_zjy_480_320, sizeof(lcd_zjy350c4001_init_seq_zjy_480_320)) != EPD_OK) return EPD_FAIL;
if (lcd_zjy350c4001_config(lcd, &lcd->config) != EPD_OK) return EPD_FAIL;
if (lcd_zjy350c4001_sleep(lcd, 0) != EPD_OK) return EPD_FAIL;
if (lcd_zjy350c4001_display(lcd, 1) != EPD_OK) return EPD_FAIL;
@ -93,9 +79,8 @@ epd_ret_t lcd_zjy350c4001_init(lcd_zjy350c4001_t *lcd) {
return EPD_OK;
}
epd_ret_t lcd_zjy350c4001_upload(lcd_zjy350c4001_t *lcd, uint8_t *data, uint16_t x_start, uint16_t x_end,
uint16_t y_start, uint16_t y_end) {
uint32_t pixel_count = (y_end - y_start + 1) * (x_end - x_start + 1);
epd_ret_t lcd_zjy350c4001_upload(lcd_zjy350c4001_t *lcd, uint8_t *data, epd_coord_t *coord) {
uint32_t pixel_count = (coord->y_end - coord->y_start + 1) * (coord->x_end - coord->x_start + 1);
uint32_t data_len = 0;
@ -116,7 +101,7 @@ epd_ret_t lcd_zjy350c4001_upload(lcd_zjy350c4001_t *lcd, uint8_t *data, uint16_t
}
// Set cursor
if (_LCD_ZJY350C4001_window(lcd, x_start, x_end, y_start, y_end) != EPD_OK) {
if (lcd_zjy350c4001_window(lcd, coord) != EPD_OK) {
return EPD_FAIL;
}