From dc44d5c38d56146d66360c57496e75f1e3248b38 Mon Sep 17 00:00:00 2001 From: SSYYL <1032789891@qq.com> Date: Tue, 10 Aug 2021 17:49:38 +0800 Subject: [PATCH 1/2] Fixed bug in Arduino 7in5_V2 driver --- Arduino/epd7in5_V2/epd7in5_V2.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Arduino/epd7in5_V2/epd7in5_V2.cpp b/Arduino/epd7in5_V2/epd7in5_V2.cpp index c129e90..242ed00 100644 --- a/Arduino/epd7in5_V2/epd7in5_V2.cpp +++ b/Arduino/epd7in5_V2/epd7in5_V2.cpp @@ -229,8 +229,8 @@ void Epd::DisplayFrame(const unsigned char* frame_buffer) { SendCommand(0x13); for (unsigned long j = 0; j < height; j++) { - for (unsigned long i = 0; i < width; i++) { - SendData(~frame_buffer[i + j * width]); + for (unsigned long i = 0; i < width/8; i++) { + SendData(~frame_buffer[i + j * width/8]); } } SendCommand(0x12); @@ -240,7 +240,6 @@ void Epd::DisplayFrame(const unsigned char* frame_buffer) { void Epd::Displaypart(const unsigned char* pbuffer, unsigned long xStart, unsigned long yStart,unsigned long Picture_Width,unsigned long Picture_Height) { SendCommand(0x13); - int * padd; // xStart = xStart/8; // xStart = xStart*8; for (unsigned long j = 0; j < height; j++) { From c28eca74819818d317b345b6da87ec639500601f Mon Sep 17 00:00:00 2001 From: SSYYL <1032789891@qq.com> Date: Wed, 11 Aug 2021 15:21:10 +0800 Subject: [PATCH 2/2] fix 1in54_V2 partial refresh abnormal --- Arduino/epd1in54_V2/epd1in54_V2.cpp | 24 ----- .../c/lib/e-Paper/EPD_1in54_V2.c | 32 +------ .../python/examples/epd_7in5_V2_test.py | 2 +- .../python/lib/waveshare_epd/epd1in54_V2.py | 51 +++-------- .../python/lib/waveshare_epd/epd2in9_V2.py | 2 +- .../python/lib/waveshare_epd/epd7in5_V2.py | 40 ++++----- RaspberryPi_JetsonNano/python/pic/01.bmp | Bin 0 -> 60120 bytes RaspberryPi_JetsonNano/python/pic/4.2-B.bmp | Bin 0 -> 15664 bytes RaspberryPi_JetsonNano/python/pic/4.2-R.bmp | Bin 0 -> 15664 bytes RaspberryPi_JetsonNano/python/pic/42.bmp | Bin 0 -> 60120 bytes .../MDK-ARM/epd-demo.uvguix.qiumingsong | 52 +++++------ STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvoptx | 4 +- .../MDK-ARM/epd-demo/epd-demo.build_log.htm | 3 +- .../MDK-ARM/epd-demo/epd-demo.htm | 2 +- .../MDK-ARM/epd-demo/epd-demo.map | 83 +++++++++--------- .../User/e-Paper/EPD_1in54_V2.c | 54 ++++-------- Version_CN.txt | 2 +- 17 files changed, 128 insertions(+), 223 deletions(-) create mode 100644 RaspberryPi_JetsonNano/python/pic/01.bmp create mode 100644 RaspberryPi_JetsonNano/python/pic/4.2-B.bmp create mode 100644 RaspberryPi_JetsonNano/python/pic/4.2-R.bmp create mode 100644 RaspberryPi_JetsonNano/python/pic/42.bmp diff --git a/Arduino/epd1in54_V2/epd1in54_V2.cpp b/Arduino/epd1in54_V2/epd1in54_V2.cpp index c071a20..7df047b 100644 --- a/Arduino/epd1in54_V2/epd1in54_V2.cpp +++ b/Arduino/epd1in54_V2/epd1in54_V2.cpp @@ -79,30 +79,6 @@ unsigned char WF_PARTIAL_1IN54_0[159] = 0x02,0x17,0x41,0xB0,0x32,0x28, }; -// waveform partial refresh(quality) -// unsigned char WF_PARTIAL_1IN54_1[159] = -// { -// 0x0,0x00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, -// 0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, -// 0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, -// 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, -// 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, -// 0xA,0x0,0x0,0x0,0x0,0x0,0x1, -// 0x1,0x0,0x0,0x0,0x0,0x0,0x0, -// 0x0,0x0,0x0,0x0,0x0,0x0,0x0, -// 0x0,0x0,0x0,0x0,0x0,0x0,0x0, -// 0x0,0x0,0x0,0x0,0x0,0x0,0x0, -// 0x0,0x0,0x0,0x0,0x0,0x0,0x0, -// 0x0,0x0,0x0,0x0,0x0,0x0,0x0, -// 0x0,0x0,0x0,0x0,0x0,0x0,0x0, -// 0x0,0x0,0x0,0x0,0x0,0x0,0x0, -// 0x0,0x0,0x0,0x0,0x0,0x0,0x0, -// 0x0,0x0,0x0,0x0,0x0,0x0,0x0, -// 0x0,0x0,0x0,0x0,0x0,0x0,0x0, -// 0x22,0x22,0x22,0x22,0x22,0x22,0x0,0x0,0x0, -// 0x22,0x17,0x41,0x0,0x32,0x20, -// }; - Epd::~Epd() { }; diff --git a/RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_1in54_V2.c b/RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_1in54_V2.c index c448037..928e368 100644 --- a/RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_1in54_V2.c +++ b/RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_1in54_V2.c @@ -78,30 +78,6 @@ unsigned char WF_PARTIAL_1IN54_0[159] = 0x02,0x17,0x41,0xB0,0x32,0x28, }; -// waveform partial refresh(quality) -unsigned char WF_PARTIAL_1IN54_1[159] = -{ -0x0,0x00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0xA,0x0,0x0,0x0,0x0,0x0,0x1, -0x1,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x22,0x22,0x22,0x22,0x22,0x22,0x0,0x0,0x0, -0x22,0x17,0x41,0x0,0x32,0x20, -}; - /****************************************************************************** function : Software reset parameter: @@ -109,11 +85,11 @@ parameter: static void EPD_1IN54_V2_Reset(void) { DEV_Digital_Write(EPD_RST_PIN, 1); - DEV_Delay_ms(200); + DEV_Delay_ms(20); DEV_Digital_Write(EPD_RST_PIN, 0); DEV_Delay_ms(2); DEV_Digital_Write(EPD_RST_PIN, 1); - DEV_Delay_ms(200); + DEV_Delay_ms(20); } /****************************************************************************** @@ -276,7 +252,7 @@ void EPD_1IN54_V2_Init_Partial(void) EPD_1IN54_V2_Reset(); EPD_1IN54_V2_ReadBusy(); - EPD_1IN54_V2_SetLut(WF_PARTIAL_1IN54_1); + EPD_1IN54_V2_SetLut(WF_PARTIAL_1IN54_0); EPD_1IN54_V2_SendCommand(0x37); EPD_1IN54_V2_SendData(0x00); EPD_1IN54_V2_SendData(0x00); @@ -382,7 +358,7 @@ void EPD_1IN54_V2_DisplayPart(UBYTE *Image) UWORD Width, Height; Width = (EPD_1IN54_V2_WIDTH % 8 == 0)? (EPD_1IN54_V2_WIDTH / 8 ): (EPD_1IN54_V2_WIDTH / 8 + 1); Height = EPD_1IN54_V2_HEIGHT; - + UDOUBLE Addr = 0; EPD_1IN54_V2_SendCommand(0x24); for (UWORD j = 0; j < Height; j++) { diff --git a/RaspberryPi_JetsonNano/python/examples/epd_7in5_V2_test.py b/RaspberryPi_JetsonNano/python/examples/epd_7in5_V2_test.py index d884510..38b0c78 100644 --- a/RaspberryPi_JetsonNano/python/examples/epd_7in5_V2_test.py +++ b/RaspberryPi_JetsonNano/python/examples/epd_7in5_V2_test.py @@ -32,7 +32,7 @@ try: draw = ImageDraw.Draw(Himage) draw.text((10, 0), 'hello world', font = font24, fill = 0) draw.text((10, 20), '7.5inch e-Paper', font = font24, fill = 0) - draw.text((150, 0), u'微雪电子', font = font24, fill = 0) + draw.text((150, 0), u'微雪电子', font = font24, fill = 0) draw.line((20, 50, 70, 100), fill = 0) draw.line((70, 50, 20, 100), fill = 0) draw.rectangle((20, 50, 70, 100), outline = 0) diff --git a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd1in54_V2.py b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd1in54_V2.py index 9719d7e..b489d9a 100644 --- a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd1in54_V2.py +++ b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd1in54_V2.py @@ -90,29 +90,6 @@ class EPD: 0x22,0x22,0x22,0x22,0x22,0x22,0x0,0x0,0x0, 0x02,0x17,0x41,0xB0,0x32,0x28, ] - - # waveform partial refresh(quality) - WF_PARTIAL_1IN54_1 = [ - 0x0,0x00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0xA,0x0,0x0,0x0,0x0,0x0,0x1, - 0x1,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x22,0x22,0x22,0x22,0x22,0x22,0x0,0x0,0x0, - 0x22,0x17,0x41,0x0,0x32,0x20, - ] # Hardware reset def reset(self): @@ -176,24 +153,24 @@ class EPD: self.send_data(lut[158]) def SetWindows(self, Xstart, Ystart, Xend, Yend): - self.send_command(0x44) # SET_RAM_X_ADDRESS_START_END_POSITION - self.send_data((Xstart>>3) & 0xFF) - self.send_data((Xend>>3) & 0xFF) + self.send_command(0x44); # SET_RAM_X_ADDRESS_START_END_POSITION + self.send_data((Xstart>>3) & 0xFF); + self.send_data((Xend>>3) & 0xFF); - self.send_command(0x45) # SET_RAM_Y_ADDRESS_START_END_POSITION - self.send_data(Ystart & 0xFF) - self.send_data((Ystart >> 8) & 0xFF) - self.send_data(Yend & 0xFF) - self.send_data((Yend >> 8) & 0xFF) + self.send_command(0x45); # SET_RAM_Y_ADDRESS_START_END_POSITION + self.send_data(Ystart & 0xFF); + self.send_data((Ystart >> 8) & 0xFF); + self.send_data(Yend & 0xFF); + self.send_data((Yend >> 8) & 0xFF); def SetCursor(self, Xstart, Ystart): - self.send_command(0x4E) # SET_RAM_X_ADDRESS_COUNTER - self.send_data(Xstart & 0xFF) + self.send_command(0x4E); # SET_RAM_X_ADDRESS_COUNTER + self.send_data(Xstart & 0xFF); - self.send_command(0x4F) # SET_RAM_Y_ADDRESS_COUNTER - self.send_data(Ystart & 0xFF) - self.send_data((Ystart >> 8) & 0xFF) + self.send_command(0x4F); # SET_RAM_Y_ADDRESS_COUNTER + self.send_data(Ystart & 0xFF); + self.send_data((Ystart >> 8) & 0xFF); def init(self, isPartial): if (epdconfig.module_init() != 0): @@ -315,7 +292,7 @@ class EPD: for i in range(0, int(self.width / 8)): self.send_data(image[i + j * int(self.width / 8)]) - self.TurnOnDisplayPart() + self.TurnOnDisplay() def displayPart(self, image): if (image == None): diff --git a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.py b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.py index d736c64..76d630e 100644 --- a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.py +++ b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.py @@ -51,7 +51,7 @@ class EPD: 0x40,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0A,0x0,0x0,0x0,0x0,0x0,0x2, + 0x0A,0x0,0x0,0x0,0x0,0x0,0x1, 0x1,0x0,0x0,0x0,0x0,0x0,0x0, 0x1,0x0,0x0,0x0,0x0,0x0,0x0, 0x0,0x0,0x0,0x0,0x0,0x0,0x0, diff --git a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd7in5_V2.py b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd7in5_V2.py index 32625fa..b1495ca 100644 --- a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd7in5_V2.py +++ b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd7in5_V2.py @@ -176,24 +176,24 @@ class EPD: # self.send_data(0x3f) #VDH=15V # self.send_data(0x3f) #VDL=-15V - self.send_command(0x01) # power setting - self.send_data(0x17) # 1-0=11: internal power - self.send_data(self.Voltage_Frame_7IN5_V2[6]) # VGH&VGL - self.send_data(self.Voltage_Frame_7IN5_V2[1]) # VSH - self.send_data(self.Voltage_Frame_7IN5_V2[2]) # VSL - self.send_data(self.Voltage_Frame_7IN5_V2[3]) # VSHR + self.send_command(0x01); # power setting + self.send_data(0x17); # 1-0=11: internal power + self.send_data(self.Voltage_Frame_7IN5_V2[6]); # VGH&VGL + self.send_data(self.Voltage_Frame_7IN5_V2[1]); # VSH + self.send_data(self.Voltage_Frame_7IN5_V2[2]); # VSL + self.send_data(self.Voltage_Frame_7IN5_V2[3]); # VSHR - self.send_command(0x82) # VCOM DC Setting - self.send_data(self.Voltage_Frame_7IN5_V2[4]) # VCOM + self.send_command(0x82); # VCOM DC Setting + self.send_data(self.Voltage_Frame_7IN5_V2[4]); # VCOM - self.send_command(0x06) # Booster Setting - self.send_data(0x27) - self.send_data(0x27) - self.send_data(0x2F) - self.send_data(0x17) + self.send_command(0x06); # Booster Setting + self.send_data(0x27); + self.send_data(0x27); + self.send_data(0x2F); + self.send_data(0x17); - self.send_command(0x30) # OSC Setting - self.send_data(self.Voltage_Frame_7IN5_V2[0]) # 2-0=100: N=4 5-3=111: M=7 3C=50Hz 3A=100HZ + self.send_command(0x30); # OSC Setting + self.send_data(self.Voltage_Frame_7IN5_V2[0]); # 2-0=100: N=4 ; 5-3=111: M=7 ; 3C=50Hz 3A=100HZ self.send_command(0x04) #POWER ON epdconfig.delay_ms(100) @@ -218,11 +218,11 @@ class EPD: self.send_command(0X60) #TCON SETTING self.send_data(0x22) - self.send_command(0x65) # Resolution setting - self.send_data(0x00) - self.send_data(0x00) # 800*480 - self.send_data(0x00) - self.send_data(0x00) + self.send_command(0x65); # Resolution setting + self.send_data(0x00); + self.send_data(0x00); # 800*480 + self.send_data(0x00); + self.send_data(0x00); self.SetLut(self.LUT_VCOM_7IN5_V2, self.LUT_WW_7IN5_V2, self.LUT_BW_7IN5_V2, self.LUT_WB_7IN5_V2, self.LUT_BB_7IN5_V2) # EPD hardware init end diff --git a/RaspberryPi_JetsonNano/python/pic/01.bmp b/RaspberryPi_JetsonNano/python/pic/01.bmp new file mode 100644 index 0000000000000000000000000000000000000000..de70694f7dbcdc5ec783751d3e83d26f76b4406a GIT binary patch literal 60120 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 Y7A-xO2;83tO#i=}`{C2E`9o3v7pz^y-2eap literal 0 HcmV?d00001 diff --git a/RaspberryPi_JetsonNano/python/pic/42.bmp b/RaspberryPi_JetsonNano/python/pic/42.bmp new file mode 100644 index 0000000000000000000000000000000000000000..301685d55c1c9e9aa60fc781914ba81113f86cc2 GIT binary patch literal 60120 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 V-GSYK-GSYK-GSYK=jg!U@c)a-L_`1p literal 0 HcmV?d00001 diff --git a/STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvguix.qiumingsong b/STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvguix.qiumingsong index 6ae885d..35dd883 100644 --- a/STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvguix.qiumingsong +++ b/STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvguix.qiumingsong @@ -80,8 +80,8 @@ 44 - 0 - 1 + 2 + 3 -1 -1 @@ -91,17 +91,17 @@ -1 - 139 - 609 - 2298 - 1304 + 78 + 2655 + 4344 + 1243 0 - 250 - 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000001000000000000000100000036453A5C6769746875625C452D50617065725F636F64655C53544D33325C53544D33322D463130335A4554365C5372635C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD50001000000000000000200000085030000FA000000F2080000BC030000 + 251 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000001000000000000000100000037453A5C70726F6A6563745C452D50617065725F636F64655C53544D33325C53544D33322D463130335A4554365C5372635C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000001C0B0000670000000014000024040000 @@ -124,7 +124,7 @@ 16 - AD030000FA000000D9090000C0010000 + 440B000067000000701100002D010000 @@ -140,7 +140,7 @@ 0 16 - 030000006D00000015010000F6020000 + 030000006D00000015010000F1030000 16 @@ -160,7 +160,7 @@ 0 16 - 030000006D00000015010000F6020000 + 030000006D00000015010000F1030000 16 @@ -440,7 +440,7 @@ 0 16 - 030000006D00000015010000F6020000 + 030000006D00000015010000F1030000 16 @@ -460,7 +460,7 @@ 0 16 - 030000006D00000015010000F6020000 + 030000006D00000015010000F1030000 16 @@ -480,7 +480,7 @@ 0 16 - 00000000300300008906000050040000 + 000000002B040000000A00004B050000 16 @@ -520,7 +520,7 @@ 0 16 - 03000000330300008606000034040000 + 030000002E040000FD0900002F050000 16 @@ -1140,7 +1140,7 @@ 0 16 - 030000006D00000015010000F6020000 + 030000006D00000015010000F1030000 16 @@ -1160,7 +1160,7 @@ 0 16 - 03000000330300008606000034040000 + 030000002E040000FD0900002F050000 16 @@ -1180,7 +1180,7 @@ 0 16 - 03000000330300008606000034040000 + 030000002E040000FD0900002F050000 16 @@ -1240,7 +1240,7 @@ 0 16 - 03000000330300008606000034040000 + 030000002E040000FD0900002F050000 16 @@ -1260,7 +1260,7 @@ 0 16 - 03000000330300008606000034040000 + 030000002E040000FD0900002F050000 16 @@ -1720,7 +1720,7 @@ 0 16 - 00000000500400008906000066040000 + 000000004B050000000A000061050000 16 @@ -1789,14 +1789,14 @@ 3312 - 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF4401000016010000700700001A010000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000AD030000FA000000D9090000C0010000440100005000000070070000160100000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF2C0600005000000030060000FE020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C300000180004000000000000099080000FA000000D9090000A8030000300600005000000070070000FE02000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF18010000500000001C0100001203000001000000020000100400000001000000C2FEFFFFB5030000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000069020000FA00000081030000BC030000000000005000000018010000120300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000E402000070070000E802000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000018000800000000000006902000092030000D90900007204000000000000E802000070070000C803000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFB8030000E8020000BC030000C803000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000012030000890600001603000001000000010000100400000001000000DDFBFFFFC4000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000100000069020000C0030000F2080000FA040000000000001603000089060000500400000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFF4401000016010000700700001A010000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000440B000067000000701100002D010000440100005000000070070000160100000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF2C0600005000000030060000FE020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C300000180004000000000000030100000670000007011000015030000300600005000000070070000FE02000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF18010000500000001C0100000D04000001000000020000100400000001000000C2FEFFFFB5030000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000A000067000000180B0000240400000000000050000000180100000D0400000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF00000000E402000070070000E802000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000000A0000FF02000070110000DF03000000000000E802000070070000C803000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFB8030000E8020000BC030000C803000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000000D040000000A00001104000001000000010000100400000001000000DDFBFFFFC4000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000000A00002804000000140000620500000000000011040000000A00004B0500000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 File - 2844 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000000972657475726E20353B960000000000000012000972657475726E20353B0D67756C496D67427566416464720B4954383935315F3842505008486F7374496E69740A67704672616D654275660554427974650A4550445F35494E3635460C4550445F32696E37625F5632094550445F32494E3742036C7574115049435F646973706C61795F436C65616E0B7069635F646973706C61790C4550445F696E69745F4F5450104550445F3132696E34385F5265736574144550445F4D314D325F53656E64436F6D6D616E64184550445F4D3153314D3253325F53656E64436F6D6D616E64094550445F52657365740943545F5344415F494E000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + 2577 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE80300000000000000000000000000000000000000000000000100000001000000960000000200205000000000054750494F4196000000000000000200054750494F41145243435F414842315065726970685F4750494F410000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 1423 @@ -3596,8 +3596,8 @@ 0 ../Src/main.c - 2 - 91 + 30 + 94 100 1 diff --git a/STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvoptx b/STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvoptx index d2c4958..f0cb47a 100644 --- a/STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvoptx +++ b/STM32/STM32-F103ZET6/MDK-ARM/epd-demo.uvoptx @@ -263,7 +263,7 @@ Application/User - 0 + 1 0 0 0 @@ -343,7 +343,7 @@ Examples - 1 + 0 0 0 0 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 d6a39b6..39ec92e 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 @@ -21,13 +21,14 @@ Target DLL: STLink\ST-LINKIII-KEIL_SWO.dll V3.0.1.0 Dialog DLL: TCM.DLL V1.35.1.0

Project:

-E:\github\E-Paper_code\STM32\STM32-F103ZET6\MDK-ARM\epd-demo.uvprojx +E:\project\E-Paper_code\STM32\STM32-F103ZET6\MDK-ARM\epd-demo.uvprojx Project File Date: 07/19/2021

Output:

*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'D:\Program Files\keil5\ARM\ARMCC\Bin' Build target 'epd-demo' compiling main.c... +compiling EPD_1in54_V2.c... linking... Program Size: Code=18544 RO-data=360 RW-data=20 ZI-data=4252 FromELF: creating hex file... diff --git a/STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.htm b/STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.htm index 04e31f0..bb9679e 100644 --- a/STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.htm +++ b/STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.htm @@ -3,7 +3,7 @@ Static Call Graph - [epd-demo\epd-demo.axf]

Static Call Graph for image epd-demo\epd-demo.axf


-

#<CALLGRAPH># ARM Linker, 5060750: Last Updated: Mon Jul 19 11:44:54 2021 +

#<CALLGRAPH># ARM Linker, 5060750: Last Updated: Wed Aug 11 14:53:17 2021

Maximum Stack Usage = 124 bytes + Unknown(Cycles, Untraceable Function Pointers)

Call chain for Maximum Stack Depth:

diff --git a/STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.map b/STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.map index ae79e14..0c92432 100644 --- a/STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.map +++ b/STM32/STM32-F103ZET6/MDK-ARM/epd-demo/epd-demo.map @@ -1220,7 +1220,6 @@ Removing Unused input sections from the image. Removing epd_1in54_v2.o(.rrx_text), (6 bytes). Removing epd_1in54_v2.o(.text), (1024 bytes). Removing epd_1in54_v2.o(.data), (318 bytes). - Removing epd_1in54_v2.o(.data), (159 bytes). Removing epd_1in54b.o(.rev16_text), (4 bytes). Removing epd_1in54b.o(.revsh_text), (4 bytes). Removing epd_1in54b.o(.rrx_text), (6 bytes). @@ -1456,7 +1455,7 @@ Removing Unused input sections from the image. Removing cdrcmple.o(.text), (48 bytes). Removing depilogue.o(.text), (186 bytes). -461 unused section(s) (total 958922 bytes) removed from the image. +460 unused section(s) (total 958763 bytes) removed from the image. ============================================================================== @@ -2138,15 +2137,15 @@ Memory Map of the image Exec Addr Load Addr Size Type Attr Idx E Section Name Object 0x08000000 0x08000000 0x00000130 Data RO 3 RESET startup_stm32f103xe.o - 0x08000130 0x08000130 0x00000000 Code RO 2861 * .ARM.Collect$$$$00000000 mc_w.l(entry.o) - 0x08000130 0x08000130 0x00000004 Code RO 3161 .ARM.Collect$$$$00000001 mc_w.l(entry2.o) - 0x08000134 0x08000134 0x00000004 Code RO 3164 .ARM.Collect$$$$00000004 mc_w.l(entry5.o) - 0x08000138 0x08000138 0x00000000 Code RO 3166 .ARM.Collect$$$$00000008 mc_w.l(entry7b.o) - 0x08000138 0x08000138 0x00000000 Code RO 3168 .ARM.Collect$$$$0000000A mc_w.l(entry8b.o) - 0x08000138 0x08000138 0x00000008 Code RO 3169 .ARM.Collect$$$$0000000B mc_w.l(entry9a.o) - 0x08000140 0x08000140 0x00000000 Code RO 3171 .ARM.Collect$$$$0000000D mc_w.l(entry10a.o) - 0x08000140 0x08000140 0x00000000 Code RO 3173 .ARM.Collect$$$$0000000F mc_w.l(entry11a.o) - 0x08000140 0x08000140 0x00000004 Code RO 3162 .ARM.Collect$$$$00002712 mc_w.l(entry2.o) + 0x08000130 0x08000130 0x00000000 Code RO 2860 * .ARM.Collect$$$$00000000 mc_w.l(entry.o) + 0x08000130 0x08000130 0x00000004 Code RO 3160 .ARM.Collect$$$$00000001 mc_w.l(entry2.o) + 0x08000134 0x08000134 0x00000004 Code RO 3163 .ARM.Collect$$$$00000004 mc_w.l(entry5.o) + 0x08000138 0x08000138 0x00000000 Code RO 3165 .ARM.Collect$$$$00000008 mc_w.l(entry7b.o) + 0x08000138 0x08000138 0x00000000 Code RO 3167 .ARM.Collect$$$$0000000A mc_w.l(entry8b.o) + 0x08000138 0x08000138 0x00000008 Code RO 3168 .ARM.Collect$$$$0000000B mc_w.l(entry9a.o) + 0x08000140 0x08000140 0x00000000 Code RO 3170 .ARM.Collect$$$$0000000D mc_w.l(entry10a.o) + 0x08000140 0x08000140 0x00000000 Code RO 3172 .ARM.Collect$$$$0000000F mc_w.l(entry11a.o) + 0x08000140 0x08000140 0x00000004 Code RO 3161 .ARM.Collect$$$$00002712 mc_w.l(entry2.o) 0x08000144 0x08000144 0x00000024 Code RO 4 .text startup_stm32f103xe.o 0x08000168 0x08000168 0x00000094 Code RO 13 .text main.o 0x080001fc 0x080001fc 0x00000060 Code RO 162 .text gpio.o @@ -2154,35 +2153,35 @@ Memory Map of the image 0x08000318 0x08000318 0x000000d8 Code RO 216 .text usart.o 0x080003f0 0x080003f0 0x00000030 Code RO 246 .text stm32f1xx_it.o 0x08000420 0x08000420 0x0000003c Code RO 273 .text stm32f1xx_hal_msp.o - 0x0800045c 0x0800045c 0x000000c4 Code RO 2470 .text system_stm32f1xx.o - 0x08000520 0x08000520 0x000015e8 Code RO 2526 .text stm32f1xx_hal_spi.o - 0x08001b08 0x08001b08 0x00000188 Code RO 2550 .text stm32f1xx_hal.o - 0x08001c90 0x08001c90 0x000008c8 Code RO 2580 .text stm32f1xx_hal_rcc.o - 0x08002558 0x08002558 0x000003d4 Code RO 2628 .text stm32f1xx_hal_gpio.o - 0x0800292c 0x0800292c 0x00000c48 Code RO 2652 .text stm32f1xx_hal_dma.o - 0x08003574 0x08003574 0x00000224 Code RO 2676 .text stm32f1xx_hal_cortex.o - 0x08003798 0x08003798 0x00000f9c Code RO 2840 .text stm32f1xx_hal_uart.o - 0x08004734 0x08004734 0x00000024 Code RO 2868 .text mc_w.l(memseta.o) - 0x08004758 0x08004758 0x0000002c Code RO 3176 .text mc_w.l(uidiv.o) - 0x08004784 0x08004784 0x00000024 Code RO 3193 .text mc_w.l(init.o) - 0x080047a8 0x080047a8 0x00000020 Code RO 2961 i.__0printf$3 mc_w.l(printf3.o) - 0x080047c8 0x080047c8 0x0000000e Code RO 3203 i.__scatterload_copy mc_w.l(handlers.o) - 0x080047d6 0x080047d6 0x00000002 Code RO 3204 i.__scatterload_null mc_w.l(handlers.o) - 0x080047d8 0x080047d8 0x0000000e Code RO 3205 i.__scatterload_zeroinit mc_w.l(handlers.o) + 0x0800045c 0x0800045c 0x000000c4 Code RO 2469 .text system_stm32f1xx.o + 0x08000520 0x08000520 0x000015e8 Code RO 2525 .text stm32f1xx_hal_spi.o + 0x08001b08 0x08001b08 0x00000188 Code RO 2549 .text stm32f1xx_hal.o + 0x08001c90 0x08001c90 0x000008c8 Code RO 2579 .text stm32f1xx_hal_rcc.o + 0x08002558 0x08002558 0x000003d4 Code RO 2627 .text stm32f1xx_hal_gpio.o + 0x0800292c 0x0800292c 0x00000c48 Code RO 2651 .text stm32f1xx_hal_dma.o + 0x08003574 0x08003574 0x00000224 Code RO 2675 .text stm32f1xx_hal_cortex.o + 0x08003798 0x08003798 0x00000f9c Code RO 2839 .text stm32f1xx_hal_uart.o + 0x08004734 0x08004734 0x00000024 Code RO 2867 .text mc_w.l(memseta.o) + 0x08004758 0x08004758 0x0000002c Code RO 3175 .text mc_w.l(uidiv.o) + 0x08004784 0x08004784 0x00000024 Code RO 3192 .text mc_w.l(init.o) + 0x080047a8 0x080047a8 0x00000020 Code RO 2960 i.__0printf$3 mc_w.l(printf3.o) + 0x080047c8 0x080047c8 0x0000000e Code RO 3202 i.__scatterload_copy mc_w.l(handlers.o) + 0x080047d6 0x080047d6 0x00000002 Code RO 3203 i.__scatterload_null mc_w.l(handlers.o) + 0x080047d8 0x080047d8 0x0000000e Code RO 3204 i.__scatterload_zeroinit mc_w.l(handlers.o) 0x080047e6 0x080047e6 0x00000002 PAD - 0x080047e8 0x080047e8 0x000001b8 Code RO 2968 i._printf_core mc_w.l(printf3.o) - 0x080049a0 0x080049a0 0x00000010 Data RO 2471 .constdata system_stm32f1xx.o - 0x080049b0 0x080049b0 0x00000008 Data RO 2472 .constdata system_stm32f1xx.o - 0x080049b8 0x080049b8 0x00000020 Data RO 3201 Region$$Table anon$$obj.o + 0x080047e8 0x080047e8 0x000001b8 Code RO 2967 i._printf_core mc_w.l(printf3.o) + 0x080049a0 0x080049a0 0x00000010 Data RO 2470 .constdata system_stm32f1xx.o + 0x080049b0 0x080049b0 0x00000008 Data RO 2471 .constdata system_stm32f1xx.o + 0x080049b8 0x080049b8 0x00000020 Data RO 3200 Region$$Table anon$$obj.o Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x080049d8, Size: 0x000010b0, Max: 0x00010000, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object - 0x20000000 0x080049d8 0x00000004 Data RW 2473 .data system_stm32f1xx.o - 0x20000004 0x080049dc 0x0000000c Data RW 2551 .data stm32f1xx_hal.o - 0x20000010 0x080049e8 0x00000004 Data RW 3175 .data mc_w.l(stdout.o) + 0x20000000 0x080049d8 0x00000004 Data RW 2472 .data system_stm32f1xx.o + 0x20000004 0x080049dc 0x0000000c Data RW 2550 .data stm32f1xx_hal.o + 0x20000010 0x080049e8 0x00000004 Data RW 3174 .data mc_w.l(stdout.o) 0x20000014 - 0x00000058 Zero RW 187 .bss spi.o 0x2000006c - 0x00000040 Zero RW 217 .bss usart.o 0x200000ac 0x080049ec 0x00000004 PAD @@ -2197,23 +2196,23 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug Object Name 96 10 0 0 0 803 gpio.o - 148 20 0 0 0 461070 main.o - 188 18 0 0 88 1429 spi.o + 148 20 0 0 0 461082 main.o + 188 18 0 0 88 1437 spi.o 36 8 304 0 4096 796 startup_stm32f103xe.o 392 38 0 12 0 7649 stm32f1xx_hal.o - 548 12 0 0 0 30674 stm32f1xx_hal_cortex.o + 548 12 0 0 0 30678 stm32f1xx_hal_cortex.o 3144 164 0 0 0 7109 stm32f1xx_hal_dma.o 980 30 0 0 0 4391 stm32f1xx_hal_gpio.o - 60 8 0 0 0 826 stm32f1xx_hal_msp.o + 60 8 0 0 0 830 stm32f1xx_hal_msp.o 2248 88 0 0 0 6559 stm32f1xx_hal_rcc.o 5608 106 0 0 0 19625 stm32f1xx_hal_spi.o - 3996 46 0 0 0 17432 stm32f1xx_hal_uart.o + 3996 46 0 0 0 17436 stm32f1xx_hal_uart.o 48 22 0 0 0 1246 stm32f1xx_it.o - 196 28 24 4 0 1509 system_stm32f1xx.o + 196 28 24 4 0 1517 system_stm32f1xx.o 216 18 0 0 64 1753 usart.o ---------------------------------------------------------------------- - 17904 616 360 16 4252 562871 Object Totals + 17904 616 360 16 4252 562911 Object Totals 0 0 32 0 0 0 (incl. Generated) 0 0 0 0 4 0 (incl. Padding) @@ -2256,8 +2255,8 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug - 18544 646 360 20 4252 561955 Grand Totals - 18544 646 360 20 4252 561955 ELF Image Totals + 18544 646 360 20 4252 561995 Grand Totals + 18544 646 360 20 4252 561995 ELF Image Totals 18544 646 360 20 0 0 ROM Totals ============================================================================== diff --git a/STM32/STM32-F103ZET6/User/e-Paper/EPD_1in54_V2.c b/STM32/STM32-F103ZET6/User/e-Paper/EPD_1in54_V2.c index b674cd9..0350066 100644 --- a/STM32/STM32-F103ZET6/User/e-Paper/EPD_1in54_V2.c +++ b/STM32/STM32-F103ZET6/User/e-Paper/EPD_1in54_V2.c @@ -78,30 +78,6 @@ unsigned char WF_PARTIAL_1IN54_0[159] = 0x02,0x17,0x41,0xB0,0x32,0x28, }; -// waveform partial refresh(quality) -unsigned char WF_PARTIAL_1IN54_1[159] = -{ -0x0,0x00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0xA,0x0,0x0,0x0,0x0,0x0,0x1, -0x1,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x0,0x0,0x0,0x0,0x0,0x0,0x0, -0x22,0x22,0x22,0x22,0x22,0x22,0x0,0x0,0x0, -0x22,0x17,0x41,0x0,0x32,0x20, -}; - /****************************************************************************** function : Software reset parameter: @@ -276,21 +252,21 @@ void EPD_1IN54_V2_Init_Partial(void) EPD_1IN54_V2_Reset(); EPD_1IN54_V2_ReadBusy(); - EPD_1IN54_V2_SetLut(WF_PARTIAL_1IN54_1); - EPD_1IN54_V2_SendCommand(0x37); - EPD_1IN54_V2_SendData(0x00); - EPD_1IN54_V2_SendData(0x00); - EPD_1IN54_V2_SendData(0x00); - EPD_1IN54_V2_SendData(0x00); - EPD_1IN54_V2_SendData(0x00); - EPD_1IN54_V2_SendData(0x40); - EPD_1IN54_V2_SendData(0x00); - EPD_1IN54_V2_SendData(0x00); - EPD_1IN54_V2_SendData(0x00); - EPD_1IN54_V2_SendData(0x00); - - EPD_1IN54_V2_SendCommand(0x3C); //BorderWavefrom - EPD_1IN54_V2_SendData(0x80); + EPD_1IN54_V2_SetLut(WF_PARTIAL_1IN54_0); + EPD_1IN54_V2_SendCommand(0x37); + EPD_1IN54_V2_SendData(0x00); + EPD_1IN54_V2_SendData(0x00); + EPD_1IN54_V2_SendData(0x00); + EPD_1IN54_V2_SendData(0x00); + EPD_1IN54_V2_SendData(0x00); + EPD_1IN54_V2_SendData(0x40); + EPD_1IN54_V2_SendData(0x00); + EPD_1IN54_V2_SendData(0x00); + EPD_1IN54_V2_SendData(0x00); + EPD_1IN54_V2_SendData(0x00); + + EPD_1IN54_V2_SendCommand(0x3C); //BorderWavefrom + EPD_1IN54_V2_SendData(0x80); EPD_1IN54_V2_SendCommand(0x22); EPD_1IN54_V2_SendData(0xc0); diff --git a/Version_CN.txt b/Version_CN.txt index 477dd9d..2af2961 100644 --- a/Version_CN.txt +++ b/Version_CN.txt @@ -24,4 +24,4 @@ 2020-12-09:添加新程序5.83inch V2 e-Paper例程。 2020-12-25:添加新程序4.01inch (F) e-Paper例程。 2021-02-22:添加新程序2.7inch B V2 e-Paper例程。 -2021-07-19: 1.54V2、2.13V3、2.9V2、7.5V2程序均采用外部波形,并提升了刷新速度 \ No newline at end of file +2021-07-19:1.54V2、2.13V3、2.9V2、7.5V2程序均采用外部波形,并提升了刷新速度 \ No newline at end of file