From d6e11eaae6938f82bf40c0cbdd199ce68b07ae5c Mon Sep 17 00:00:00 2001
From: SSYYL <1032789891@qq.com>
Date: Tue, 8 Feb 2022 10:28:56 +0800
Subject: [PATCH] Added fast refresh and improved partial refresh effect to the
4.2inch e-Paper
---
Arduino/epd4in2/epd4in2.cpp | 115 +-
.../c/examples/EPD_4in2_test.c | 53 +-
RaspberryPi_JetsonNano/c/examples/main.c | 4 +-
.../c/lib/e-Paper/EPD_4in2.c | 395 ++--
.../c/lib/e-Paper/EPD_4in2.h | 3 +-
.../python/examples/epd_4in2_test.py | 18 +-
.../python/lib/waveshare_epd/epd4in2.py | 392 ++--
.../MDK-ARM/epd-demo.uvguix.liuyujian | 1910 +++++++++++++++++
STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvoptx | 7 +-
STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvprojx | 3 +-
.../MDK-ARM/epd-demo/epd-demo.build_log.htm | 49 +-
.../MDK-ARM/epd-demo/epd-demo.htm | 1228 ++++++-----
.../MDK-ARM/epd-demo/epd-demo.map | 874 ++++----
.../MDK-ARM/startup_stm32f103xe.lst | 10 +-
STM32/STM32-F103ZET6/Src/main.c | 2 +-
.../User/Examples/EPD_4in2_test.c | 94 +-
STM32/STM32-F103ZET6/User/e-Paper/EPD_4in2.c | 779 +++----
STM32/STM32-F103ZET6/User/e-Paper/EPD_4in2.h | 5 +-
18 files changed, 4070 insertions(+), 1871 deletions(-)
create mode 100644 STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvguix.liuyujian
diff --git a/Arduino/epd4in2/epd4in2.cpp b/Arduino/epd4in2/epd4in2.cpp
index 57f730d..f9e10ca 100644
--- a/Arduino/epd4in2/epd4in2.cpp
+++ b/Arduino/epd4in2/epd4in2.cpp
@@ -39,7 +39,6 @@ Epd::Epd() {
height = EPD_HEIGHT;
};
-
int Epd::Init(void) {
/* this calls the peripheral hardware interface, see epdif */
if (IfInit() != 0) {
@@ -47,23 +46,38 @@ int Epd::Init(void) {
}
/* EPD hardware init start */
Reset();
- SendCommand(POWER_SETTING);
+ SendCommand(0x01);
SendData(0x03); // VDS_EN, VDG_EN
SendData(0x00); // VCOM_HV, VGHL_LV[1], VGHL_LV[0]
SendData(0x2b); // VDH
SendData(0x2b); // VDL
- SendData(0xff); // VDHR
- SendCommand(BOOSTER_SOFT_START);
+
+ SendCommand(0x06);
SendData(0x17);
SendData(0x17);
SendData(0x17); //07 0f 17 1f 27 2F 37 2f
- SendCommand(POWER_ON);
+ SendCommand(0x04);
WaitUntilIdle();
- SendCommand(PANEL_SETTING);
+ SendCommand(0x00);
SendData(0xbf); // KW-BF KWR-AF BWROTP 0f
- SendData(0x0b);
- SendCommand(PLL_CONTROL);
+
+ SendCommand(0x30);
SendData(0x3c); // 3A 100HZ 29 150Hz 39 200HZ 31 171HZ
+
+ SendCommand(0x61); // resolution setting
+ SendData(0x01);
+ SendData(0x90); //128
+ SendData(0x01); //
+ SendData(0x2c);
+
+ SendCommand(0x82); // vcom_DC setting
+ SendData(0x12);
+
+ SendCommand(0X50); // VCOM AND DATA INTERVAL SETTING
+ SendData(0x97); // 97white border 77black border VBDF 17|D7 VBDW 97 VBDB 57 VBDF F7 VBDW 77 VBDB 37 VBDR B7
+
+ SetLut();
+
/* EPD hardware init end */
return 0;
}
@@ -304,27 +318,27 @@ void Epd::Set_4GrayDisplay(const char *Image, int x, int y, int w, int l)
void Epd::SetLut(void) {
unsigned int count;
SendCommand(LUT_FOR_VCOM); //vcom
- for(count = 0; count < 44; count++) {
+ for(count = 0; count < 36; count++) {
SendData(lut_vcom0[count]);
}
SendCommand(LUT_WHITE_TO_WHITE); //ww --
- for(count = 0; count < 42; count++) {
+ for(count = 0; count < 36; count++) {
SendData(lut_ww[count]);
}
SendCommand(LUT_BLACK_TO_WHITE); //bw r
- for(count = 0; count < 42; count++) {
+ for(count = 0; count < 36; count++) {
SendData(lut_bw[count]);
}
SendCommand(LUT_WHITE_TO_BLACK); //wb w
- for(count = 0; count < 42; count++) {
+ for(count = 0; count < 36; count++) {
SendData(lut_bb[count]);
}
SendCommand(LUT_BLACK_TO_BLACK); //bb b
- for(count = 0; count < 42; count++) {
+ for(count = 0; count < 36; count++) {
SendData(lut_wb[count]);
}
}
@@ -387,9 +401,7 @@ void Epd::DisplayFrame(const unsigned char* frame_buffer) {
DelayMs(2);
}
- SetLut();
-
- SendCommand(DISPLAY_REFRESH);
+ SendCommand(0x12);
DelayMs(100);
WaitUntilIdle();
}
@@ -457,55 +469,56 @@ void Epd::Sleep() {
const unsigned char lut_vcom0[] =
{
-0x00, 0x17, 0x00, 0x00, 0x00, 0x02,
-0x00, 0x17, 0x17, 0x00, 0x00, 0x02,
-0x00, 0x0A, 0x01, 0x00, 0x00, 0x01,
-0x00, 0x0E, 0x0E, 0x00, 0x00, 0x02,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x08, 0x08, 0x00, 0x00, 0x02,
+ 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x01,
+ 0x00, 0x08, 0x08, 0x00, 0x00, 0x02,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
};
const unsigned char lut_ww[] ={
-0x40, 0x17, 0x00, 0x00, 0x00, 0x02,
-0x90, 0x17, 0x17, 0x00, 0x00, 0x02,
-0x40, 0x0A, 0x01, 0x00, 0x00, 0x01,
-0xA0, 0x0E, 0x0E, 0x00, 0x00, 0x02,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x50, 0x08, 0x08, 0x00, 0x00, 0x02,
+ 0x90, 0x0F, 0x0F, 0x00, 0x00, 0x01,
+ 0xA0, 0x08, 0x08, 0x00, 0x00, 0x02,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
const unsigned char lut_bw[] ={
-0x40, 0x17, 0x00, 0x00, 0x00, 0x02,
-0x90, 0x17, 0x17, 0x00, 0x00, 0x02,
-0x40, 0x0A, 0x01, 0x00, 0x00, 0x01,
-0xA0, 0x0E, 0x0E, 0x00, 0x00, 0x02,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x50, 0x08, 0x08, 0x00, 0x00, 0x02,
+ 0x90, 0x0F, 0x0F, 0x00, 0x00, 0x01,
+ 0xA0, 0x08, 0x08, 0x00, 0x00, 0x02,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
const unsigned char lut_bb[] ={
-0x80, 0x17, 0x00, 0x00, 0x00, 0x02,
-0x90, 0x17, 0x17, 0x00, 0x00, 0x02,
-0x80, 0x0A, 0x01, 0x00, 0x00, 0x01,
-0x50, 0x0E, 0x0E, 0x00, 0x00, 0x02,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xA0, 0x08, 0x08, 0x00, 0x00, 0x02,
+ 0x90, 0x0F, 0x0F, 0x00, 0x00, 0x01,
+ 0x50, 0x08, 0x08, 0x00, 0x00, 0x02,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
const unsigned char lut_wb[] ={
-0x80, 0x17, 0x00, 0x00, 0x00, 0x02,
-0x90, 0x17, 0x17, 0x00, 0x00, 0x02,
-0x80, 0x0A, 0x01, 0x00, 0x00, 0x01,
-0x50, 0x0E, 0x0E, 0x00, 0x00, 0x02,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x20, 0x08, 0x08, 0x00, 0x00, 0x02,
+ 0x90, 0x0F, 0x0F, 0x00, 0x00, 0x01,
+ 0x10, 0x08, 0x08, 0x00, 0x00, 0x02,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
diff --git a/RaspberryPi_JetsonNano/c/examples/EPD_4in2_test.c b/RaspberryPi_JetsonNano/c/examples/EPD_4in2_test.c
index b3facae..9e06e13 100644
--- a/RaspberryPi_JetsonNano/c/examples/EPD_4in2_test.c
+++ b/RaspberryPi_JetsonNano/c/examples/EPD_4in2_test.c
@@ -30,6 +30,7 @@
#include "EPD_Test.h"
#include "EPD_4in2.h"
#include
+#include
int EPD_4in2_test(void)
{
@@ -39,9 +40,14 @@ int EPD_4in2_test(void)
}
printf("e-Paper Init and Clear...\r\n");
- EPD_4IN2_Init();
+ EPD_4IN2_Init_Fast();
+
+ struct timespec start={0,0}, finish={0,0};
+ clock_gettime(CLOCK_REALTIME,&start);
EPD_4IN2_Clear();
DEV_Delay_ms(500);
+ clock_gettime(CLOCK_REALTIME,&finish);
+ Debug("%ld S\r\n",finish.tv_sec-start.tv_sec);
//Create a new image cache
UBYTE *BlackImage;
@@ -56,6 +62,9 @@ int EPD_4in2_test(void)
#if 1 // show bmp
+
+ EPD_4IN2_Init_Fast();
+
printf("show window BMP-----------------\r\n");
Paint_SelectImage(BlackImage);
Paint_Clear(WHITE);
@@ -68,9 +77,10 @@ int EPD_4in2_test(void)
GUI_ReadBmp("./pic/4in2.bmp", 0, 0);
EPD_4IN2_Display(BlackImage);
DEV_Delay_ms(2000);
+
#endif
-#if 0 // show image for array
+#if 1 // show image for array
printf("show image for array\r\n");
Paint_SelectImage(BlackImage);
Paint_Clear(WHITE);
@@ -79,7 +89,7 @@ int EPD_4in2_test(void)
DEV_Delay_ms(500);
#endif
-#if 1 // Drawing on the image
+#if 1 // Drawing on the image
//1.Select Image
printf("SelectImage:BlackImage\r\n");
Paint_SelectImage(BlackImage);
@@ -102,15 +112,18 @@ int EPD_4in2_test(void)
Paint_DrawString_EN(10, 20, "hello world", &Font12, WHITE, BLACK);
Paint_DrawNum(10, 33, 123456789, &Font12, BLACK, WHITE);
Paint_DrawNum(10, 50, 987654321, &Font16, WHITE, BLACK);
- Paint_DrawString_CN(130, 0, " ÄãºÃabc", &Font12CN, BLACK, WHITE);
- Paint_DrawString_CN(130, 20, "΢ѩµç×Ó", &Font24CN, WHITE, BLACK);
+ Paint_DrawString_CN(130, 0, "���abc", &Font12CN, BLACK, WHITE);
+ Paint_DrawString_CN(130, 20, "΢ѩ����", &Font24CN, WHITE, BLACK);
printf("EPD_Display\r\n");
EPD_4IN2_Display(BlackImage);
DEV_Delay_ms(2000);
+
#endif
- printf("Support for partial refresh, but the refresh effect is not good, but it is not recommended\r\n");
+
#if 0
+ printf("Support for partial refresh, but the refresh effect is not good, but it is not recommended\r\n");
+ EPD_4IN2_Init_Partial();
printf("Partial refresh\r\n");
PAINT_TIME sPaint_time;
sPaint_time.Hour = 12;
@@ -142,6 +155,8 @@ int EPD_4in2_test(void)
}
}
#endif
+#if 1
+ EPD_4IN2_Init_Fast();
EPD_4IN2_Clear();
EPD_4IN2_Init_4Gray();
printf("show Gray------------------------\r\n");
@@ -155,7 +170,7 @@ int EPD_4in2_test(void)
Paint_NewImage(BlackImage, EPD_4IN2_WIDTH, EPD_4IN2_HEIGHT, 0, WHITE);
Paint_SetScale(4);
Paint_Clear(WHITE);
-#if 0
+
Paint_DrawPoint(10, 80, BLACK, DOT_PIXEL_1X1, DOT_STYLE_DFT);
Paint_DrawPoint(10, 90, BLACK, DOT_PIXEL_2X2, DOT_STYLE_DFT);
Paint_DrawPoint(10, 100, BLACK, DOT_PIXEL_3X3, DOT_STYLE_DFT);
@@ -171,24 +186,23 @@ int EPD_4in2_test(void)
Paint_DrawString_EN(10, 20, "hello world", &Font12, WHITE, BLACK);
Paint_DrawNum(10, 33, 123456789, &Font12, BLACK, WHITE);
Paint_DrawNum(10, 50, 987654321, &Font16, WHITE, BLACK);
- Paint_DrawString_CN(140, 0, "ÄãºÃabc", &Font12CN, GRAY1, GRAY4);
- Paint_DrawString_CN(140, 40, "ÄãºÃabc", &Font12CN, GRAY2, GRAY3);
- Paint_DrawString_CN(140, 80, "ÄãºÃabc", &Font12CN, GRAY3, GRAY2);
- Paint_DrawString_CN(140, 120, "ÄãºÃabc", &Font12CN, GRAY4, GRAY1);
+ Paint_DrawString_CN(140, 0, "���abc", &Font12CN, GRAY1, GRAY4);
+ Paint_DrawString_CN(140, 40, "���abc", &Font12CN, GRAY2, GRAY3);
+ Paint_DrawString_CN(140, 80, "���abc", &Font12CN, GRAY3, GRAY2);
+ Paint_DrawString_CN(140, 120, "���abc", &Font12CN, GRAY4, GRAY1);
- Paint_DrawString_CN(220, 0, "΢ѩµç×Ó", &Font24CN, GRAY1, GRAY4);
- Paint_DrawString_CN(220, 40, "΢ѩµç×Ó", &Font24CN, GRAY2, GRAY3);
- Paint_DrawString_CN(220, 80, "΢ѩµç×Ó", &Font24CN, GRAY3, GRAY2);
- Paint_DrawString_CN(220, 120, "΢ѩµç×Ó", &Font24CN, GRAY4, GRAY1);
+ Paint_DrawString_CN(220, 0, "΢ѩ����", &Font24CN, GRAY1, GRAY4);
+ Paint_DrawString_CN(220, 40, "΢ѩ����", &Font24CN, GRAY2, GRAY3);
+ Paint_DrawString_CN(220, 80, "΢ѩ����", &Font24CN, GRAY3, GRAY2);
+ Paint_DrawString_CN(220, 120, "΢ѩ����", &Font24CN, GRAY4, GRAY1);
EPD_4IN2_4GrayDisplay(BlackImage);
DEV_Delay_ms(2000);
-#endif
-#if 1
+
Paint_Clear(WHITE);
EPD_4IN2_4GrayDisplay(gImage_4in2_4Gray1);
DEV_Delay_ms(2000);
-
+
GUI_ReadBmp_4Gray("./pic/4in2_Scale.bmp",0 , 0);
EPD_4IN2_4GrayDisplay(BlackImage);
DEV_Delay_ms(2000);
@@ -198,8 +212,7 @@ int EPD_4in2_test(void)
EPD_4IN2_4GrayDisplay(BlackImage);
DEV_Delay_ms(2000);
#endif
- EPD_4IN2_Clear();
- EPD_4IN2_Init();
+ EPD_4IN2_Init_Fast();
EPD_4IN2_Clear();
printf("Goto Sleep...\r\n");
EPD_4IN2_Sleep();
diff --git a/RaspberryPi_JetsonNano/c/examples/main.c b/RaspberryPi_JetsonNano/c/examples/main.c
index 8db4650..55b5c31 100644
--- a/RaspberryPi_JetsonNano/c/examples/main.c
+++ b/RaspberryPi_JetsonNano/c/examples/main.c
@@ -44,7 +44,7 @@ int main(void)
// EPD_2in13_test();
// EPD_2in13_V2_test();
- EPD_2in13_V3_test();
+ // EPD_2in13_V3_test();
// EPD_2in13bc_test();
// EPD_2in13b_V3_test();
// EPD_2in13d_test();
@@ -53,7 +53,7 @@ int main(void)
// EPD_4in01f_test();
- // EPD_4in2_test();
+ EPD_4in2_test();
// EPD_4in2_V2_test();
// EPD_4in2bc_test();
// EPD_4in2b_V2_test();
diff --git a/RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_4in2.c b/RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_4in2.c
index 7ff7337..351f93a 100644
--- a/RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_4in2.c
+++ b/RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_4in2.c
@@ -113,173 +113,184 @@
#include "Debug.h"
static const unsigned char EPD_4IN2_lut_vcom0[] = {
- 0x00, 0x17, 0x00, 0x00, 0x00, 0x02,
- 0x00, 0x17, 0x17, 0x00, 0x00, 0x02,
- 0x00, 0x0A, 0x01, 0x00, 0x00, 0x01,
- 0x00, 0x0E, 0x0E, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
+ 0x00, 0x08, 0x08, 0x00, 0x00, 0x02,
+ 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x01,
+ 0x00, 0x08, 0x08, 0x00, 0x00, 0x02,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ };
static const unsigned char EPD_4IN2_lut_ww[] = {
- 0x40, 0x17, 0x00, 0x00, 0x00, 0x02,
- 0x90, 0x17, 0x17, 0x00, 0x00, 0x02,
- 0x40, 0x0A, 0x01, 0x00, 0x00, 0x01,
- 0xA0, 0x0E, 0x0E, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
+ 0x50, 0x08, 0x08, 0x00, 0x00, 0x02,
+ 0x90, 0x0F, 0x0F, 0x00, 0x00, 0x01,
+ 0xA0, 0x08, 0x08, 0x00, 0x00, 0x02,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ };
static const unsigned char EPD_4IN2_lut_bw[] = {
- 0x40, 0x17, 0x00, 0x00, 0x00, 0x02,
- 0x90, 0x17, 0x17, 0x00, 0x00, 0x02,
- 0x40, 0x0A, 0x01, 0x00, 0x00, 0x01,
- 0xA0, 0x0E, 0x0E, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
+ 0x50, 0x08, 0x08, 0x00, 0x00, 0x02,
+ 0x90, 0x0F, 0x0F, 0x00, 0x00, 0x01,
+ 0xA0, 0x08, 0x08, 0x00, 0x00, 0x02,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ };
static const unsigned char EPD_4IN2_lut_wb[] = {
- 0x80, 0x17, 0x00, 0x00, 0x00, 0x02,
- 0x90, 0x17, 0x17, 0x00, 0x00, 0x02,
- 0x80, 0x0A, 0x01, 0x00, 0x00, 0x01,
- 0x50, 0x0E, 0x0E, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
+ 0xA0, 0x08, 0x08, 0x00, 0x00, 0x02,
+ 0x90, 0x0F, 0x0F, 0x00, 0x00, 0x01,
+ 0x50, 0x08, 0x08, 0x00, 0x00, 0x02,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ };
static const unsigned char EPD_4IN2_lut_bb[] = {
- 0x80, 0x17, 0x00, 0x00, 0x00, 0x02,
- 0x90, 0x17, 0x17, 0x00, 0x00, 0x02,
- 0x80, 0x0A, 0x01, 0x00, 0x00, 0x01,
- 0x50, 0x0E, 0x0E, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-};
+ 0x20, 0x08, 0x08, 0x00, 0x00, 0x02,
+ 0x90, 0x0F, 0x0F, 0x00, 0x00, 0x01,
+ 0x10, 0x08, 0x08, 0x00, 0x00, 0x02,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ };
/******************************partial screen update LUT*********************************/
const unsigned char EPD_4IN2_Partial_lut_vcom1[] ={
-0x00 ,0x19 ,0x01 ,0x00 ,0x00 ,0x01,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00, };
+ 0x00, 0x01, 0x20, 0x01, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
const unsigned char EPD_4IN2_Partial_lut_ww1[] ={
-0x00 ,0x19 ,0x01 ,0x00 ,0x00 ,0x01,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,};
+ 0x00, 0x01, 0x20, 0x01, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
const unsigned char EPD_4IN2_Partial_lut_bw1[] ={
-0x80 ,0x19 ,0x01 ,0x00 ,0x00 ,0x01,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00, };
+ 0x20, 0x01, 0x20, 0x01, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
const unsigned char EPD_4IN2_Partial_lut_wb1[] ={
-0x40 ,0x19 ,0x01 ,0x00 ,0x00 ,0x01,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00, };
+ 0x10, 0x01, 0x20, 0x01, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+};
const unsigned char EPD_4IN2_Partial_lut_bb1[] ={
-0x00 ,0x19 ,0x01 ,0x00 ,0x00 ,0x01,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00, };
+ 0x00, 0x01,0x20, 0x01, 0x00, 0x01,
+ 0x00, 0x00,0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,0x00, 0x00, 0x00, 0x00,
+};
+
/******************************gray*********************************/
//0~3 gray
const unsigned char EPD_4IN2_4Gray_lut_vcom[] =
{
-0x00 ,0x0A ,0x00 ,0x00 ,0x00 ,0x01,
-0x60 ,0x14 ,0x14 ,0x00 ,0x00 ,0x01,
-0x00 ,0x14 ,0x00 ,0x00 ,0x00 ,0x01,
-0x00 ,0x13 ,0x0A ,0x01 ,0x00 ,0x01,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00
+ 0x00 ,0x0A ,0x00 ,0x00 ,0x00 ,0x01,
+ 0x60 ,0x14 ,0x14 ,0x00 ,0x00 ,0x01,
+ 0x00 ,0x14 ,0x00 ,0x00 ,0x00 ,0x01,
+ 0x00 ,0x13 ,0x0A ,0x01 ,0x00 ,0x01,
+ 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
+ 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
+ 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00
};
//R21
const unsigned char EPD_4IN2_4Gray_lut_ww[] ={
-0x40 ,0x0A ,0x00 ,0x00 ,0x00 ,0x01,
-0x90 ,0x14 ,0x14 ,0x00 ,0x00 ,0x01,
-0x10 ,0x14 ,0x0A ,0x00 ,0x00 ,0x01,
-0xA0 ,0x13 ,0x01 ,0x00 ,0x00 ,0x01,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
+ 0x40 ,0x0A ,0x00 ,0x00 ,0x00 ,0x01,
+ 0x90 ,0x14 ,0x14 ,0x00 ,0x00 ,0x01,
+ 0x10 ,0x14 ,0x0A ,0x00 ,0x00 ,0x01,
+ 0xA0 ,0x13 ,0x01 ,0x00 ,0x00 ,0x01,
+ 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
+ 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
+ 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
};
//R22H r
const unsigned char EPD_4IN2_4Gray_lut_bw[] ={
-0x40 ,0x0A ,0x00 ,0x00 ,0x00 ,0x01,
-0x90 ,0x14 ,0x14 ,0x00 ,0x00 ,0x01,
-0x00 ,0x14 ,0x0A ,0x00 ,0x00 ,0x01,
-0x99 ,0x0C ,0x01 ,0x03 ,0x04 ,0x01,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
+ 0x40 ,0x0A ,0x00 ,0x00 ,0x00 ,0x01,
+ 0x90 ,0x14 ,0x14 ,0x00 ,0x00 ,0x01,
+ 0x00 ,0x14 ,0x0A ,0x00 ,0x00 ,0x01,
+ 0x99 ,0x0C ,0x01 ,0x03 ,0x04 ,0x01,
+ 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
+ 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
+ 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
};
//R23H w
const unsigned char EPD_4IN2_4Gray_lut_wb[] ={
-0x40 ,0x0A ,0x00 ,0x00 ,0x00 ,0x01,
-0x90 ,0x14 ,0x14 ,0x00 ,0x00 ,0x01,
-0x00 ,0x14 ,0x0A ,0x00 ,0x00 ,0x01,
-0x99 ,0x0B ,0x04 ,0x04 ,0x01 ,0x01,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
+ 0x40 ,0x0A ,0x00 ,0x00 ,0x00 ,0x01,
+ 0x90 ,0x14 ,0x14 ,0x00 ,0x00 ,0x01,
+ 0x00 ,0x14 ,0x0A ,0x00 ,0x00 ,0x01,
+ 0x99 ,0x0B ,0x04 ,0x04 ,0x01 ,0x01,
+ 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
+ 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
+ 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
};
//R24H b
const unsigned char EPD_4IN2_4Gray_lut_bb[] ={
-0x80 ,0x0A ,0x00 ,0x00 ,0x00 ,0x01,
-0x90 ,0x14 ,0x14 ,0x00 ,0x00 ,0x01,
-0x20 ,0x14 ,0x0A ,0x00 ,0x00 ,0x01,
-0x50 ,0x13 ,0x01 ,0x00 ,0x00 ,0x01,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
-0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
+ 0x80 ,0x0A ,0x00 ,0x00 ,0x00 ,0x01,
+ 0x90 ,0x14 ,0x14 ,0x00 ,0x00 ,0x01,
+ 0x20 ,0x14 ,0x0A ,0x00 ,0x00 ,0x01,
+ 0x50 ,0x13 ,0x01 ,0x00 ,0x00 ,0x01,
+ 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
+ 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
+ 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
};
-
/******************************************************************************
function : Software reset
parameter:
******************************************************************************/
static void EPD_4IN2_Reset(void)
{
- DEV_Digital_Write(EPD_RST_PIN, 1);
- DEV_Delay_ms(20);
DEV_Digital_Write(EPD_RST_PIN, 0);
- DEV_Delay_ms(2);
+ DEV_Delay_ms(10);
DEV_Digital_Write(EPD_RST_PIN, 1);
- DEV_Delay_ms(20);
+ DEV_Delay_ms(10);
+
DEV_Digital_Write(EPD_RST_PIN, 0);
- DEV_Delay_ms(2);
+ DEV_Delay_ms(10);
DEV_Digital_Write(EPD_RST_PIN, 1);
- DEV_Delay_ms(20);
+ DEV_Delay_ms(10);
+
DEV_Digital_Write(EPD_RST_PIN, 0);
- DEV_Delay_ms(2);
+ DEV_Delay_ms(10);
DEV_Digital_Write(EPD_RST_PIN, 1);
- DEV_Delay_ms(20);
+ DEV_Delay_ms(10);
}
/******************************************************************************
@@ -338,35 +349,6 @@ static void EPD_4IN2_TurnOnDisplay(void)
function : set the look-up tables
parameter:
******************************************************************************/
-static void EPD_4IN2_SetLut(void)
-{
- UWORD count;
- EPD_4IN2_SendCommand(0x20); //g vcom
- for(count=0; count<44; count++) {
- EPD_4IN2_SendData(EPD_4IN2_lut_vcom0[count]);
- }
-
- EPD_4IN2_SendCommand(0x21);
- for(count=0; count<42; count++) {
- EPD_4IN2_SendData(EPD_4IN2_lut_ww[count]);
- }
-
- EPD_4IN2_SendCommand(0x22);
- for(count=0; count<42; count++) {
- EPD_4IN2_SendData(EPD_4IN2_lut_bw[count]);
- }
-
- EPD_4IN2_SendCommand(0x23);
- for(count=0; count<42; count++) {
- EPD_4IN2_SendData(EPD_4IN2_lut_wb[count]);
- }
-
- EPD_4IN2_SendCommand(0x24);
- for(count=0; count<42; count++) {
- EPD_4IN2_SendData(EPD_4IN2_lut_bb[count]);
- }
-}
-
static void EPD_4IN2_Partial_SetLut(void)
{
unsigned int count;
@@ -388,7 +370,31 @@ static void EPD_4IN2_Partial_SetLut(void)
EPD_4IN2_SendCommand(0x24);
for(count=0;count<42;count++)
- {EPD_4IN2_SendData(EPD_4IN2_Partial_lut_bb1[count]);}
+ {EPD_4IN2_SendData(EPD_4IN2_Partial_lut_bb1[count]);}
+}
+
+static void EPD_4IN2_SetLut(void)
+{
+ unsigned int count;
+ EPD_4IN2_SendCommand(0x20);
+ for(count=0;count<36;count++)
+ {EPD_4IN2_SendData(EPD_4IN2_lut_vcom0[count]);}
+
+ EPD_4IN2_SendCommand(0x21);
+ for(count=0;count<36;count++)
+ {EPD_4IN2_SendData(EPD_4IN2_lut_ww[count]);}
+
+ EPD_4IN2_SendCommand(0x22);
+ for(count=0;count<36;count++)
+ {EPD_4IN2_SendData(EPD_4IN2_lut_bw[count]);}
+
+ EPD_4IN2_SendCommand(0x23);
+ for(count=0;count<36;count++)
+ {EPD_4IN2_SendData(EPD_4IN2_lut_wb[count]);}
+
+ EPD_4IN2_SendCommand(0x24);
+ for(count=0;count<36;count++)
+ {EPD_4IN2_SendData(EPD_4IN2_lut_bb[count]);}
}
//LUT download
@@ -425,7 +431,8 @@ static void EPD_4IN2_4Gray_lut(void)
function : Initialize the e-Paper register
parameter:
******************************************************************************/
-void EPD_4IN2_Init(void)
+
+void EPD_4IN2_Init_Partial(void)
{
EPD_4IN2_Reset();
@@ -445,7 +452,6 @@ void EPD_4IN2_Init(void)
EPD_4IN2_SendCommand(0x00); // panel setting
EPD_4IN2_SendData(0xbf); // KW-BF KWR-AF BWROTP 0f BWOTP 1f
- EPD_4IN2_SendData(0x0d);
EPD_4IN2_SendCommand(0x30); // PLL setting
EPD_4IN2_SendData(0x3C); // 3A 100HZ 29 150Hz 39 200HZ 31 171HZ
@@ -457,14 +463,56 @@ void EPD_4IN2_Init(void)
EPD_4IN2_SendData(0x2c);
EPD_4IN2_SendCommand(0x82); // vcom_DC setting
- EPD_4IN2_SendData(0x28);
+ EPD_4IN2_SendData(0x12);
EPD_4IN2_SendCommand(0X50); // VCOM AND DATA INTERVAL SETTING
- EPD_4IN2_SendData(0x97); // 97white border 77black border VBDF 17|D7 VBDW 97 VBDB 57 VBDF F7 VBDW 77 VBDB 37 VBDR B7
+ EPD_4IN2_SendData(0x07); // 97white border 77black border VBDF 17|D7 VBDW 97 VBDB 57 VBDF F7 VBDW 77 VBDB 37 VBDR B7
- EPD_4IN2_SetLut();
+ EPD_4IN2_Partial_SetLut();
}
+//UC8176C
+void EPD_4IN2_Init_Fast(void)
+{
+ EPD_4IN2_Reset();
+ EPD_4IN2_SendCommand(0x01); //POWER SETTING
+ EPD_4IN2_SendData (0x03);
+ EPD_4IN2_SendData (0x00);
+ EPD_4IN2_SendData (0x2b);
+ EPD_4IN2_SendData (0x2b);
+
+ EPD_4IN2_SendCommand(0x06); //boost soft start
+ EPD_4IN2_SendData (0x17); //A
+ EPD_4IN2_SendData (0x17); //B
+ EPD_4IN2_SendData (0x17); //C
+
+ EPD_4IN2_SendCommand(0x04);
+ EPD_4IN2_ReadBusy();
+
+ EPD_4IN2_SendCommand(0x00); //panel setting
+ EPD_4IN2_SendData(0xbf); //KW-bf KWR-2F BWROTP 0f BWOTP 1f
+
+
+ EPD_4IN2_SendCommand(0x30);
+ EPD_4IN2_SendData (0x3c); // 3A 100HZ 29 150Hz 39 200HZ 31 171HZ
+
+ EPD_4IN2_SendCommand(0x61); //resolution setting
+ EPD_4IN2_SendData (0x01);
+ EPD_4IN2_SendData (0x90); //400
+ EPD_4IN2_SendData (0x01); //300
+ EPD_4IN2_SendData (0x2c);
+
+
+ EPD_4IN2_SendCommand(0x82); //vcom_DC setting
+ EPD_4IN2_SendData (0x12);
+
+ EPD_4IN2_SendCommand(0X50);
+ EPD_4IN2_SendData(0x97);
+
+ EPD_4IN2_SetLut();
+
+}
+
void EPD_4IN2_Init_4Gray(void)
{
EPD_4IN2_Reset();
@@ -524,8 +572,9 @@ void EPD_4IN2_Clear(void)
EPD_4IN2_SendData(0xFF);
}
}
+
EPD_4IN2_SendCommand(0x12); //DISPLAY REFRESH
- DEV_Delay_ms(10);
+ DEV_Delay_ms(1);
EPD_4IN2_TurnOnDisplay();
}
@@ -539,34 +588,37 @@ void EPD_4IN2_Display(UBYTE *Image)
Width = (EPD_4IN2_WIDTH % 8 == 0)? (EPD_4IN2_WIDTH / 8 ): (EPD_4IN2_WIDTH / 8 + 1);
Height = EPD_4IN2_HEIGHT;
+ EPD_4IN2_SendCommand(0x10);
+ for (UWORD j = 0; j < Height; j++) {
+ for (UWORD i = 0; i < Width; i++) {
+ EPD_4IN2_SendData(0x00);
+ }
+ }
+
EPD_4IN2_SendCommand(0x13);
for (UWORD j = 0; j < Height; j++) {
for (UWORD i = 0; i < Width; i++) {
EPD_4IN2_SendData(Image[i + j * Width]);
}
}
-
+
+ EPD_4IN2_SendCommand(0x12); //DISPLAY REFRESH
+ DEV_Delay_ms(10);
EPD_4IN2_TurnOnDisplay();
}
void EPD_4IN2_PartialDisplay(UWORD X_start,UWORD Y_start,UWORD X_end,UWORD Y_end, UBYTE *Image)
{
UWORD Width, Height;
+ static UBYTE DATA[EPD_4IN2_WIDTH * EPD_4IN2_HEIGHT / 8] = {0x00};
+
Width = (EPD_4IN2_WIDTH % 8 == 0)? (EPD_4IN2_WIDTH / 8 ): (EPD_4IN2_WIDTH / 8 + 1);
Height = EPD_4IN2_HEIGHT;
X_start = (X_start % 8 == 0)? (X_start): (X_start/8*8+8);
X_end = (X_end % 8 == 0)? (X_end): (X_end/8*8+8);
- EPD_4IN2_SendCommand(0X50);
- EPD_4IN2_SendData(0xf7);
- DEV_Delay_ms(100);
-
- EPD_4IN2_SendCommand(0x82); //vcom_DC setting
- EPD_4IN2_SendData (0x08);
- EPD_4IN2_SendCommand(0X50);
- EPD_4IN2_SendData(0x47);
- EPD_4IN2_Partial_SetLut();
+
EPD_4IN2_SendCommand(0x91); //This command makes the display enter partial mode
EPD_4IN2_SendCommand(0x90); //resolution setting
EPD_4IN2_SendData ((X_start)/256);
@@ -585,13 +637,14 @@ void EPD_4IN2_PartialDisplay(UWORD X_start,UWORD Y_start,UWORD X_end,UWORD Y_end
EPD_4IN2_SendCommand(0x10); //writes Old data to SRAM for programming
for (UWORD j = 0; j < Y_end - Y_start; j++) {
for (UWORD i = 0; i < (X_end - X_start)/8; i++) {
- EPD_4IN2_SendData(Image[(Y_start + j)*Width + X_start/8 + i]);
+ EPD_4IN2_SendData(DATA[(Y_start + j)*Width + X_start/8 + i]);
}
}
EPD_4IN2_SendCommand(0x13); //writes New data to SRAM.
for (UWORD j = 0; j < Y_end - Y_start; j++) {
for (UWORD i = 0; i < (X_end - X_start)/8; i++) {
EPD_4IN2_SendData(~Image[(Y_start + j)*Width + X_start/8 + i]);
+ DATA[(Y_start + j)*Width + X_start/8 + i] = ~Image[(Y_start + j)*Width + X_start/8 + i];
}
}
@@ -703,8 +756,12 @@ parameter:
******************************************************************************/
void EPD_4IN2_Sleep(void)
{
- // EPD_4IN2_SendCommand(0x02); // POWER_OFF
- // EPD_4IN2_ReadBusy();
+ EPD_4IN2_SendCommand(0x50); // DEEP_SLEEP
+ EPD_4IN2_SendData(0XF7);
+
+ EPD_4IN2_SendCommand(0x02); // POWER_OFF
+ EPD_4IN2_ReadBusy();
+
EPD_4IN2_SendCommand(0x07); // DEEP_SLEEP
EPD_4IN2_SendData(0XA5);
}
diff --git a/RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_4in2.h b/RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_4in2.h
index befdc5b..4feb2b1 100644
--- a/RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_4in2.h
+++ b/RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_4in2.h
@@ -118,7 +118,8 @@
#define EPD_4IN2_WIDTH 400
#define EPD_4IN2_HEIGHT 300
-void EPD_4IN2_Init(void);
+void EPD_4IN2_Init_Fast(void);
+void EPD_4IN2_Init_Partial(void);
void EPD_4IN2_Clear(void);
void EPD_4IN2_Display(UBYTE *Image);
void EPD_4IN2_Sleep(void);
diff --git a/RaspberryPi_JetsonNano/python/examples/epd_4in2_test.py b/RaspberryPi_JetsonNano/python/examples/epd_4in2_test.py
index 2bf5a03..0e70de9 100644
--- a/RaspberryPi_JetsonNano/python/examples/epd_4in2_test.py
+++ b/RaspberryPi_JetsonNano/python/examples/epd_4in2_test.py
@@ -78,18 +78,20 @@ try:
logging.info("Clear...")
epd.Clear()
- Himage3 = Image.new('1', (epd.width, epd.height), 0) # 255: clear the frame
- draw = ImageDraw.Draw(Himage3)
- print("Support for partial refresh, but the refresh effect is not good, but it is not recommended")
- print("Local refresh is off by default and is not recommended.")
if(0):
+ print("Support for partial refresh, but the refresh effect is not good, but it is not recommended")
+ print("Local refresh is off by default and is not recommended.")
+ Himage3 = Image.new('1', (epd.width, epd.height), 0) # 255: clear the frame
+ draw = ImageDraw.Draw(Himage3)
+ epd.init_Partial()
for j in range(0, int(20)):
- draw.rectangle((8, 80, 44, 155), fill = 0)
- draw.text((8, 80), str(j) , font = font35, fill = 1)
- draw.text((8, 120), str(20-j) , font = font35, fill = 1)
+ draw.rectangle((8, 80, 48, 155), fill = 255)
+ draw.text((8, 80), str(j) , font = font35, fill = 0)
+ draw.text((8, 120), str(20-j) , font = font35, fill = 0)
epd.EPD_4IN2_PartialDisplay(8, 80, 42, 155, epd.getbuffer(Himage3))
time.sleep(2);
-
+
+
'''4Gray display'''
logging.info("5.4Gray display--------------------------------")
epd.Init_4Gray()
diff --git a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd4in2.py b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd4in2.py
index 6fabd7f..08ce91f 100644
--- a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd4in2.py
+++ b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd4in2.py
@@ -1,5 +1,5 @@
# *****************************************************************************
-# * | File : epd4in2.py
+# * | File : epd4in2.py
# * | Author : Waveshare team
# * | Function : Electronic paper driver
# * | Info :
@@ -56,167 +56,179 @@ class EPD:
self.GRAY2 = GRAY2
self.GRAY3 = GRAY3 #gray
self.GRAY4 = GRAY4 #Blackest
+ self.DATA = [0x00] * 15000
lut_vcom0 = [
- 0x00, 0x17, 0x00, 0x00, 0x00, 0x02,
- 0x00, 0x17, 0x17, 0x00, 0x00, 0x02,
- 0x00, 0x0A, 0x01, 0x00, 0x00, 0x01,
- 0x00, 0x0E, 0x0E, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x08, 0x08, 0x00, 0x00, 0x02,
+ 0x00, 0x0F, 0x0F, 0x00, 0x00, 0x01,
+ 0x00, 0x08, 0x08, 0x00, 0x00, 0x02,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
]
lut_ww = [
- 0x40, 0x17, 0x00, 0x00, 0x00, 0x02,
- 0x90, 0x17, 0x17, 0x00, 0x00, 0x02,
- 0x40, 0x0A, 0x01, 0x00, 0x00, 0x01,
- 0xA0, 0x0E, 0x0E, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x50, 0x08, 0x08, 0x00, 0x00, 0x02,
+ 0x90, 0x0F, 0x0F, 0x00, 0x00, 0x01,
+ 0xA0, 0x08, 0x08, 0x00, 0x00, 0x02,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
]
lut_bw = [
- 0x40, 0x17, 0x00, 0x00, 0x00, 0x02,
- 0x90, 0x17, 0x17, 0x00, 0x00, 0x02,
- 0x40, 0x0A, 0x01, 0x00, 0x00, 0x01,
- 0xA0, 0x0E, 0x0E, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x50, 0x08, 0x08, 0x00, 0x00, 0x02,
+ 0x90, 0x0F, 0x0F, 0x00, 0x00, 0x01,
+ 0xA0, 0x08, 0x08, 0x00, 0x00, 0x02,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
]
lut_wb = [
- 0x80, 0x17, 0x00, 0x00, 0x00, 0x02,
- 0x90, 0x17, 0x17, 0x00, 0x00, 0x02,
- 0x80, 0x0A, 0x01, 0x00, 0x00, 0x01,
- 0x50, 0x0E, 0x0E, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0xA0, 0x08, 0x08, 0x00, 0x00, 0x02,
+ 0x90, 0x0F, 0x0F, 0x00, 0x00, 0x01,
+ 0x50, 0x08, 0x08, 0x00, 0x00, 0x02,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
]
lut_bb = [
- 0x80, 0x17, 0x00, 0x00, 0x00, 0x02,
- 0x90, 0x17, 0x17, 0x00, 0x00, 0x02,
- 0x80, 0x0A, 0x01, 0x00, 0x00, 0x01,
- 0x50, 0x0E, 0x0E, 0x00, 0x00, 0x02,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x20, 0x08, 0x08, 0x00, 0x00, 0x02,
+ 0x90, 0x0F, 0x0F, 0x00, 0x00, 0x01,
+ 0x10, 0x08, 0x08, 0x00, 0x00, 0x02,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
]
#******************************partial screen update LUT*********************************/
EPD_4IN2_Partial_lut_vcom1 =[
- 0x00 ,0x19 ,0x01 ,0x00 ,0x00 ,0x01,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00, ]
+ 0x00, 0x01, 0x20, 0x01, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ ]
EPD_4IN2_Partial_lut_ww1 =[
- 0x00 ,0x19 ,0x01 ,0x00 ,0x00 ,0x01,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,]
+ 0x00, 0x01, 0x20, 0x01, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ ]
EPD_4IN2_Partial_lut_bw1 =[
- 0x80 ,0x19 ,0x01 ,0x00 ,0x00 ,0x01,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00, ]
+ 0x20, 0x01, 0x20, 0x01, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ ]
EPD_4IN2_Partial_lut_wb1 =[
- 0x40 ,0x19 ,0x01 ,0x00 ,0x00 ,0x01,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00, ]
+ 0x10, 0x01, 0x20, 0x01, 0x00, 0x01,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ ]
EPD_4IN2_Partial_lut_bb1 =[
- 0x00 ,0x19 ,0x01 ,0x00 ,0x00 ,0x01,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00, ]
+ 0x00, 0x01,0x20, 0x01, 0x00, 0x01,
+ 0x00, 0x00,0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,0x00, 0x00, 0x00, 0x00,
+ ]
#******************************gray*********************************/
#0~3 gray
EPD_4IN2_4Gray_lut_vcom =[
- 0x00 ,0x0A ,0x00 ,0x00 ,0x00 ,0x01,
- 0x60 ,0x14 ,0x14 ,0x00 ,0x00 ,0x01,
- 0x00 ,0x14 ,0x00 ,0x00 ,0x00 ,0x01,
- 0x00 ,0x13 ,0x0A ,0x01 ,0x00 ,0x01,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00
+ 0x00 ,0x0A ,0x00 ,0x00 ,0x00 ,0x01,
+ 0x60 ,0x14 ,0x14 ,0x00 ,0x00 ,0x01,
+ 0x00 ,0x14 ,0x00 ,0x00 ,0x00 ,0x01,
+ 0x00 ,0x13 ,0x0A ,0x01 ,0x00 ,0x01,
+ 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
+ 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
+ 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00
]
#R21
EPD_4IN2_4Gray_lut_ww =[
- 0x40 ,0x0A ,0x00 ,0x00 ,0x00 ,0x01,
- 0x90 ,0x14 ,0x14 ,0x00 ,0x00 ,0x01,
- 0x10 ,0x14 ,0x0A ,0x00 ,0x00 ,0x01,
- 0xA0 ,0x13 ,0x01 ,0x00 ,0x00 ,0x01,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
+ 0x40 ,0x0A ,0x00 ,0x00 ,0x00 ,0x01,
+ 0x90 ,0x14 ,0x14 ,0x00 ,0x00 ,0x01,
+ 0x10 ,0x14 ,0x0A ,0x00 ,0x00 ,0x01,
+ 0xA0 ,0x13 ,0x01 ,0x00 ,0x00 ,0x01,
+ 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
+ 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
+ 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
]
- #R22H r
+ #R22H r
EPD_4IN2_4Gray_lut_bw =[
- 0x40 ,0x0A ,0x00 ,0x00 ,0x00 ,0x01,
- 0x90 ,0x14 ,0x14 ,0x00 ,0x00 ,0x01,
- 0x00 ,0x14 ,0x0A ,0x00 ,0x00 ,0x01,
- 0x99 ,0x0C ,0x01 ,0x03 ,0x04 ,0x01,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
+ 0x40 ,0x0A ,0x00 ,0x00 ,0x00 ,0x01,
+ 0x90 ,0x14 ,0x14 ,0x00 ,0x00 ,0x01,
+ 0x00 ,0x14 ,0x0A ,0x00 ,0x00 ,0x01,
+ 0x99 ,0x0C ,0x01 ,0x03 ,0x04 ,0x01,
+ 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
+ 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
+ 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
]
- #R23H w
+ #R23H w
EPD_4IN2_4Gray_lut_wb =[
- 0x40 ,0x0A ,0x00 ,0x00 ,0x00 ,0x01,
- 0x90 ,0x14 ,0x14 ,0x00 ,0x00 ,0x01,
- 0x00 ,0x14 ,0x0A ,0x00 ,0x00 ,0x01,
- 0x99 ,0x0B ,0x04 ,0x04 ,0x01 ,0x01,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
+ 0x40 ,0x0A ,0x00 ,0x00 ,0x00 ,0x01,
+ 0x90 ,0x14 ,0x14 ,0x00 ,0x00 ,0x01,
+ 0x00 ,0x14 ,0x0A ,0x00 ,0x00 ,0x01,
+ 0x99 ,0x0B ,0x04 ,0x04 ,0x01 ,0x01,
+ 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
+ 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
+ 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
]
- #R24H b
+ #R24H b
EPD_4IN2_4Gray_lut_bb =[
- 0x80 ,0x0A ,0x00 ,0x00 ,0x00 ,0x01,
- 0x90 ,0x14 ,0x14 ,0x00 ,0x00 ,0x01,
- 0x20 ,0x14 ,0x0A ,0x00 ,0x00 ,0x01,
- 0x50 ,0x13 ,0x01 ,0x00 ,0x00 ,0x01,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
- 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
+ 0x80 ,0x0A ,0x00 ,0x00 ,0x00 ,0x01,
+ 0x90 ,0x14 ,0x14 ,0x00 ,0x00 ,0x01,
+ 0x20 ,0x14 ,0x0A ,0x00 ,0x00 ,0x01,
+ 0x50 ,0x13 ,0x01 ,0x00 ,0x00 ,0x01,
+ 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
+ 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
+ 0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
]
# Hardware reset
def reset(self):
epdconfig.digital_write(self.reset_pin, 1)
- epdconfig.delay_ms(20)
+ epdconfig.delay_ms(10)
epdconfig.digital_write(self.reset_pin, 0)
- epdconfig.delay_ms(5)
+ epdconfig.delay_ms(10)
epdconfig.digital_write(self.reset_pin, 1)
- epdconfig.delay_ms(20)
+ epdconfig.delay_ms(10)
epdconfig.digital_write(self.reset_pin, 0)
- epdconfig.delay_ms(5)
+ epdconfig.delay_ms(10)
epdconfig.digital_write(self.reset_pin, 1)
- epdconfig.delay_ms(20)
+ epdconfig.delay_ms(10)
epdconfig.digital_write(self.reset_pin, 0)
- epdconfig.delay_ms(5)
+ epdconfig.delay_ms(10)
epdconfig.digital_write(self.reset_pin, 1)
- epdconfig.delay_ms(20)
+ epdconfig.delay_ms(10)
def send_command(self, command):
epdconfig.digital_write(self.dc_pin, 0)
@@ -238,33 +250,33 @@ class EPD:
def set_lut(self):
self.send_command(0x20) # vcom
- for count in range(0, 44):
+ for count in range(0, 36):
self.send_data(self.lut_vcom0[count])
self.send_command(0x21) # ww --
- for count in range(0, 42):
+ for count in range(0, 36):
self.send_data(self.lut_ww[count])
self.send_command(0x22) # bw r
- for count in range(0, 42):
+ for count in range(0, 36):
self.send_data(self.lut_bw[count])
self.send_command(0x23) # wb w
- for count in range(0, 42):
+ for count in range(0, 36):
self.send_data(self.lut_bb[count])
self.send_command(0x24) # bb b
- for count in range(0, 42):
+ for count in range(0, 36):
self.send_data(self.lut_wb[count])
def Partial_SetLut(self):
self.send_command(0x20);
- for count in range(0, 44):
+ for count in range(0, 44):
self.send_data(self.EPD_4IN2_Partial_lut_vcom1[count])
self.send_command(0x21);
- for count in range(0, 42):
+ for count in range(0, 42):
self.send_data(self.EPD_4IN2_Partial_lut_ww1[count])
self.send_command(0x22);
@@ -272,29 +284,29 @@ class EPD:
self.send_data(self.EPD_4IN2_Partial_lut_bw1[count])
self.send_command(0x23);
- for count in range(0, 42):
+ for count in range(0, 42):
self.send_data(self.EPD_4IN2_Partial_lut_wb1[count])
self.send_command(0x24);
- for count in range(0, 42):
+ for count in range(0, 42):
self.send_data(self.EPD_4IN2_Partial_lut_bb1[count])
def Gray_SetLut(self):
- self.send_command(0x20) #vcom
+ self.send_command(0x20) #vcom
for count in range(0, 42):
self.send_data(self.EPD_4IN2_4Gray_lut_vcom[count])
- self.send_command(0x21) #red not use
+ self.send_command(0x21) #red not use
for count in range(0, 42):
self.send_data(self.EPD_4IN2_4Gray_lut_ww[count])
- self.send_command(0x22) #bw r
+ self.send_command(0x22) #bw r
for count in range(0, 42):
self.send_data(self.EPD_4IN2_4Gray_lut_bw[count])
- self.send_command(0x23) #wb w
+ self.send_command(0x23) #wb w
for count in range(0, 42):
self.send_data(self.EPD_4IN2_4Gray_lut_wb[count])
@@ -302,7 +314,7 @@ class EPD:
for count in range(0, 42):
self.send_data(self.EPD_4IN2_4Gray_lut_bb[count])
- self.send_command(0x25) #vcom
+ self.send_command(0x25) #vcom
for count in range(0, 42):
self.send_data(self.EPD_4IN2_4Gray_lut_ww[count])
@@ -329,64 +341,105 @@ class EPD:
self.send_command(0x00) # panel setting
self.send_data(0xbf) # KW-BF KWR-AF BWROTP 0f
- self.send_data(0x0d)
self.send_command(0x30) # PLL setting
self.send_data(0x3c) # 3A 100HZ 29 150Hz 39 200HZ 31 171HZ
- self.send_command(0x61) # resolution setting
+ self.send_command(0x61) # resolution setting
self.send_data(0x01)
self.send_data(0x90) # 128
- self.send_data(0x01)
+ self.send_data(0x01)
self.send_data(0x2c)
- self.send_command(0x82) # vcom_DC setting
- self.send_data(0x28)
+ self.send_command(0x82) # vcom_DC setting
+ self.send_data(0x12)
- self.send_command(0X50) # VCOM AND DATA INTERVAL SETTING
- self.send_data(0x97) # 97white border 77black border VBDF 17|D7 VBDW 97 VBDB 57 VBDF F7 VBDW 77 VBDB 37 VBDR B7
+ self.send_command(0X50) # VCOM AND DATA INTERVAL SETTING
+ self.send_data(0x97) # 97white border 77black border VBDF 17|D7 VBDW 97 VBDB 57 VBDF F7 VBDW 77 VBDB 37 VBDR B7
self.set_lut()
# EPD hardware init end
return 0
+ def init_Partial(self):
+ if (epdconfig.module_init() != 0):
+ return -1
+ # EPD hardware init start
+ self.reset()
+
+ self.send_command(0x01) # POWER SETTING
+ self.send_data(0x03) # VDS_EN, VDG_EN
+ self.send_data(0x00) # VCOM_HV, VGHL_LV[1], VGHL_LV[0]
+ self.send_data(0x2b) # VDH
+ self.send_data(0x2b) # VDL
+
+ self.send_command(0x06) # boost soft start
+ self.send_data(0x17)
+ self.send_data(0x17)
+ self.send_data(0x17)
+
+ self.send_command(0x04) # POWER_ON
+ self.ReadBusy()
+
+ self.send_command(0x00) # panel setting
+ self.send_data(0xbf) # KW-BF KWR-AF BWROTP 0f
+
+ self.send_command(0x30) # PLL setting
+ self.send_data(0x3c) # 3A 100HZ 29 150Hz 39 200HZ 31 171HZ
+
+ self.send_command(0x61) # resolution setting
+ self.send_data(0x01)
+ self.send_data(0x90) # 128
+ self.send_data(0x01)
+ self.send_data(0x2c)
+
+ self.send_command(0x82) # vcom_DC setting
+ self.send_data(0x12)
+
+ self.send_command(0X50) # VCOM AND DATA INTERVAL SETTING
+ self.send_data(0x07) # 97white border 77black border VBDF 17|D7 VBDW 97 VBDB 57 VBDF F7 VBDW 77 VBDB 37 VBDR B7
+
+ self.Partial_SetLut();
+ # EPD hardware init end
+ return 0
+
def Init_4Gray(self):
if (epdconfig.module_init() != 0):
return -1
# EPD hardware init start
self.reset()
- self.send_command(0x01) #POWER SETTING
+ self.send_command(0x01) #POWER SETTING
self.send_data (0x03)
self.send_data (0x00) #VGH=20V,VGL=-20V
- self.send_data (0x2b) #VDH=15V
- self.send_data (0x2b) #VDL=-15V
+ self.send_data (0x2b) #VDH=15V
+ self.send_data (0x2b) #VDL=-15V
self.send_data (0x13)
self.send_command(0x06) #booster soft start
- self.send_data (0x17) #A
- self.send_data (0x17) #B
- self.send_data (0x17) #C
+ self.send_data (0x17) #A
+ self.send_data (0x17) #B
+ self.send_data (0x17) #C
self.send_command(0x04)
self.ReadBusy()
- self.send_command(0x00) #panel setting
- self.send_data(0x3f) #KW-3f KWR-2F BWROTP 0f BWOTP 1f
+ self.send_command(0x00) #panel setting
+ self.send_data(0x3f) #KW-3f KWR-2F BWROTP 0f BWOTP 1f
- self.send_command(0x30) #PLL setting
- self.send_data (0x3c) #100hz
+ self.send_command(0x30) #PLL setting
+ self.send_data (0x3c) #100hz
- self.send_command(0x61) #resolution setting
- self.send_data (0x01) #400
- self.send_data (0x90)
- self.send_data (0x01) #300
+ self.send_command(0x61) #resolution setting
+ self.send_data (0x01) #400
+ self.send_data (0x90)
+ self.send_data (0x01) #300
self.send_data (0x2c)
- self.send_command(0x82) #vcom_DC setting
+ self.send_command(0x82) #vcom_DC setting
self.send_data (0x12)
- self.send_command(0X50) #VCOM AND DATA INTERVAL SETTING
+ self.send_command(0X50) #VCOM AND DATA INTERVAL SETTING
self.send_data(0x97)
def getbuffer(self, image):
@@ -451,7 +504,7 @@ class EPD:
return buf
def display(self, image):
- self.send_command(0x92);
+ self.send_command(0x92);
self.set_lut();
self.send_command(0x10)
for i in range(0, int(self.width * self.height / 8)):
@@ -478,40 +531,41 @@ class EPD:
if(X_end % 8 != 0):
X_end = int(X_end/8)*8+8
- self.Partial_SetLut();
- self.send_command(0x91); #This command makes the display enter partial mode
- self.send_command(0x90); #resolution setting
+
+ self.send_command(0x91); #This command makes the display enter partial mode
+ self.send_command(0x90); #resolution setting
self.send_data (int(X_start/256));
self.send_data (int(X_start%256)); #x-start
- self.send_data (int(X_end /256));
+ self.send_data (int(X_end /256));
self.send_data (int(X_end %256)-1); #x-end
self.send_data (int(Y_start/256));
self.send_data (int(Y_start%256)); #y-start
- self.send_data (int(Y_end/256));
+ self.send_data (int(Y_end/256));
self.send_data (int(Y_end%256)-1); #y-end
- self.send_data (0x28);
+ self.send_data (0x28);
- self.send_command(0x10); #writes Old data to SRAM for programming
+ self.send_command(0x10); #writes Old data to SRAM for programming
for j in range(0, int(Y_end - Y_start)):
for i in range(0, int(X_end/8) - int(X_start/8)):
- self.send_data(Image[(Y_start + j)*Width + int(X_start/8) + i]);
+ self.send_data(self.DATA[(Y_start + j)*Width + int(X_start/8) + i]);
- self.send_command(0x13); #writes New data to SRAM.
+ self.send_command(0x13); #writes New data to SRAM.
for j in range(0, int(Y_end - Y_start)):
for i in range(0, int(X_end/8) - int(X_start/8)):
self.send_data(~Image[(Y_start + j)*Width + int(X_start/8) + i]);
+ self.DATA[(Y_start + j)*Width + int(X_start/8) + i] = ~Image[(Y_start + j)*Width + int(X_start/8) + i]
- self.send_command(0x12); #DISPLAY REFRESH
+ self.send_command(0x12); #DISPLAY REFRESH
epdconfig.delay_ms(200) #The delay here is necessary, 200uS at least!!!
self.ReadBusy()
def display_4Gray(self, image):
- self.send_command(0x92);
+ self.send_command(0x92);
self.set_lut();
self.send_command(0x10)
for i in range(0, int(EPD_WIDTH * EPD_HEIGHT / 8)): # EPD_WIDTH * EPD_HEIGHT / 4
@@ -528,7 +582,7 @@ class EPD:
temp3 |= 0x01 #gray1
else: #0x40
temp3 |= 0x00 #gray2
- temp3 <<= 1
+ temp3 <<= 1
temp1 <<= 2
temp2 = temp1&0xC0
@@ -539,13 +593,13 @@ class EPD:
elif(temp2 == 0x80):
temp3 |= 0x01 #gray1
else : #0x40
- temp3 |= 0x00 #gray2
- if(j!=1 or k!=1):
+ temp3 |= 0x00 #gray2
+ if(j!=1 or k!=1):
temp3 <<= 1
temp1 <<= 2
self.send_data(temp3)
- self.send_command(0x13)
+ self.send_command(0x13)
for i in range(0, int(EPD_WIDTH * EPD_HEIGHT / 8)): #5808*4 46464
temp3=0
@@ -561,7 +615,7 @@ class EPD:
temp3 |= 0x00 #gray1
else: #0x40
temp3 |= 0x01 #gray2
- temp3 <<= 1
+ temp3 <<= 1
temp1 <<= 2
temp2 = temp1&0xC0
@@ -572,8 +626,8 @@ class EPD:
elif(temp2 == 0x80):
temp3 |= 0x00 #gray1
else: #0x40
- temp3 |= 0x01 #gray2
- if(j!=1 or k!=1):
+ temp3 |= 0x01 #gray2
+ if(j!=1 or k!=1):
temp3 <<= 1
temp1 <<= 2
self.send_data(temp3)
diff --git a/STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvguix.liuyujian b/STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvguix.liuyujian
new file mode 100644
index 0000000..9eefeab
--- /dev/null
+++ b/STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvguix.liuyujian
@@ -0,0 +1,1910 @@
+
+
+
+ -6.1
+
+ ### uVision Project, (C) Keil Software
+
+
+
+
+
+ 38003
+ Registers
+ 188 122
+
+
+ 346
+ Code Coverage
+ 1410 160
+
+
+ 204
+ Performance Analyzer
+ 1570
+
+
+
+
+
+ 35141
+ Event Statistics
+
+ 200 50 700
+
+
+ 1506
+ Symbols
+
+ 106 106 106
+
+
+ 1936
+ Watch 1
+
+ 200 133 133
+
+
+ 1937
+ Watch 2
+
+ 200 133 133
+
+
+ 1935
+ Call Stack + Locals
+
+ 200 133 133
+
+
+ 2506
+ Trace Data
+
+ 75 135 130 95 70 230 200 150
+
+
+ 466
+ Source Browser
+ 500
+ 300
+
+
+
+
+
+
+
+ 1
+ 1
+ 0
+ 0
+ -1
+
+
+
+
+
+
+ 44
+ 2
+ 3
+
+ -32000
+ -32000
+
+
+ -1
+ -1
+
+
+ 304
+ 1292
+ 2330
+ 1046
+
+
+
+ 0
+
+ 731
+ 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000005000000010000000100000048453A5CCFEEC4BF5C652D50617065725C436F64655C342E325C624B5C452D50617065725F636F64655C53544D33325C53544D33322D463130335A4554365C5372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF5B453A5CCFEEC4BF5C652D50617065725C436F64655C342E325C624B5C452D50617065725F636F64655C53544D33325C53544D33322D463130335A4554365C557365725C4578616D706C65735C4550445F34696E325F746573742E63000000000F4550445F34696E325F746573742E6300000000FFDC7800FFFFFFFF55453A5CCFEEC4BF5C652D50617065725C436F64655C342E325C624B5C452D50617065725F636F64655C53544D33325C53544D33322D463130335A4554365C557365725C652D50617065725C4550445F34696E322E68000000000A4550445F34696E322E68000000009CC1B600FFFFFFFF55453A5CCFEEC4BF5C652D50617065725C436F64655C342E325C624B5C452D50617065725F636F64655C53544D33325C53544D33322D463130335A4554365C557365725C652D50617065725C4550445F34696E322E63000000000A4550445F34696E322E6300000000BCA8E100FFFFFFFF55453A5CCFEEC4BF5C652D50617065725C436F64655C342E325C624B5C452D50617065725F636F64655C53544D33325C53544D33322D463130335A4554365C557365725C652D50617065725C4550445F37696E352E63000000000A4550445F37696E352E63000000009CC1B600FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000004401000066000000000A00009B040000
+
+
+
+ 0
+ Build
+
+ -1
+ -1
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 440100004F0000007007000015010000
+
+
+ 16
+ 5A010000710100001205000037020000
+
+
+
+ 1005
+ 1005
+ 1
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 03000000660000003D0100006B040000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 109
+ 109
+ 1
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 03000000660000003D0100006B040000
+
+
+ 16
+ 5A01000071010000D602000089040000
+
+
+
+ 1465
+ 1465
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 000000000503000070070000CB030000
+
+
+ 16
+ 5A010000710100001205000037020000
+
+
+
+ 1466
+ 1466
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 03000000080300006D0700009E030000
+
+
+ 16
+ 5A010000710100001205000037020000
+
+
+
+ 1467
+ 1467
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 03000000080300006D0700009E030000
+
+
+ 16
+ 5A010000710100001205000037020000
+
+
+
+ 1468
+ 1468
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 03000000080300006D0700009E030000
+
+
+ 16
+ 5A010000710100001205000037020000
+
+
+
+ 1506
+ 1506
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 16384
+ 0
+
+ 16
+ 33060000660000006D07000049010000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 1913
+ 1913
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 47010000660000006D070000FC000000
+
+
+ 16
+ 5A010000710100001205000037020000
+
+
+
+ 1935
+ 1935
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 32768
+ 0
+
+ 16
+ 03000000080300006D070000B2030000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 1936
+ 1936
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 03000000080300006D0700009E030000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 1937
+ 1937
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 03000000080300006D0700009E030000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 1939
+ 1939
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 03000000080300006D0700009E030000
+
+
+ 16
+ 5A010000710100001205000037020000
+
+
+
+ 1940
+ 1940
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 03000000080300006D0700009E030000
+
+
+ 16
+ 5A010000710100001205000037020000
+
+
+
+ 1941
+ 1941
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 03000000080300006D0700009E030000
+
+
+ 16
+ 5A010000710100001205000037020000
+
+
+
+ 1942
+ 1942
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 03000000080300006D0700009E030000
+
+
+ 16
+ 5A010000710100001205000037020000
+
+
+
+ 195
+ 195
+ 1
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 03000000660000003D0100006B040000
+
+
+ 16
+ 5A01000071010000D602000089040000
+
+
+
+ 196
+ 196
+ 1
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 03000000660000003D0100006B040000
+
+
+ 16
+ 5A01000071010000D602000089040000
+
+
+
+ 197
+ 197
+ 1
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 32768
+ 0
+
+ 16
+ 000000009C040000000A00004E050000
+
+
+ 16
+ 5A010000710100001205000037020000
+
+
+
+ 198
+ 198
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 32768
+ 0
+
+ 16
+ 00000000F102000070070000CB030000
+
+
+ 16
+ 5A010000710100001205000037020000
+
+
+
+ 199
+ 199
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 030000009F0400006D07000035050000
+
+
+ 16
+ 5A010000710100001205000037020000
+
+
+
+ 203
+ 203
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 8192
+ 0
+
+ 16
+ 44010000630000007007000015010000
+
+
+ 16
+ 5A010000710100001205000037020000
+
+
+
+ 204
+ 204
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 47010000660000006D070000FC000000
+
+
+ 16
+ 5A010000710100001205000037020000
+
+
+
+ 221
+ 221
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 00000000000000000000000000000000
+
+
+ 16
+ 0A0000000A0000006E0000006E000000
+
+
+
+ 2506
+ 2506
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 30060000630000007007000001030000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 2507
+ 2507
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 000000000503000070070000B7030000
+
+
+ 16
+ 5A010000710100001205000037020000
+
+
+
+ 343
+ 343
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 47010000660000006D070000FC000000
+
+
+ 16
+ 5A010000710100001205000037020000
+
+
+
+ 346
+ 346
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 47010000660000006D070000FC000000
+
+
+ 16
+ 5A010000710100001205000037020000
+
+
+
+ 35141
+ 35141
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 44010000630000007007000015010000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 35824
+ 35824
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 47010000660000006D070000FC000000
+
+
+ 16
+ 5A010000710100001205000037020000
+
+
+
+ 35885
+ 35885
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 35886
+ 35886
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 35887
+ 35887
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 35888
+ 35888
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 35889
+ 35889
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 35890
+ 35890
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 35891
+ 35891
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 35892
+ 35892
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 35893
+ 35893
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 35894
+ 35894
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 35895
+ 35895
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 35896
+ 35896
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 35897
+ 35897
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 35898
+ 35898
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 35899
+ 35899
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 35900
+ 35900
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 35901
+ 35901
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 35902
+ 35902
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 35903
+ 35903
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 35904
+ 35904
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 35905
+ 35905
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 38003
+ 38003
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 03000000660000003D010000B2030000
+
+
+ 16
+ 5A01000071010000D602000089040000
+
+
+
+ 38007
+ 38007
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 000000009C040000700700004E050000
+
+
+ 16
+ 5A010000710100001205000037020000
+
+
+
+ 436
+ 436
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 030000009F0400006D07000035050000
+
+
+ 16
+ 5A01000071010000D602000089040000
+
+
+
+ 437
+ 437
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 03000000080300006D0700009E030000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 440
+ 440
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 03000000080300006D0700009E030000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 463
+ 463
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 030000009F0400006D07000035050000
+
+
+ 16
+ 5A01000071010000D602000089040000
+
+
+
+ 466
+ 466
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 030000009F0400006D07000035050000
+
+
+ 16
+ 5A01000071010000D602000089040000
+
+
+
+ 470
+ 470
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 47010000660000006D070000FC000000
+
+
+ 16
+ 5A010000710100001205000037020000
+
+
+
+ 50000
+ 50000
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 50001
+ 50001
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 50002
+ 50002
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 50003
+ 50003
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 50004
+ 50004
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 50005
+ 50005
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 50006
+ 50006
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 50007
+ 50007
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 50008
+ 50008
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 50009
+ 50009
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 50010
+ 50010
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 50011
+ 50011
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 50012
+ 50012
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 50013
+ 50013
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 50014
+ 50014
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 50015
+ 50015
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 50016
+ 50016
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 50017
+ 50017
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 50018
+ 50018
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 50019
+ 50019
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 33060000660000006D0700001E020000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 59392
+ 59392
+ 1
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 8192
+ 0
+
+ 16
+ 0000000000000000C40300001C000000
+
+
+ 16
+ 0A0000000A0000006E0000006E000000
+
+
+
+ 59393
+ 0
+ 1
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 000000004E050000000A000061050000
+
+
+ 16
+ 0A0000000A0000006E0000006E000000
+
+
+
+ 59399
+ 59399
+ 1
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 8192
+ 1
+
+ 16
+ 000000001C000000E701000038000000
+
+
+ 16
+ 0A0000000A0000006E0000006E000000
+
+
+
+ 59400
+ 59400
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 8192
+ 2
+
+ 16
+ 00000000380000006F02000054000000
+
+
+ 16
+ 0A0000000A0000006E0000006E000000
+
+
+
+ 824
+ 824
+ 0
+ 0
+ 0
+ 0
+ 32767
+ 0
+ 4096
+ 0
+
+ 16
+ 03000000080300006D0700009E030000
+
+
+ 16
+ 5A010000710100009A02000084020000
+
+
+
+ 3312
+ 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF44010000150100007007000019010000000000000100001004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E6500200000000000005A010000710100001205000037020000440100004F00000070070000150100000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF2C0600004F0000003006000001030000000000000200001004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C30000018000400000000000005A010000710100009A02000084020000300600004F000000700700000103000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF400100004F0000004401000084040000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000005A010000710100009A02000084020000000000004F00000040010000840400000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000ED02000070070000F102000000000000010000100400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000800000000000005A010000710100009A0200008402000000000000F102000070070000CB03000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFB8030000F1020000BC030000CB03000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000084040000000A000088040000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000018000800000010000005A0100007101000012050000370200000000000088040000000A00004E0500000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000
+
+
+ 59392
+ File
+
+ 2529
+ 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000076F6C644461746196000000000000001400076F6C6444617461076C75745F626231036C75740B4550445F7374616E646279046C7574310D6C63645F63686B737461747573054465627567114153373334315F436F6E74726F6C4C656411434D445F55505F494D4147455F434F44450C525053444F574E494D41474511525053474554454E524F4C4C434F554E540D525053474554454D505459494409525053564552494659095250535345415243480A52505344454C434841520B52505347454E4552415445085250534D455247450C52505353544F5245434841520C52707353746F7265436865720C434D445F47454E45524154450000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000000180C8880000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000000000000010000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65FF7F0000
+
+
+ 1423
+ 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E1000000000000FFFFFFFF000100000000000000010000000000000001000000018001E1000000000000FFFFFFFF000100000000000000010000000000000001000000018003E1000000000000FFFFFFFF0001000000000000000100000000000000010000000180CD7F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF000000000000000000010000000000000001000000018023E1000000000000FFFFFFFF000100000000000000010000000000000001000000018022E1000000000000FFFFFFFF000100000000000000010000000000000001000000018025E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802BE1000000000000FFFFFFFF00010000000000000001000000000000000100000001802CE1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001807A8A000000000000FFFFFFFF00010000000000000001000000000000000100000001807B8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180D3B0000000000000FFFFFFFF000100000000000000010000000000000001000000018015B1000000000000FFFFFFFF0001000000000000000100000000000000010000000180F4B0000000000000FFFFFFFF000100000000000000010000000000000001000000018036B1000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FF88000000000000FFFFFFFF0001000000000000000100000000000000010000000180FE88000000000000FFFFFFFF00010000000000000001000000000000000100000001800B81000000000000FFFFFFFF00010000000000000001000000000000000100000001800C81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180F088000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE7F000000000000FFFFFFFF000100000000000000010000000000000001000000018024E1000000000000FFFFFFFF00010000000000000001000000000000000100000001800A81000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001802280000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C488000000000000FFFFFFFF0001000000000000000100000000000000010000000180C988000000000000FFFFFFFF0001000000000000000100000000000000010000000180C788000000000000FFFFFFFF0001000000000000000100000000000000010000000180C888000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180DD88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180FB7F000000000000FFFFFFFF000100000000000000010000000000000001000000
+
+
+ 1423
+ 2800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000000004000000000000000000000000000000000100000001000000018022E100000000000005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000000000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000000000C0000000000000000000000000000000001000000010000000180F4B00000000000000D000000000000000000000000000000000100000001000000018036B10000000000000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF880000000000000F0000000000000000000000000000000001000000010000000180FE880000000000001000000000000000000000000000000000010000000100000001800B810000000000001100000000000000000000000000000000010000000100000001800C810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F088000000000000130000000000000000000000000000000001000000010000000180EE7F00000000000014000000000000000000000000000000000100000001000000018024E10000000000001500000000000000000000000000000000010000000100000001800A810000000000001600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018022800000000000001700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000180000000000000000000000000000000001000000010000000180C988000000000000190000000000000000000000000000000001000000010000000180C7880000000000001A0000000000000000000000000000000001000000010000000180C8880000000000001B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180DD880000000000001C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001D000000000000000000000000000000000100000001000000
+
+
+
+ 59399
+ Build
+
+ 976
+ 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000086570642D64656D6F96000000000000000100086570642D64656D6F000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64FF7F0000
+
+
+ 583
+ 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000FFFFFFFF0001000000000000000100000000000000010000000180D07F000000000000FFFFFFFF00010000000000000001000000000000000100000001803080000000000000FFFFFFFF00010000000000000001000000000000000100000001809E8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D17F000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001804C8A000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001806680000000000000FFFFFFFF0001000000000000000100000000000000010000000180EB88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180C07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180B08A000000000000FFFFFFFF0001000000000000000100000000000000010000000180A801000000000000FFFFFFFF00010000000000000001000000000000000100000001807202000000000000FFFFFFFF0001000000000000000100000000000000010000000180BE01000000000000FFFFFFFF000100000000000000010000000000000001000000
+
+
+ 583
+ 1000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F000000000000000000000000000000000000000000000001000000010000000180D07F00000000000001000000000000000000000000000000000100000001000000018030800000000000000200000000000000000000000000000000010000000100000001809E8A000000000000030000000000000000000000000000000001000000010000000180D17F0000000000000400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000000500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001806680000000000000060000000000000000000000000000000001000000010000000180EB880000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000080000000000000000000000000000000001000000010000000180B08A000000000000090000000000000000000000000000000001000000010000000180A8010000000000000A000000000000000000000000000000000100000001000000018072020000000000000B0000000000000000000000000000000001000000010000000180BE010000000000000C000000000000000000000000000000000100000001000000
+
+
+
+ 59400
+ Debug
+
+ 2373
+ 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000000000000100000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000003400000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000000000001000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000000000000100000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000000000000100000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000000000000100000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F720100000000000000000000000100000001000000000000000000000001000000000000000000054465627567FF7F0000
+
+
+ 898
+ 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC88000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801780000000000000FFFFFFFF00010000000000000001000000000000000100000001801D80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001801A80000000000000FFFFFFFF00010000000000000001000000000000000100000001801B80000000000000FFFFFFFF0001000000000000000100000000000000010000000180E57F000000000000FFFFFFFF00010000000000000001000000000000000100000001801C80000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800089000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF0000000000000000000100000000000000010000000180E48B000000000000FFFFFFFF0001000000000000000100000000000000010000000180F07F000000000000FFFFFFFF0001000000000000000100000000000000010000000180E888000000000000FFFFFFFF00010000000000000001000000000000000100000001803B01000000000000FFFFFFFF0001000000000000000100000000000000010000000180BB8A000000000000FFFFFFFF0001000000000000000100000000000000010000000180D88B000000000000FFFFFFFF0001000000000000000100000000000000010000000180D28B000000000000FFFFFFFF00010000000000000001000000000000000100000001809307000000000000FFFFFFFF0001000000000000000100000000000000010000000180658A000000000000FFFFFFFF0001000000000000000100000000000000010000000180C18A000000000000FFFFFFFF0001000000000000000100000000000000010000000180EE8B000000000000FFFFFFFF00010000000000000001000000000000000100000001800000000000000000FFFFFFFF00000000000000000001000000000000000100000001800189000000000000FFFFFFFF000100000000000000010000000000000001000000
+
+
+ 898
+ 1900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000000000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000000100000000000000000000000000000000010000000100000001801D800000000000000200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000000300000000000000000000000000000000010000000100000001801B80000000000000040000000000000000000000000000000001000000010000000180E57F0000000000000500000000000000000000000000000000010000000100000001801C800000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000000700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B000000000000080000000000000000000000000000000001000000010000000180F07F000000000000090000000000000000000000000000000001000000010000000180E8880000000000000A00000000000000000000000000000000010000000100000001803B010000000000000B0000000000000000000000000000000001000000010000000180BB8A0000000000000C0000000000000000000000000000000001000000010000000180D88B0000000000000D0000000000000000000000000000000001000000010000000180D28B0000000000000E000000000000000000000000000000000100000001000000018093070000000000000F0000000000000000000000000000000001000000010000000180658A000000000000100000000000000000000000000000000001000000010000000180C18A000000000000110000000000000000000000000000000001000000010000000180EE8B0000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180018900000000000013000000000000000000000000000000000100000001000000
+
+
+
+ 0
+ 2560
+ 1440
+
+
+
+
+
+ 1
+ 0
+
+ 100
+ 1
+
+ ../Src/main.c
+ 26
+ 100
+ 112
+ 1
+
+ 0
+
+
+ ..\User\Examples\EPD_4in2_test.c
+ 5
+ 51
+ 97
+ 1
+
+ 0
+
+
+ ..\User\e-Paper\EPD_4in2.h
+ 22
+ 69
+ 118
+ 1
+
+ 0
+
+
+ ..\User\e-Paper\EPD_4in2.c
+ 25
+ 430
+ 469
+ 1
+
+ 0
+
+
+ ..\User\e-Paper\EPD_7in5.c
+ 0
+ 46
+ 1
+ 1
+
+ 0
+
+
+
+
+
diff --git a/STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvoptx b/STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvoptx
index 22f3dc0..c02549a 100644
--- a/STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvoptx
+++ b/STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvoptx
@@ -145,7 +145,7 @@
0
ST-LINKIII-KEIL_SWO
- -U38FF6D064246373030270457 -O2254 -SF1800 -C0 -A0 -I0 -HNlocalhost -HP7184 -P2 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8004 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F10x_512 -FS08000000 -FL080000 -FP0($$Device:STM32F103ZE$Flash\STM32F10x_512.FLM)
+ -U50FF6E066675545724371487 -O2254 -SF1800 -C0 -A0 -I0 -HNlocalhost -HP7184 -P2 -N00("ARM CoreSight SW-DP") -D00(1BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8004 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F10x_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32F103ZE$Flash\STM32F10x_512.FLM)
@@ -234,6 +234,7 @@
1
+ 0
0
2
10000000
@@ -819,7 +820,7 @@
e-Paper
- 1
+ 0
0
0
0
@@ -1303,7 +1304,7 @@
GUI
- 1
+ 0
0
0
0
diff --git a/STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvprojx b/STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvprojx
index 3c03b75..2609c26 100644
--- a/STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvprojx
+++ b/STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvprojx
@@ -16,7 +16,7 @@
STM32F103ZE
STMicroelectronics
- Keil.STM32F1xx_DFP.2.3.0
+ Keil.STM32F1xx_DFP.2.1.0
http://www.keil.com/pack/
IRAM(0x20000000-0x2000FFFF) IROM(0x8000000-0x807FFFF) CLOCK(8000000) CPUTYPE("Cortex-M3")
@@ -184,6 +184,7 @@
0
0
0
+ 0
0
0
8
diff --git a/STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.build_log.htm b/STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.build_log.htm
index e34ea61..537d1e6 100644
--- a/STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.build_log.htm
+++ b/STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.build_log.htm
@@ -3,58 +3,61 @@
µVision Build Log
Tool Versions:
-IDE-Version: ¦ÌVision V5.25.2.0
+IDE-Version: ¦ÌVision V5.26.2.0
Copyright (C) 2018 ARM Ltd and ARM Germany GmbH. All rights reserved.
-License Information: ass ass, ass, LIC=JL2UH-W872P-CJR6Z-JYZTW-ESB48-R6YF4
+License Information: , , LIC=RC93N-YLJYL-JJH6S-LI3Z1-D1AV2-99PL8
Tool Versions:
-Toolchain: MDK-ARM Plus Version: 5.25.2.0
-Toolchain Path: D:\Program Files\keil5\ARM\ARMCC\Bin
+Toolchain: MDK-ARM Plus Version: 5.26.2.0
+Toolchain Path: D:\KEIL\azwz\ARM\ARMCC\Bin
C Compiler: Armcc.exe V5.06 update 6 (build 750)
Assembler: Armasm.exe V5.06 update 6 (build 750)
Linker/Locator: ArmLink.exe V5.06 update 6 (build 750)
Library Manager: ArmAr.exe V5.06 update 6 (build 750)
Hex Converter: FromElf.exe V5.06 update 6 (build 750)
-CPU DLL: SARMCM3.DLL V5.25.2.0
-Dialog DLL: DCM.DLL V1.17.1.0
-Target DLL: STLink\ST-LINKIII-KEIL_SWO.dll V3.0.1.0
-Dialog DLL: TCM.DLL V1.35.1.0
+CPU DLL: SARMCM3.DLL V5.26.2.0
+Dialog DLL: DCM.DLL V1.17.2.0
+Target DLL: STLink\ST-LINKIII-KEIL_SWO.dll V3.0.5.0
+Dialog DLL: TCM.DLL V1.36.1.0
Project:
-E:\github\E-Paper_code\STM32\STM32-F103ZET6\MDK-ARM\epd-demo.uvprojx
-Project File Date: 11/01/2021
+E:\ÏîÄ¿\e-Paper\Code\4.2\bK\E-Paper_code\STM32\STM32-F103ZET6\MDK-ARM\epd-demo.uvprojx
+Project File Date: 01/19/2022
Output:
-*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'D:\Program Files\keil5\ARM\ARMCC\Bin'
+*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'D:\KEIL\azwz\ARM\ARMCC\Bin'
Build target 'epd-demo'
-compiling EPD_2in66_test.c...
-compiling GUI_Paint.c...
+compiling EPD_4in2_test.c...
+compiling EPD_4in2.c...
+..\User\e-Paper\EPD_4in2.c(612): warning: #550-D: variable "Height" was set but never used
+ UWORD Width, Height;
+..\User\e-Paper\EPD_4in2.c: 1 warning, 0 errors
linking...
-Program Size: Code=24312 RO-data=21000 RW-data=76 ZI-data=41140
+Program Size: Code=25928 RO-data=56420 RW-data=68 ZI-data=56140
FromELF: creating hex file...
-"epd-demo\epd-demo.axf" - 0 Error(s), 0 Warning(s).
+"epd-demo\epd-demo.axf" - 0 Error(s), 1 Warning(s).
Software Packages used:
Package Vendor: ARM
- http://www.keil.com/pack/ARM.CMSIS.5.7.0.pack
- ARM.CMSIS.5.7.0
+ http://www.keil.com/pack/ARM.CMSIS.5.4.0.pack
+ ARM.CMSIS.5.4.0
CMSIS (Cortex Microcontroller Software Interface Standard)
- * Component: CORE Version: 5.4.0
+ * Component: CORE Version: 5.1.2
Package Vendor: Keil
- http://www.keil.com/pack/Keil.STM32F1xx_DFP.2.3.0.pack
- Keil.STM32F1xx_DFP.2.3.0
+ http://www.keil.com/pack/Keil.STM32F1xx_DFP.2.1.0.pack
+ Keil.STM32F1xx_DFP.2.1.0
STMicroelectronics STM32F1 Series Device Support, Drivers and Examples
Collection of Component include folders:
.\RTE\_epd-demo
- D:\Program Files\keil5\ARM\PACK\ARM\CMSIS\5.7.0\CMSIS\Core\Include
- D:\Program Files\keil5\ARM\PACK\Keil\STM32F1xx_DFP\2.3.0\Device\Include
+ D:\KEIL\azwz\ARM\PACK\ARM\CMSIS\5.4.0\CMSIS\Core\Include
+ D:\KEIL\azwz\ARM\PACK\Keil\STM32F1xx_DFP\2.1.0\Device\Include
Collection of Component Files used:
- * Component: ARM::CMSIS:CORE:5.4.0
+ * Component: ARM::CMSIS:CORE:5.1.2
Build Time Elapsed: 00:00:03
Static Call Graph for image epd-demo\epd-demo.axf
-
#<CALLGRAPH># ARM Linker, 5060750: Last Updated: Fri Dec 17 14:51:39 2021
+
#<CALLGRAPH># ARM Linker, 5060750: Last Updated: Wed Jan 19 17:15:55 2022
Maximum Stack Usage = 752 bytes + Unknown(Cycles, Untraceable Function Pointers)
Call chain for Maximum Stack Depth:
-main ⇒ EPD_2in66_test ⇒ Paint_DrawNum ⇒ Paint_DrawString_EN ⇒ Paint_DrawChar ⇒ Paint_SetPixel ⇒ __2printf
+main ⇒ EPD_4in2_test ⇒ Paint_DrawNum ⇒ Paint_DrawString_EN ⇒ Paint_DrawChar ⇒ Paint_SetPixel ⇒ __2printf
Mutually Recursive functions
@@ -133,25 +133,25 @@ Global Symbols
__main (Thumb, 0 bytes, Stack size unknown bytes, entry.o(.ARM.Collect$$$$00000000))
[Address Reference Count : 1]
- startup_stm32f103xe.o(.text)
-_main_stk (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))
+
_main_stk (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))
_main_scatterload (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
[Calls]
-__main_after_scatterload (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
+
__main_after_scatterload (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
[Called By]
-_main_clock (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
+
_main_clock (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
-
_main_cpp_init (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
+
_main_cpp_init (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
-
_main_init (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
+
_main_init (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
-
__rt_final_cpp (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D))
+
__rt_final_cpp (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D))
-
__rt_final_exit (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$0000000F))
+
__rt_final_exit (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$0000000F))
Reset_Handler (Thumb, 8 bytes, Stack size 0 bytes, startup_stm32f103xe.o(.text))
[Address Reference Count : 1]
- startup_stm32f103xe.o(RESET)
@@ -365,14 +365,14 @@ Global Symbols
main (Thumb, 36 bytes, Stack size 0 bytes, main.o(.text))
-
[Stack]
- Max Depth = 752
- Call Chain = main ⇒ EPD_2in66_test ⇒ Paint_DrawNum ⇒ Paint_DrawString_EN ⇒ Paint_DrawChar ⇒ Paint_SetPixel ⇒ __2printf
+
[Stack]- Max Depth = 752
- Call Chain = main ⇒ EPD_4in2_test ⇒ Paint_DrawNum ⇒ Paint_DrawString_EN ⇒ Paint_DrawChar ⇒ Paint_SetPixel ⇒ __2printf
[Calls]- >> MX_USART1_UART_Init
- >> MX_SPI1_Init
- >> MX_GPIO_Init
- >> HAL_Init
- >> HAL_Delay
-
- >> EPD_2in66_test
+
- >> EPD_4in2_test
- >> SystemClock_Config
[Address Reference Count : 1]- entry9a.o(.ARM.Collect$$$$0000000B)
@@ -406,7 +406,7 @@ Global Symbols
HAL_SPI_MspDeInit (Thumb, 28 bytes, Stack size 0 bytes, spi.o(.text), UNUSED)
[Calls]
-
[Called By]- >> HAL_SPI_DeInit
+
[Called By]
MX_USART1_UART_Init (Thumb, 48 bytes, Stack size 8 bytes, usart.o(.text))
@@ -424,15 +424,15 @@ Global Symbols
[Calls]
[Called By]- >> HAL_UART_Init
-
- >> HAL_MultiProcessor_Init
-
- >> HAL_LIN_Init
-
- >> HAL_HalfDuplex_Init
+
- >> HAL_MultiProcessor_Init
+
- >> HAL_LIN_Init
+
- >> HAL_HalfDuplex_Init
HAL_UART_MspDeInit (Thumb, 30 bytes, Stack size 0 bytes, usart.o(.text), UNUSED)
[Calls]
-
[Called By]- >> HAL_UART_DeInit
+
[Called By]
fputc (Thumb, 20 bytes, Stack size 16 bytes, usart.o(.text))
@@ -487,114 +487,146 @@ Global Symbols
[Address Reference Count : 1]- startup_stm32f103xe.o(RESET)
-HAL_MspInit (Thumb, 52 bytes, Stack size 8 bytes, stm32f1xx_hal_msp.o(.text))
+
HAL_MspInit (Thumb, 52 bytes, Stack size 8 bytes, stm32f1xx_hal_msp.o(.text))
[Stack]
- Max Depth = 8
- Call Chain = HAL_MspInit
[Called By]
-EPD_2in66_test (Thumb, 692 bytes, Stack size 48 bytes, epd_2in66_test.o(.text))
-
[Stack]