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
|
function : Display
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
void Epd::DisplayFrame(const UBYTE *Image) {
|
void Epd::DisplayFrame(const UBYTE *Image, bool isBase) {
|
||||||
UWORD i;
|
UWORD i;
|
||||||
UWORD IMAGE_COUNTER = width * height / 8;
|
UWORD IMAGE_COUNTER = width * height / 8;
|
||||||
|
|
||||||
|
|
@ -238,9 +238,11 @@ void Epd::DisplayFrame(const UBYTE *Image) {
|
||||||
for (i = 0; i < IMAGE_COUNTER; i++) {
|
for (i = 0; i < IMAGE_COUNTER; i++) {
|
||||||
SendData(pgm_read_byte(&Image[i]));
|
SendData(pgm_read_byte(&Image[i]));
|
||||||
}
|
}
|
||||||
SendCommand(0x26);
|
if(isBase) {
|
||||||
for (i = 0; i < IMAGE_COUNTER; i++) {
|
SendCommand(0x26);
|
||||||
SendData(pgm_read_byte(&Image[i]));
|
for (i = 0; i < IMAGE_COUNTER; i++) {
|
||||||
|
SendData(pgm_read_byte(&Image[i]));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Load_LUT(1);
|
Load_LUT(1);
|
||||||
|
|
@ -320,8 +322,11 @@ void Epd::DisplayFrame_Part(const UBYTE *Image, UWORD Xstart, UWORD Ystart, UWOR
|
||||||
Load_LUT(1);
|
Load_LUT(1);
|
||||||
else
|
else
|
||||||
Load_LUT(0);
|
Load_LUT(0);
|
||||||
SendCommand(0x20);
|
}
|
||||||
WaitUntilIdle();
|
|
||||||
|
void Epd::TurnOnDisplay(void) {
|
||||||
|
SendCommand(0x20);
|
||||||
|
WaitUntilIdle();
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
|
|
|
||||||
|
|
@ -44,10 +44,11 @@ public:
|
||||||
int Init(void);
|
int Init(void);
|
||||||
void WaitUntilIdle(void);
|
void WaitUntilIdle(void);
|
||||||
void Reset(void);
|
void Reset(void);
|
||||||
void DisplayFrame(const UBYTE *Image);
|
void DisplayFrame(const UBYTE *Image, bool isBase);
|
||||||
void SendCommand(unsigned char command);
|
void SendCommand(unsigned char command);
|
||||||
void DisplayFrame_Partial(const UBYTE *Image, UWORD Xstart, UWORD Ystart, UWORD iwidth, UWORD iheight);
|
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 DisplayFrame_Part(const UBYTE *Image, UWORD Xstart, UWORD Ystart, UWORD Xend, UWORD Yend, bool isGC);
|
||||||
|
void TurnOnDisplay(void);
|
||||||
void SendData(unsigned char data);
|
void SendData(unsigned char data);
|
||||||
void Sleep(void);
|
void Sleep(void);
|
||||||
void Clear(UBYTE mode);
|
void Clear(UBYTE mode);
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ void setup() {
|
||||||
Serial.print("e-Paper Clear\r\n ");
|
Serial.print("e-Paper Clear\r\n ");
|
||||||
epd.Clear(1);
|
epd.Clear(1);
|
||||||
Serial.print("draw image\r\n ");
|
Serial.print("draw image\r\n ");
|
||||||
epd.DisplayFrame(IMAGE_DATA); // Set base image
|
epd.DisplayFrame(IMAGE_DATA, true); // Set base image
|
||||||
delay(3000);
|
delay(3000);
|
||||||
|
|
||||||
paint.SetWidth(40);
|
paint.SetWidth(40);
|
||||||
|
|
@ -59,7 +59,7 @@ void setup() {
|
||||||
|
|
||||||
UBYTE i;
|
UBYTE i;
|
||||||
time_start_ms = millis();
|
time_start_ms = millis();
|
||||||
for(i=0; i<10; i++) {
|
for(i=0; i<5; i++) {
|
||||||
time_now_s = (millis() - time_start_ms) / 1000;
|
time_now_s = (millis() - time_start_ms) / 1000;
|
||||||
char time_string[] = {'0', '0', ':', '0', '0', '\0'};
|
char time_string[] = {'0', '0', ':', '0', '0', '\0'};
|
||||||
time_string[0] = time_now_s / 60 / 10 + '0';
|
time_string[0] = time_now_s / 60 / 10 + '0';
|
||||||
|
|
@ -71,7 +71,13 @@ void setup() {
|
||||||
paint.DrawStringAt(20, 10, time_string, &Font16, COLORED);
|
paint.DrawStringAt(20, 10, time_string, &Font16, COLORED);
|
||||||
Serial.print("refresh------\r\n ");
|
Serial.print("refresh------\r\n ");
|
||||||
// epd.DisplayFrame_Partial(paint.GetImage(), 20, 100, 40, 120); // Width must be a multiple of 8
|
// 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 ");
|
Serial.print("clear and sleep......\r\n ");
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue