mirror of
https://github.com/jam422470459/EPD-nRF52-hema213.git
synced 2025-12-06 16:42:49 +08:00
always power off after refresh
This commit is contained in:
@@ -61,15 +61,29 @@ void EPD_4IN2_ReadBusy(void)
|
||||
}
|
||||
}
|
||||
|
||||
void EPD_4IN2_PowerOn(void)
|
||||
{
|
||||
EPD_WriteCommand(0x04);
|
||||
EPD_4IN2_ReadBusy();
|
||||
}
|
||||
|
||||
void EPD_4IN2_PowerOff(void)
|
||||
{
|
||||
EPD_WriteCommand(0x02);
|
||||
EPD_4IN2_ReadBusy();
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
function : Turn On Display
|
||||
parameter:
|
||||
******************************************************************************/
|
||||
void EPD_4IN2_TurnOnDisplay(void)
|
||||
void EPD_4IN2_Refresh(void)
|
||||
{
|
||||
EPD_4IN2_PowerOn();
|
||||
EPD_WriteCommand(0x12);
|
||||
DEV_Delay_ms(100);
|
||||
EPD_4IN2_ReadBusy();
|
||||
EPD_4IN2_PowerOff();
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
@@ -83,16 +97,8 @@ void EPD_4IN2_Init(void)
|
||||
EPD_WriteCommand(0x00); // panel setting
|
||||
EPD_WriteByte(0x1f); // 400x300 B/W mode, LUT from OTP
|
||||
|
||||
EPD_WriteCommand(0x61); // resolution setting
|
||||
EPD_WriteByte (EPD_4IN2_WIDTH / 256);
|
||||
EPD_WriteByte (EPD_4IN2_WIDTH % 256);
|
||||
EPD_WriteByte (EPD_4IN2_HEIGHT / 256);
|
||||
EPD_WriteByte (EPD_4IN2_HEIGHT % 256);
|
||||
|
||||
EPD_WriteCommand(0x50); // VCOM AND DATA INTERVAL SETTING
|
||||
EPD_WriteByte(0x97); // LUTB=0 LUTW=1 interval=10
|
||||
|
||||
EPD_WriteCommand(0x04); // POWER ON
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
@@ -119,7 +125,7 @@ void EPD_4IN2_Clear(void)
|
||||
}
|
||||
}
|
||||
|
||||
EPD_4IN2_TurnOnDisplay();
|
||||
EPD_4IN2_Refresh();
|
||||
}
|
||||
|
||||
static void _setPartialRamArea(UWORD x, UWORD y, UWORD w, UWORD h)
|
||||
@@ -162,13 +168,9 @@ parameter:
|
||||
******************************************************************************/
|
||||
void EPD_4IN2_Sleep(void)
|
||||
{
|
||||
EPD_WriteCommand(0x50); // DEEP_SLEEP
|
||||
EPD_WriteByte(0XF7);
|
||||
EPD_4IN2_PowerOff();
|
||||
|
||||
EPD_WriteCommand(0x02); // POWER_OFF
|
||||
EPD_4IN2_ReadBusy();
|
||||
|
||||
EPD_WriteCommand(0x07); // DEEP_SLEEP
|
||||
EPD_WriteCommand(0x07); // deep sleep
|
||||
EPD_WriteByte(0XA5);
|
||||
}
|
||||
|
||||
@@ -182,6 +184,6 @@ const epd_driver_t epd_driver_4in2 = {
|
||||
.send_byte = EPD_WriteByte,
|
||||
.send_data = EPD_WriteData,
|
||||
.write_image = EPD_4IN2_Write_Image,
|
||||
.display = EPD_4IN2_TurnOnDisplay,
|
||||
.refresh = EPD_4IN2_Refresh,
|
||||
.sleep = EPD_4IN2_Sleep,
|
||||
};
|
||||
|
||||
@@ -60,15 +60,29 @@ void EPD_4IN2B_V2_ReadBusy(void)
|
||||
DEV_Delay_ms(50);
|
||||
}
|
||||
|
||||
void EPD_4IN2B_V2_PowerOn(void)
|
||||
{
|
||||
EPD_WriteCommand(0x04);
|
||||
EPD_4IN2B_V2_ReadBusy();
|
||||
}
|
||||
|
||||
void EPD_4IN2B_V2_PowerOff(void)
|
||||
{
|
||||
EPD_WriteCommand(0x02);
|
||||
EPD_4IN2B_V2_ReadBusy();
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
function : Turn On Display
|
||||
parameter:
|
||||
******************************************************************************/
|
||||
void EPD_4IN2B_V2_TurnOnDisplay(void)
|
||||
void EPD_4IN2B_V2_Refresh(void)
|
||||
{
|
||||
EPD_4IN2B_V2_PowerOn();
|
||||
EPD_WriteCommand(0x12); // DISPLAY_REFRESH
|
||||
DEV_Delay_ms(100);
|
||||
EPD_4IN2B_V2_ReadBusy();
|
||||
EPD_4IN2B_V2_PowerOff();
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
@@ -81,8 +95,6 @@ void EPD_4IN2B_V2_Init(void)
|
||||
|
||||
EPD_WriteCommand(0x00);
|
||||
EPD_WriteByte(0x0f);
|
||||
|
||||
EPD_WriteCommand(0x04);
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
@@ -109,7 +121,7 @@ void EPD_4IN2B_V2_Clear(void)
|
||||
}
|
||||
}
|
||||
|
||||
EPD_4IN2B_V2_TurnOnDisplay();
|
||||
EPD_4IN2B_V2_Refresh();
|
||||
}
|
||||
|
||||
static void _setPartialRamArea(UWORD x, UWORD y, UWORD w, UWORD h)
|
||||
@@ -159,12 +171,9 @@ parameter:
|
||||
******************************************************************************/
|
||||
void EPD_4IN2B_V2_Sleep(void)
|
||||
{
|
||||
EPD_WriteCommand(0X50);
|
||||
EPD_WriteByte(0xf7); //border floating
|
||||
EPD_4IN2B_V2_PowerOff();
|
||||
|
||||
EPD_WriteCommand(0X02); //power off
|
||||
EPD_4IN2B_V2_ReadBusy(); //waiting for the electronic paper IC to release the idle signal
|
||||
EPD_WriteCommand(0X07); //deep sleep
|
||||
EPD_WriteCommand(0X07); // deep sleep
|
||||
EPD_WriteByte(0xA5);
|
||||
}
|
||||
|
||||
@@ -178,6 +187,6 @@ const epd_driver_t epd_driver_4in2bv2 = {
|
||||
.send_byte = EPD_WriteByte,
|
||||
.send_data = EPD_WriteData,
|
||||
.write_image = EPD_4IN2B_V2_Write_Image,
|
||||
.display = EPD_4IN2B_V2_TurnOnDisplay,
|
||||
.refresh = EPD_4IN2B_V2_Refresh,
|
||||
.sleep = EPD_4IN2B_V2_Sleep,
|
||||
};
|
||||
|
||||
@@ -157,7 +157,7 @@ static void epd_service_process(ble_epd_t * p_epd, uint8_t * p_data, uint16_t le
|
||||
break;
|
||||
|
||||
case EPD_CMD_DISPLAY:
|
||||
p_epd->driver->display();
|
||||
p_epd->driver->refresh();
|
||||
break;
|
||||
|
||||
case EPD_CMD_SLEEP:
|
||||
|
||||
@@ -53,7 +53,7 @@ typedef struct
|
||||
void (*send_byte)(UBYTE Reg); /**< send byte */
|
||||
void (*send_data)(UBYTE *Data, UBYTE Len); /**< send data */
|
||||
void (*write_image)(UBYTE *black, UBYTE *color, UWORD x, UWORD y, UWORD w, UWORD h); /**< write image */
|
||||
void (*display)(void); /**< Sends the image buffer in RAM to e-Paper and displays */
|
||||
void (*refresh)(void); /**< Sends the image buffer in RAM to e-Paper and displays */
|
||||
void (*sleep)(void); /**< Enter sleep mode */
|
||||
} epd_driver_t;
|
||||
|
||||
|
||||
@@ -104,6 +104,6 @@ void DrawCalendar(uint32_t timestamp)
|
||||
GFX_end(&gfx);
|
||||
|
||||
NRF_LOG_DEBUG("display start\n");
|
||||
driver->display();
|
||||
driver->refresh();
|
||||
NRF_LOG_DEBUG("display end\n");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user