bugfix timing epaper
This commit is contained in:
parent
9d2f1715df
commit
c8bd1acde2
2 changed files with 29 additions and 82 deletions
|
@ -34,7 +34,7 @@
|
|||
#define RST_PIN 19
|
||||
#define DC_PIN 20
|
||||
#define CS_PIN 10
|
||||
#define BUSY_PIN 13
|
||||
#define BUSY_PIN 14
|
||||
|
||||
class EpdIf {
|
||||
public:
|
||||
|
|
|
@ -34,7 +34,7 @@ unsigned char image[1024];
|
|||
Paint paint(image, 0, 0); // width should be the multiple of 8
|
||||
Epd epd;
|
||||
|
||||
long second=0;
|
||||
long second=-2;
|
||||
|
||||
void setup (void)
|
||||
{
|
||||
|
@ -66,69 +66,17 @@ void setup (void)
|
|||
* i.e. the next action of SetFrameMemory will set the other memory area
|
||||
* therefore you have to clear the frame memory twice.
|
||||
*/
|
||||
printf("1");
|
||||
|
||||
epd.ClearFrameMemory(0xFF); // bit set = white, bit reset = black
|
||||
epd.DisplayFrame();
|
||||
epd.ClearFrameMemory(0xFF); // bit set = white, bit reset = black
|
||||
epd.DisplayFrame();
|
||||
printf("2");
|
||||
|
||||
paint.SetRotate(ROTATE_0);
|
||||
paint.SetWidth(200);
|
||||
paint.SetHeight(24);
|
||||
if (epd.Init(lut_partial_update) != 0) {
|
||||
printf("e-Paper init failed");
|
||||
return;
|
||||
}
|
||||
|
||||
/* For simplicity, the arguments are explicit numerical coordinates */
|
||||
paint.Clear(COLORED);
|
||||
paint.DrawStringAt(30, 4, "Hello world!", &Font16, UNCOLORED);
|
||||
epd.SetFrameMemory(paint.GetImage(), 0, 10, paint.GetWidth(), paint.GetHeight());
|
||||
|
||||
printf("3");
|
||||
|
||||
paint.Clear(UNCOLORED);
|
||||
paint.DrawStringAt(30, 4, "e-Paper Demo", &Font16, COLORED);
|
||||
epd.SetFrameMemory(paint.GetImage(), 0, 30, paint.GetWidth(), paint.GetHeight());
|
||||
|
||||
|
||||
printf("4");
|
||||
paint.SetWidth(64);
|
||||
paint.SetHeight(64);
|
||||
|
||||
paint.Clear(UNCOLORED);
|
||||
paint.DrawRectangle(0, 0, 40, 50, COLORED);
|
||||
paint.DrawLine(0, 0, 40, 50, COLORED);
|
||||
paint.DrawLine(40, 0, 0, 50, COLORED);
|
||||
epd.SetFrameMemory(paint.GetImage(), 16, 60, paint.GetWidth(), paint.GetHeight());
|
||||
|
||||
printf("5");
|
||||
paint.Clear(UNCOLORED);
|
||||
paint.DrawCircle(32, 32, 30, COLORED);
|
||||
epd.SetFrameMemory(paint.GetImage(), 120, 60, paint.GetWidth(), paint.GetHeight());
|
||||
|
||||
printf("6");
|
||||
paint.Clear(UNCOLORED);
|
||||
paint.DrawFilledRectangle(0, 0, 40, 50, COLORED);
|
||||
epd.SetFrameMemory(paint.GetImage(), 16, 130, paint.GetWidth(), paint.GetHeight());
|
||||
|
||||
printf("7");
|
||||
paint.Clear(UNCOLORED);
|
||||
paint.DrawFilledCircle(32, 32, 30, COLORED);
|
||||
epd.SetFrameMemory(paint.GetImage(), 120, 130, paint.GetWidth(), paint.GetHeight());
|
||||
epd.DisplayFrame();
|
||||
|
||||
// delay(2000);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* there are 2 memory areas embedded in the e-paper display
|
||||
* and once the display is refreshed, the memory area will be auto-toggled,
|
||||
* i.e. the next action of SetFrameMemory will set the other memory area
|
||||
* therefore you have to set the frame memory and refresh the display twice.
|
||||
*/
|
||||
// epd.SetFrameMemory(IMAGE_DATA);
|
||||
// epd.DisplayFrame();
|
||||
// epd.SetFrameMemory(IMAGE_DATA);
|
||||
// epd.DisplayFrame();
|
||||
}
|
||||
|
||||
void loop (void)
|
||||
|
@ -136,29 +84,28 @@ void loop (void)
|
|||
char time_string[] = {'0', '0', ':', '0', '0', '\0'};
|
||||
|
||||
second ++;
|
||||
if (second == 2) {
|
||||
if (epd.Init(lut_partial_update) != 0) {
|
||||
printf("e-Paper init failed");
|
||||
return;
|
||||
}
|
||||
epd.SetFrameMemory(IMAGE_DATA);
|
||||
epd.DisplayFrame();
|
||||
epd.SetFrameMemory(IMAGE_DATA);
|
||||
epd.DisplayFrame();
|
||||
printf("init end\n");
|
||||
}
|
||||
time_string[0] = second / 60 / 10 + '0';
|
||||
time_string[1] = second / 60 % 10 + '0';
|
||||
time_string[3] = second % 60 / 10 + '0';
|
||||
time_string[4] = second % 60 % 10 + '0';
|
||||
paint.SetWidth(32);
|
||||
paint.SetHeight(96);
|
||||
paint.SetRotate(ROTATE_270);
|
||||
if(second==-1){
|
||||
epd.SetFrameMemory(IMAGE_DATA);
|
||||
epd.DisplayFrame();
|
||||
}
|
||||
if(second==0){
|
||||
epd.SetFrameMemory(IMAGE_DATA);
|
||||
epd.DisplayFrame();
|
||||
}
|
||||
if(second > 0){
|
||||
time_string[0] = second / 60 / 10 + '0';
|
||||
time_string[1] = second / 60 % 10 + '0';
|
||||
time_string[3] = second % 60 / 10 + '0';
|
||||
time_string[4] = second % 60 % 10 + '0';
|
||||
|
||||
paint.Clear(UNCOLORED);
|
||||
paint.DrawStringAt(0, 4, time_string, &Font24, COLORED);
|
||||
epd.SetFrameMemory(paint.GetImage(), 80, 72, paint.GetWidth(), paint.GetHeight());
|
||||
epd.DisplayFrame();
|
||||
|
||||
paint.SetWidth(32);
|
||||
paint.SetHeight(96);
|
||||
paint.SetRotate(ROTATE_270);
|
||||
|
||||
paint.Clear(UNCOLORED);
|
||||
paint.DrawStringAt(0, 4, time_string, &Font24, COLORED);
|
||||
epd.SetFrameMemory(paint.GetImage(), 80, 72, paint.GetWidth(), paint.GetHeight());
|
||||
epd.DisplayFrame();
|
||||
}
|
||||
printf("%d ",second);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue