3.7inch arduino example added a partial refresh example
This commit is contained in:
parent
c6a0591118
commit
1a3a24a978
3 changed files with 22 additions and 10 deletions
|
@ -223,7 +223,7 @@ void Epd::Reset(void) {
|
|||
/******************************************************************************
|
||||
function : Display
|
||||
******************************************************************************/
|
||||
void Epd::DisplayFrame(const UBYTE *Image) {
|
||||
void Epd::DisplayFrame(const UBYTE *Image, bool isBase) {
|
||||
UWORD i;
|
||||
UWORD IMAGE_COUNTER = width * height / 8;
|
||||
|
||||
|
@ -238,9 +238,11 @@ void Epd::DisplayFrame(const UBYTE *Image) {
|
|||
for (i = 0; i < IMAGE_COUNTER; i++) {
|
||||
SendData(pgm_read_byte(&Image[i]));
|
||||
}
|
||||
SendCommand(0x26);
|
||||
for (i = 0; i < IMAGE_COUNTER; i++) {
|
||||
SendData(pgm_read_byte(&Image[i]));
|
||||
if(isBase) {
|
||||
SendCommand(0x26);
|
||||
for (i = 0; i < IMAGE_COUNTER; i++) {
|
||||
SendData(pgm_read_byte(&Image[i]));
|
||||
}
|
||||
}
|
||||
|
||||
Load_LUT(1);
|
||||
|
@ -320,8 +322,11 @@ void Epd::DisplayFrame_Part(const UBYTE *Image, UWORD Xstart, UWORD Ystart, UWOR
|
|||
Load_LUT(1);
|
||||
else
|
||||
Load_LUT(0);
|
||||
SendCommand(0x20);
|
||||
WaitUntilIdle();
|
||||
}
|
||||
|
||||
void Epd::TurnOnDisplay(void) {
|
||||
SendCommand(0x20);
|
||||
WaitUntilIdle();
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
|
|
|
@ -44,10 +44,11 @@ public:
|
|||
int Init(void);
|
||||
void WaitUntilIdle(void);
|
||||
void Reset(void);
|
||||
void DisplayFrame(const UBYTE *Image);
|
||||
void DisplayFrame(const UBYTE *Image, bool isBase);
|
||||
void SendCommand(unsigned char command);
|
||||
void DisplayFrame_Partial(const UBYTE *Image, UWORD Xstart, UWORD Ystart, UWORD iwidth, UWORD iheight);
|
||||
void DisplayFrame_Part(const UBYTE *Image, UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend, bool isGC);
|
||||
void TurnOnDisplay(void);
|
||||
void SendData(unsigned char data);
|
||||
void Sleep(void);
|
||||
void Clear(UBYTE mode);
|
||||
|
|
|
@ -49,7 +49,7 @@ void setup() {
|
|||
Serial.print("e-Paper Clear\r\n ");
|
||||
epd.Clear(1);
|
||||
Serial.print("draw image\r\n ");
|
||||
epd.DisplayFrame(IMAGE_DATA); // Set base image
|
||||
epd.DisplayFrame(IMAGE_DATA, true); // Set base image
|
||||
delay(3000);
|
||||
|
||||
paint.SetWidth(40);
|
||||
|
@ -59,7 +59,7 @@ void setup() {
|
|||
|
||||
UBYTE i;
|
||||
time_start_ms = millis();
|
||||
for(i=0; i<10; i++) {
|
||||
for(i=0; i<5; i++) {
|
||||
time_now_s = (millis() - time_start_ms) / 1000;
|
||||
char time_string[] = {'0', '0', ':', '0', '0', '\0'};
|
||||
time_string[0] = time_now_s / 60 / 10 + '0';
|
||||
|
@ -71,7 +71,13 @@ void setup() {
|
|||
paint.DrawStringAt(20, 10, time_string, &Font16, COLORED);
|
||||
Serial.print("refresh------\r\n ");
|
||||
// epd.DisplayFrame_Partial(paint.GetImage(), 20, 100, 40, 120); // Width must be a multiple of 8
|
||||
epd.DisplayFrame_Part(paint.GetImage(), 40, 30, 80, 140, false); // Xstart must be a multiple of 8
|
||||
/* Writes new data to RAM */
|
||||
epd.DisplayFrame_Part(paint.GetImage(), 40+i*40, 30, 80+i*40, 140, false); // Xstart must be a multiple of 8
|
||||
/* Displays and toggles the RAM currently in use */
|
||||
epd.TurnOnDisplay();
|
||||
/* Writes the last data to another RAM */
|
||||
epd.DisplayFrame_Part(paint.GetImage(), 40+i*40, 30, 80+i*40, 140, false); // Xstart must be a multiple of 8
|
||||
delay(500);
|
||||
}
|
||||
|
||||
Serial.print("clear and sleep......\r\n ");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue