update EPD_FillRAM with length param

This commit is contained in:
Shuanglei Tao
2025-06-04 20:56:14 +08:00
parent 88b0998f58
commit 5dc7a5608f
4 changed files with 11 additions and 7 deletions

View File

@@ -206,14 +206,14 @@ uint8_t EPD_ReadByte(void)
return value;
}
void EPD_FillRAM(uint8_t cmd, uint8_t value)
void EPD_FillRAM(uint8_t cmd, uint8_t value, uint32_t len)
{
uint8_t buffer[BUFFER_SIZE];
for (uint8_t i = 0; i < BUFFER_SIZE; i++)
buffer[i] = value;
EPD_WriteCmd(cmd);
uint16_t remaining = ((EPD->width + 7) / 8) * EPD->height;
uint16_t remaining = len;
while (remaining > 0) {
uint16_t chunk_size = (remaining > BUFFER_SIZE) ? BUFFER_SIZE : remaining;
EPD_WriteData(buffer, chunk_size);

View File

@@ -94,7 +94,7 @@ uint8_t EPD_ReadByte(void);
EPD_WriteCmd(cmd); \
EPD_WriteData(_data, sizeof(_data)); \
} while (0)
void EPD_FillRAM(uint8_t cmd, uint8_t value);
void EPD_FillRAM(uint8_t cmd, uint8_t value, uint32_t len);
void EPD_Reset(uint32_t value, uint16_t duration);
void EPD_WaitBusy(uint32_t value, uint16_t timeout);

View File

@@ -146,11 +146,12 @@ static void SSD1619_Refresh(void)
void SSD1619_Clear(bool refresh)
{
epd_model_t *EPD = epd_get();
uint32_t ram_bytes = ((EPD->width + 7) / 8) * EPD->height;
_setPartialRamArea(0, 0, EPD->width, EPD->height);
EPD_FillRAM(CMD_WRITE_RAM1, 0xFF);
EPD_FillRAM(CMD_WRITE_RAM2, 0xFF);
EPD_FillRAM(CMD_WRITE_RAM1, 0xFF, ram_bytes);
EPD_FillRAM(CMD_WRITE_RAM2, 0xFF, ram_bytes);
if (refresh)
SSD1619_Refresh();

View File

@@ -163,8 +163,11 @@ void UC8176_Init()
void UC8176_Clear(bool refresh)
{
EPD_FillRAM(CMD_DTM1, 0xFF);
EPD_FillRAM(CMD_DTM2, 0xFF);
epd_model_t *EPD = epd_get();
uint32_t ram_bytes = ((EPD->width + 7) / 8) * EPD->height;
EPD_FillRAM(CMD_DTM1, 0xFF, ram_bytes);
EPD_FillRAM(CMD_DTM2, 0xFF, ram_bytes);
if (refresh)
UC8176_Refresh();