refactor: epd lib enhancements

This commit is contained in:
IOsetting 2023-03-12 02:36:33 +08:00
parent 5070ff4633
commit aa804d5ac6

View File

@ -143,6 +143,28 @@ static void EPD_1IN54_SendData(UBYTE Data)
EPD_Digital_Write(EPD_CS_PIN, 1);
}
static void EPD_1IN54_SendDataArray(const UBYTE *Data, UWORD len)
{
EPD_Digital_Write(EPD_DC_PIN, 1);
EPD_Digital_Write(EPD_CS_PIN, 0);
while (len--)
{
EPD_SPI_WriteByte(*Data++);
}
EPD_Digital_Write(EPD_CS_PIN, 1);
}
static void EPD_1IN54_SendDataBurst(const UBYTE Data, UWORD len)
{
EPD_Digital_Write(EPD_DC_PIN, 1);
EPD_Digital_Write(EPD_CS_PIN, 0);
while (len--)
{
EPD_SPI_WriteByte(Data);
}
EPD_Digital_Write(EPD_CS_PIN, 1);
}
/******************************************************************************
function : Wait until the busy_pin goes LOW
parameter:
@ -235,13 +257,9 @@ void EPD_1IN54_Init(UBYTE Mode)
//set the look-up table register
EPD_1IN54_SendCommand(0x32);
if(Mode == EPD_1IN54_FULL){
for (UWORD i = 0; i < 30; i++) {
EPD_1IN54_SendData(EPD_1IN54_lut_full_update[i]);
}
EPD_1IN54_SendDataArray(EPD_1IN54_lut_full_update, 30);
}else if(Mode == EPD_1IN54_PART){
for (UWORD i = 0; i < 30; i++) {
EPD_1IN54_SendData(EPD_1IN54_lut_partial_update[i]);
}
EPD_1IN54_SendDataArray(EPD_1IN54_lut_partial_update, 30);
}else{
EPD_Printf("error, the Mode is EPD_1IN54_FULL or EPD_1IN54_PART");
}
@ -261,9 +279,7 @@ void EPD_1IN54_Clear(void)
for (UWORD j = 0; j < Height; j++) {
EPD_1IN54_SetCursor(0, j);
EPD_1IN54_SendCommand(0x24);
for (UWORD i = 0; i < Width; i++) {
EPD_1IN54_SendData(0XFF);
}
EPD_1IN54_SendDataBurst(0xFF, Width);
}
EPD_1IN54_TurnOnDisplay();
}
@ -278,16 +294,16 @@ void EPD_1IN54_Display(UBYTE *Image)
Width = (EPD_1IN54_WIDTH % 8 == 0)? (EPD_1IN54_WIDTH / 8 ): (EPD_1IN54_WIDTH / 8 + 1);
Height = EPD_1IN54_HEIGHT;
UDOUBLE Addr = 0;
// UDOUBLE Offset = ImageName;
EPD_1IN54_SetWindow(0, 0, EPD_1IN54_WIDTH, EPD_1IN54_HEIGHT);
for (UWORD j = 0; j < Height; j++) {
EPD_1IN54_SetCursor(0, j);
EPD_1IN54_SendCommand(0x24);
for (UWORD i = 0; i < Width; i++) {
Addr = i + j * Width;
EPD_1IN54_SendData(Image[Addr]);
}
EPD_1IN54_SendDataArray(Image + (j * Width), Width);
// for (UWORD i = 0; i < Width; i++) {
// Addr = i + j * Width;
// EPD_1IN54_SendData(Image[Addr]);
// }
}
EPD_1IN54_TurnOnDisplay();
}