diff --git a/.gitignore b/.gitignore index f34f4a1..426986d 100644 --- a/.gitignore +++ b/.gitignore @@ -49,3 +49,11 @@ stm32.mak .vagrant ubuntu*.log /.vs + +JLinkLog.txt + +*.map +*.build_log.htm +*.lst +*.htm +*.sct \ No newline at end of file diff --git a/Doc/SSD1681.pdf b/Doc/SSD1681.pdf new file mode 100644 index 0000000..60f3d64 Binary files /dev/null and b/Doc/SSD1681.pdf differ diff --git a/Doc/ZJY200200-0154DAAMFGN.pdf b/Doc/ZJY200200-0154DAAMFGN.pdf new file mode 100644 index 0000000..3a67749 Binary files /dev/null and b/Doc/ZJY200200-0154DAAMFGN.pdf differ diff --git a/Example/EpaperModuleTest_APM32F103/Epaper/bmp.h b/Example/EpaperModuleTest_APM32F103/Epaper/bmp.h index 2a0040a..bd22f80 100644 --- a/Example/EpaperModuleTest_APM32F103/Epaper/bmp.h +++ b/Example/EpaperModuleTest_APM32F103/Epaper/bmp.h @@ -528,6 +528,109 @@ const unsigned char gImage_4[4000]={ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, }; +const unsigned char gImage_5[1600]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xE0,0xE0,0xE0,0xE0,0xC0,0x00,0x00,0x00,0x00, +0x00,0x80,0xE0,0xE0,0xE0,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xE0,0xE0, +0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0xE0,0xE0,0xE0,0xE0,0xC0,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0xE0,0xE0,0xF0,0xF0,0xF0,0xF0, +0xF0,0xF0,0xE0,0xE0,0xC0,0xC0,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xC0,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0xF8,0xF8,0xF8,0xF8,0xF8,0x00,0x00,0x00,0xF8,0xF8,0xF8,0xF8,0xF8,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07, +0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,0xF8,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0xFE, +0xE0,0x00,0x00,0x80,0xFC,0xFF,0xFF,0xFF,0x3F,0x01,0x00,0xC0,0xF0,0xF8,0xF8,0xFC, +0x7C,0x3C,0x3C,0x3C,0x7C,0xFC,0xF8,0xF8,0xF0,0xC0,0x00,0x00,0x00,0x80,0xF0,0xFE, +0xFF,0xFF,0x3F,0x07,0x3F,0xFF,0xFF,0xFE,0xF0,0x80,0x00,0x00,0x00,0x00,0xC0,0xE0, +0xF0,0xF8,0xF8,0xFC,0x7C,0x3C,0x3C,0x7C,0x7C,0x7C,0x78,0x38,0x78,0x7C,0xFF,0xFF, +0xFF,0xFF,0xFF,0x7C,0x7C,0x7C,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F, +0xFF,0xFF,0xFF,0xFF,0xF1,0xE1,0xC0,0xC0,0xC1,0x81,0x83,0x03,0x03,0x01,0x00,0x78, +0x78,0xFC,0xFF,0xFF,0xFF,0xFF,0x7C,0x7C,0x7C,0x7C,0x00,0x00,0xFC,0xFC,0xFC,0xFC, +0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0xFC,0xFC,0xFC,0x00,0x00,0x00,0xC0,0xF0, +0xF8,0xF8,0xFC,0xFC,0x7C,0x3C,0x3C,0x7C,0x78,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, +0x00,0xFC,0xFC,0xFC,0xFC,0xFC,0x00,0x00,0x80,0xE0,0xF0,0xF8,0xF8,0xFC,0x7C,0x3C, +0x3C,0x3C,0x7C,0xFC,0xF8,0xF8,0xF0,0xE0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xFF,0xFE,0xF0,0xFF, +0xFF,0xFF,0x1F,0x01,0x00,0x07,0x7F,0xFF,0xFF,0xFE,0xE0,0xFF,0xFF,0xFF,0xFF,0x07, +0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0x9E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1F,0x1F, +0x1F,0x1F,0x00,0xE0,0xFC,0xFF,0xFF,0xFF,0x3F,0x3D,0x3C,0x3C,0x3C,0x3F,0x3F,0xFF, +0xFF,0xFF,0xFC,0xE0,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xC1,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x81,0x01,0x03,0x03,0x07,0x07,0x0F, +0x0F,0x1F,0xFF,0xFF,0xFF,0xFE,0xF8,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, +0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF, +0xFF,0xFF,0xFF,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xC3,0x00,0x00,0x00,0x00,0x00, +0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, +0xFF,0xFF,0xFF,0xFF,0xFF,0x81,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0xFF,0xFF,0xFF, +0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x03,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x01,0x00,0x00,0x00,0x00,0x00,0x07, +0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0x0F,0x0F,0x1F, +0x1F,0x1E,0x1E,0x1E,0x1E,0x1E,0x1F,0x1F,0x0E,0x18,0x1F,0x1F,0x1F,0x1F,0x07,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0F,0x1F,0x1F,0x1F,0x1F,0x18,0x03,0x07, +0x0F,0x0F,0x1F,0x1F,0x1E,0x1E,0x1E,0x1E,0x1F,0x1F,0x0F,0x0E,0x00,0x00,0x03,0x0F, +0x1F,0x1F,0x1F,0x1E,0x1E,0x1E,0x1E,0x18,0x00,0x00,0x00,0x00,0x00,0x02,0x07,0x0F, +0x0F,0x1F,0x1F,0x1F,0x1E,0x1E,0x1E,0x1E,0x1E,0x1F,0x1F,0x0F,0x0F,0x07,0x01,0x00, +0x00,0x01,0x0F,0x1F,0x1F,0x1F,0x1F,0x1E,0x1E,0x1E,0x1C,0x00,0x03,0x0F,0x1F,0x1F, +0x1F,0x1F,0x1E,0x1E,0x1E,0x1F,0x0F,0x1F,0x1F,0x1F,0x1F,0x00,0x00,0x00,0x03,0x07, +0x0F,0x1F,0x1F,0x1F,0x1E,0x1E,0x1E,0x1E,0x1F,0x0F,0x1F,0x1F,0x1F,0x1F,0x00,0x00, +0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x00,0x00,0x00,0x03,0x07,0x0F,0x1F,0x1F,0x1F,0x1E, +0x1E,0x1E,0x1F,0x1F,0x1F,0x0F,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +}; + #ifdef __cplusplus } #endif diff --git a/Example/EpaperModuleTest_APM32F103/Epaper/epaper.c b/Example/EpaperModuleTest_APM32F103/Epaper/epaper.c index 3d72107..0514bfd 100644 --- a/Example/EpaperModuleTest_APM32F103/Epaper/epaper.c +++ b/Example/EpaperModuleTest_APM32F103/Epaper/epaper.c @@ -27,7 +27,7 @@ EPD_PAINT EPD_Paint; static uint8_t _hibernating = 1; -static const unsigned char ut_partial[] = +static const unsigned char lut_partial[] = { 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @@ -214,17 +214,36 @@ uint8_t epd_init(void) epd_write_reg(0x12); // SWRESET + epd_delay(10); + if (epd_wait_busy()) return 1; epd_write_reg(0x01); // Driver output control +#if defined(EPD_29) || defined(EPD_213) epd_write_data(0x27); epd_write_data(0x01); epd_write_data(0x01); +#else + epd_write_data(0xC7); + epd_write_data(0x00); + epd_write_data(0x01); + #endif epd_write_reg(0x11); // data entry mode epd_write_data(0x01); +#ifdef EPD_154 + epd_write_reg(0x44); // set Ram-X address start/end position + epd_write_data(0x00); + epd_write_data(0x18); + + epd_write_reg(0x45); // set Ram-Y address start/end position + epd_write_data(0xC7); + epd_write_data(0x00); + epd_write_data(0x00); + epd_write_data(0x00); + #else epd_write_reg(0x44); // set Ram-X address start/end position epd_write_data(0x00); epd_write_data(0x0F); // 0x0F-->(15+1)*8=128 @@ -234,24 +253,23 @@ uint8_t epd_init(void) epd_write_data(0x01); epd_write_data(0x00); epd_write_data(0x00); +#endif epd_write_reg(0x3C); // BorderWavefrom epd_write_data(0x05); +#if defined(EPD_29) || defined(EPD_213) epd_write_reg(0x21); // Display update control epd_write_data(0x00); epd_write_data(0x80); +#endif epd_write_reg(0x18); // Read built-in temperature sensor epd_write_data(0x80); - epd_write_reg(0x4E); // set RAM x address count to 0; - epd_write_data(0x00); - epd_write_reg(0x4F); // set RAM y address count to 0x127; - epd_write_data(0x27); - epd_write_data(0x01); + epd_setpos(0,0); - if (epd_wait_busy()) + if (epd_power_on()) return 1; return 0; @@ -262,25 +280,46 @@ uint8_t epd_init_partial(void) if (epd_init()) return 1; +#if defined(EPD_29) || defined(EPD_213) epd_write_reg(0x32); epd_cs_reset(); - for (int j = 0; j < sizeof(ut_partial); j++) + for (int j = 0; j < sizeof(lut_partial); j++) { - _epd_write_data(ut_partial[j]); + _epd_write_data(lut_partial[j]); } _epd_write_data_over(); epd_cs_set(); +#endif return 0; } void epd_enter_deepsleepmode(uint8_t mode) { + epd_power_off(); epd_write_reg(0x10); epd_write_data(mode); _hibernating = 1; } +uint8_t epd_power_on(void) +{ + epd_write_reg(0x22); // Display Update Control + epd_write_data(0xf8); + epd_write_reg(0x20); // Activate Display Update Sequence + + return epd_wait_busy(); +} + +uint8_t epd_power_off(void) +{ + epd_write_reg(0x22); // Display Update Control + epd_write_data(0x83); + epd_write_reg(0x20); // Activate Display Update Sequence + + return epd_wait_busy(); +} + void epd_init_internalTempSensor(void) { epd_write_reg(0x18); @@ -294,7 +333,11 @@ void epd_init_internalTempSensor(void) void epd_update(void) { epd_write_reg(0x22); // Display Update Control +#ifdef EPD_154 + epd_write_data(0xF4); + #else epd_write_data(0xF7); +#endif epd_write_reg(0x20); // Activate Display Update Sequence epd_wait_busy(); @@ -303,7 +346,11 @@ void epd_update(void) void epd_update_partial(void) { epd_write_reg(0x22); // Display Update Control +#ifdef EPD_154 + epd_write_data(0xFC); + #else epd_write_data(0xCC); +#endif epd_write_reg(0x20); // Activate Display Update Sequence epd_wait_busy(); @@ -316,7 +363,11 @@ void epd_setpos(uint16_t x, uint16_t y) _x = x / 8; +#ifdef EPD_154 + _y = 199 - y; + #else _y = 295 - y; +#endif epd_write_reg(0x4E); // set RAM x address count to 0; epd_write_data(_x); @@ -678,10 +729,14 @@ void epd_paint_showString(uint16_t x, uint16_t y, uint8_t *chr, uint16_t size1, if (size1 == 8) { x += 6; + if(x > EPD_H-6) + break; } else { x += size1 / 2; + if(x > EPD_H-size1 / 2) + break; } } } diff --git a/Example/EpaperModuleTest_APM32F103/Epaper/epaper.h b/Example/EpaperModuleTest_APM32F103/Epaper/epaper.h index e16d781..ed4aa89 100644 --- a/Example/EpaperModuleTest_APM32F103/Epaper/epaper.h +++ b/Example/EpaperModuleTest_APM32F103/Epaper/epaper.h @@ -10,8 +10,9 @@ extern "C" //#define EPD_29 //#define EPD_213 +//#define EPD_154 -#if (!defined EPD_29) && (!defined EPD_213) +#if (!defined EPD_29) && (!defined EPD_213) && (!defined EPD_154) #error EPD Type Undefine #endif @@ -25,6 +26,12 @@ extern "C" #define EPD_H 250 #endif +#ifdef EPD_154 +#define EPD_W 200 +#define EPD_H 200 +#endif + + #define EPD_OK 0 #define EPD_ERROR 1 @@ -64,9 +71,12 @@ extern "C" uint8_t epd_init(void); uint8_t epd_init_partial(void); void epd_enter_deepsleepmode(uint8_t mode); + uint8_t epd_power_on(void); + uint8_t epd_power_off(void); void epd_init_internalTempSensor(void); void epd_update(void); void epd_update_partial(void); + void epd_setpos(uint16_t x, uint16_t y); void epd_display(uint8_t *Image1, uint8_t *Image2); void epd_displayBW(uint8_t *Image); void epd_displayBW_partial(uint8_t *Image); diff --git a/Example/EpaperModuleTest_APM32F103/MDK-ARM/EpaperModuleTest_APM32F103.uvoptx b/Example/EpaperModuleTest_APM32F103/MDK-ARM/EpaperModuleTest_APM32F103.uvoptx index 7a6917e..ea93896 100644 --- a/Example/EpaperModuleTest_APM32F103/MDK-ARM/EpaperModuleTest_APM32F103.uvoptx +++ b/Example/EpaperModuleTest_APM32F103/MDK-ARM/EpaperModuleTest_APM32F103.uvoptx @@ -220,7 +220,7 @@ App - 1 + 0 0 0 0 @@ -700,7 +700,7 @@ Epaper - 1 + 0 0 0 0 diff --git a/Example/EpaperModuleTest_APM32F103/MDK-ARM/EpaperModuleTest_APM32F103.uvprojx b/Example/EpaperModuleTest_APM32F103/MDK-ARM/EpaperModuleTest_APM32F103.uvprojx index 742bcf2..4e20574 100644 --- a/Example/EpaperModuleTest_APM32F103/MDK-ARM/EpaperModuleTest_APM32F103.uvprojx +++ b/Example/EpaperModuleTest_APM32F103/MDK-ARM/EpaperModuleTest_APM32F103.uvprojx @@ -10,7 +10,7 @@ Target 1 0x4 ARM-ADS - 6160000::V6.16::ARMCLANG + 6190000::V6.19::ARMCLANG 1 @@ -186,6 +186,7 @@ 0 0 0 + 0 0 0 8 diff --git a/Example/EpaperModuleTest_APM32F103/MDK-ARM/Objects/EpaperModule.axf b/Example/EpaperModuleTest_APM32F103/MDK-ARM/Objects/EpaperModule.axf index edebcfb..9c86c7c 100644 Binary files a/Example/EpaperModuleTest_APM32F103/MDK-ARM/Objects/EpaperModule.axf and b/Example/EpaperModuleTest_APM32F103/MDK-ARM/Objects/EpaperModule.axf differ diff --git a/Example/EpaperModuleTest_APM32F103/MDK-ARM/Objects/EpaperModule.hex b/Example/EpaperModuleTest_APM32F103/MDK-ARM/Objects/EpaperModule.hex index ee1769e..4d2fed6 100644 --- a/Example/EpaperModuleTest_APM32F103/MDK-ARM/Objects/EpaperModule.hex +++ b/Example/EpaperModuleTest_APM32F103/MDK-ARM/Objects/EpaperModule.hex @@ -1,8 +1,8 @@ :020000040800F2 -:1000000068230020110100083502000831020008B1 -:1000100033020008850100081705000800000000F1 -:10002000000000000000000000000000990300082C -:100030008701000800000000710200089B0300080F +:10000000B017002011010008550200085102000835 +:1000100053020008850100083B05000800000000AD +:10002000000000000000000000000000B90300080C +:10003000870100080000000093020008BB030008CD :100040002B0100082B0100082B0100082B010008E0 :100050002B0100082B0100082B0100082B010008D0 :100060002B0100082B0100082B0100082B010008C0 @@ -15,681 +15,681 @@ :1000D0002B0100082B0100082B0100082B01000850 :1000E0002B0100082B0100082B0100082B01000840 :1000F0002B0100082B0100082B010008DFF80CD0B1 -:1001000000F02EF800480047390D00086823002051 +:1001000000F02EF800480047BD0C0008B017002092 :100110000648804706480047FEE7FEE7FEE7FEE7A1 -:10012000FEE7FEE7FEE7FEE7FEE7FEE7A1030008C5 +:10012000FEE7FEE7FEE7FEE7FEE7FEE7C1030008A5 :10013000FD00000830B50B460146002020220124B6 :1001400009E021FA02F59D4205D303FA02F5491BA5 :1001500004FA02F52844151EA2F10102F1DC30BDBB :10016000064C074D06E0E06840F0010394E8070004 -:1001700098471034AC42F6D3FFF7C4FFFC3A0008AE -:100180001C3B0008FEE77047F0B5CB7803F00F0288 -:100190001B0644BF8B781A430B881C061CD00368CF -:1001A000012400254FF00F0C202D13D00F883C4266 -:1001B0000DD00CFA05F602FA05F7B3433B43CF78AE -:1001C000482F03D0282F08BF446100E004610435A4 -:1001D0006400E9E703600B88B3F5807F1CD34368B4 -:1001E0004FF4807400254FF00F0C202D13D00F8892 -:1001F0003C420DD00CFA05F602FA05F7B3433B4337 -:10020000CF78482F03D0282F08BF446100E0046155 -:1002100004356400E9E74360F0BD8068084018BF1A -:10022000012070471023002A08BF1423C1507047D3 -:10023000FEE7FEE770470020002100F0F9BC0A68E5 -:1002400010430860704729460490304638472046DE -:10025000802100F09AB82A462346CDF8008048470E -:1002600032463B46CDF800804847262000F028BDA6 -:10027000704700000149FFF7E2BF00BF1C100240B9 -:100280000149FFF7DCBF00BF1810024080B500F045 -:100290002DF8044904A20968C1F30311515CC84058 -:1002A00080BD00BF041002400000000000000000FC -:1002B000010203040607080970B5184E0C460546EE -:1002C000FFF7E4FF3DB13168074AC1F30221515CF9 -:1002D00020FA01F1296034B13168034AC1F3C22127 -:1002E000515CC840206070BD042B00080B490868B1 -:1002F00000F003020A48022A08D10A680B68C2F318 -:1003000083420232DB0302D4064850437047096837 -:100310005043C1F34041C840704700BF0410024041 -:1003200000127A0000093D0070B5026802F44152E3 -:1003300002604A890B884C790E7B0D7A1A434B88F0 -:100340001A430B7922431A43CB881A43036832437A -:100350002A4392B21A430260C989016170BD0268E2 -:1003600022F40062026002681143016070470021BC -:10037000017341810160416001720721C1817047B1 -:10038000016841F04001016070478068084018BF73 -:1003900001207047C1607047704700F039B9000014 -:1003A00081B03148314A016841F001010160416882 -:1003B00011402F4A4160016811400160016821F439 -:1003C00080210160416821F4FE0141604FF41F016A -:1003D0008160016841F48031016000210091009941 -:1003E000090B042905D80168890302D40099013159 -:1003F000F4E70168890330D51E4903230A6842F0F7 -:1004000010020A600A6863F302020A60042241686B -:1004100021F0F0014160416821F460514160416880 -:1004200062F30A210A224160416841F4803141604F -:10043000416862F395414160016841F0807101605B -:1004400001688901FCD54168022262F30101416023 -:10045000416801F00C010829FAD107484FF000610A -:10046000016001B0704700BF001002400000FFF8BB -:10047000FFFFF6FE0020024008ED00E0BCB5044698 -:10048000C0680D464EF6F3110840A97A0843298941 -:100490000843A98808434CF6FF71E06020690840D2 -:1004A000E98808434FF6FF41206160690840A98947 -:1004B000084360615148844219BF01A8002101A985 -:1004C0000020FFF7F9FE019919206FF063034843FC -:1004D00029688900B0FBF1F06421B0FBF1F202FB66 -:1004E0000300322303EB0010B0FBF1F000F00F002B -:1004F00040EA0210A060BCBDC16841F40051C16077 -:1005000070470068084018BF01207047426861F3D7 -:10051000080242607047FEE7B0B5BA4D044628466F -:100520000221FFF732FF0028F9D028462146BDE816 -:10053000B040FFF72FBF00BF10B5B24CFFF787FEEA -:100540000028FBD110BD00BFE0B50420FFF798FEE6 -:1005500003480190B64801A9FFF716FE8CBD00BF05 -:100560000100032880B5B2480121FFF756FE00289C -:1005700018BF012080BD00BFE0B50820FFF780FE56 -:1005800003480190324801A9FFF7FEFD8CBD00BF72 -:10059000040003802E4804210022FFF743BE00BF61 -:1005A0000248016881F00401016070470C0C0140B1 -:1005B00010B586B044F20400FFF762FE0E480F4CFF -:1005C0000590A4F5405005A9FFF7DEFD4FF4E13199 -:1005D000002001910821ADF81000ADF80C00029048 -:1005E00020468DF80E1001A9FFF748FF2046FFF7BF -:1005F00083FF06B010BD00BF000203880038014031 -:1006000006490A6810440A688242FCD3704700BF5A -:100610000248016801310160704700BF20000020DE -:100620000B484FF480510022FFF7FCBD08484FF4FF -:1006300080510122FFF7F6BD05484FF480410022AA -:10064000FFF7F0BD02484FF480410122FFF7EABDF9 -:10065000000C014070B50C46054600200021002624 -:1006600000F0E6FA242000F02BFB28464FF47A61D4 -:1006700000F03EFBFFF7DFFDFFF7F7FDFFF7D0FFD0 -:10068000102E0CD00025FA2D06D0605D80F0FF0002 -:10069000FFF742FF0135F6E7FA340136F0E7FFF7DE -:1006A0004BFFFFF7C3FFBDE8704000F0DBBA00006E -:1006B00010B50446102000F003FB204600F0EEFACF -:1006C00028480021017010BDB0B52648007808B94F -:1006D00000F09CFA00F0D4FA28B9122000F0F0FAE9 -:1006E00000F0CEFA08B10120B0BD1F4D0120A8478F -:1006F0001E4C2720A0470120A0470120A047112021 -:10070000A8470120A0474420A8470020A0470F2069 -:10071000A0474520A8472720A0470120A047002048 -:10072000A0470020A0473C20A8470520A047212043 -:10073000A8470020A0478020A0471820A847802075 -:10074000A0474E20A8470020A0474F20A8472720B9 -:10075000A0470120A04700F093FA002818BF01200D -:10076000B0BD00BF1C000020C10C00089D0C00089B -:10077000F0B585B00C20FFF783FD2148214C224FB6 -:10078000049004F5504604AD30462946B8474FF46E -:1007900000402946ADF8100048208DF8130030467F -:1007A000B8471A4804F55446FFF74DFD1848FFF7BF -:1007B0004AFD1848FFF747FD4FF48040FFF75AFD08 -:1007C0006D462846FFF7D3FD102029468DF80C0012 -:1007D0004FF4827000904FF44040ADF80A000020C2 -:1007E0008DF808000C4801902046FFF79DFD20463B -:1007F0000021FFF7B4FD2046FFF7C2FD05B0F0BDB4 -:100800000001038000380040890100080040038097 -:1008100000A00388001003800102000280B5FA489E -:100820004FF40041FFF7F9FC002818BF012080BDFC -:1008300000080140B0B5714A0021538A994228BF8F -:10084000B0BD0023148AA34205D2156801FB0454ED -:10085000E0540133F6E70131EFE700BF2DE9F04F37 -:1008600085B00E4607464FF0FF304FF0FF31DDF800 -:1008700038A0B34288BF012000900492BA421046CB -:10088000184688BF012102910193981B039044BF31 -:10089000414203910499B1EB070B48BFCBF1000B28 -:1008A0000399ABEB010980EAE071C1EBE078BCB2DF -:1008B000B5B252462046294600F019F8B8EB490F68 -:1008C00007DC049884420FD0029807440398A9EBF0 -:1008D00000094FEA49005845E9DC0198854203D0F8 -:1008E0000098D9440644E2E705B0BDE8F08F01382E -:1008F000013980B289B200F04DB800002DE9F8430B -:100900000546DDE908801C4616460F4658B1B9B2C7 -:10091000A1421AD2284632460B46CDF80080FFF796 -:100920009DFF0137F3E7DFF8289028463946FFF7A7 -:1009300097FC28463946FFF78EFC30462146FFF7E4 -:100940008FFC30462146FFF786FCBDE8F88300BFE8 -:100950005D080008B0B5294C049D20600120A581E8 -:10096000628262812181E3814D074FEAD10518BF80 -:1009700000EBD10525820BB1B42B02D110460A46FB -:1009800000E00846E280A080B0BD00BF1B490860BF -:10099000704700BF70B5194BDC89B4F5877F09D06B -:1009A0005A2C0AD0B42C0FD03CBB1C89C94321441B -:1009B00004460CE00C46014609E05C89C943C0438B -:1009C0000C441989014402E05C89C04304441E8A36 -:1009D000A4B201F0070089B21B686FF080050541E1 -:1009E0007443802604EBD10126FA00F05C5C2043BE -:1009F000002A08BF04EA0500585470BD0800002012 -:100A00002DE9F04F89B00130039080B20690C01AF2 -:100A1000FA2802DD09B0BDE8F08F481C129D1C4683 -:100A2000082B089001D1062009E0012061074FEA58 -:100A3000D40118BF00EBD4016008484380B207908E -:100A40006008DDF80C90B5FA85F64FF000080490C8 -:100A5000A2F1200081B22C4801EB4102029100EB8F -:100A6000420001920590264800EB01100090079982 -:100A70001FFA88F08142CDD9082C01D1059910E0E8 -:100A8000182C06D0102C0BD00C2CC3D101991D4A68 -:100A900003E00299194A01EBC10102EB810100E078 -:100AA00000990844089F4FF0000B90F800A0BBF19C -:100AB000070F0FD85FEACA702A46B9B21FFA89F049 -:100AC00008BF7209FFF713FF0BF1010B01374FEA63 -:100AD0005A0AECE709F10109082C0BD006991FFA14 -:100AE00089F0401A0499884204D10898DDF80C90E6 -:100AF0000830089008F10108B9E700BFA81D0008F8 -:100B0000B8170008441300081C1100082DE9F04F25 -:100B100087B0012501F1010A91464FF000085C07FA -:100B20004FEAD30418BF05EBD304461C119D53466E -:100B30000094B0B204960390B5FA85F700200099AE -:100B4000029080B2884236D20021CDF8048088B26B -:100B500048452AD2CDE9051310991FFA88F04FF0C5 -:100B6000000B0C5CBBF1070F0ED8E0072A461FFAFA -:100B70008AF1B0B218BF7A09FFF7B9FE0BF1010B89 -:100B80000AF1010A6408EDE70136039908F101084A -:100B9000B0B2401A4845069B08BF0833049808BF06 -:100BA000064605999A460131D1E7DDF8048002989E -:100BB000C8440130C3E707B0BDE8F08F2DE9F84322 -:100BC000DDF820905E081C46154688460746082B2F -:100BD00008BF06262A784AB1B8B241462346CDF866 -:100BE0000090FFF70DFF37440135F3E7BDE8F883C8 -:100BF00005484FF480710022FFF714BB02484FF400 -:100C000080710122FFF70EBB0008014080B5FFF79D -:100C1000EFFF3220FFF7F4FCFFF7F0FF3220FFF781 -:100C2000EFFC02480121017080BD00BF1C000020C4 -:100C3000B0B505464E200C4600F042F8C5F3C7009B -:100C4000074DA8474F2000F03BF840F22710041B47 -:100C5000E0B2A847C4F300202946BDE8B0400847E9 -:100C60009D0C000880B5222000F02AF8F72000F043 -:100C700015F8202000F024F8BDE88040AFF3008094 -:100C800010B549F64044FFF7C9FD28B1012024B151 -:100C9000FFF7B6FC013CF6E7002010BDB0B50546F5 -:100CA000FFF7BEFC114C29462046FFF773FBFFF708 -:100CB000CEFA0028FBD1BDE8B040FFF7B7BC00BFBB -:100CC000B0B50546FFF7B8FCFFF7AAFC074C29466C -:100CD0002046FFF75FFBFFF7BAFA0028FBD1FFF7CA -:100CE000A5FCBDE8B040FFF7ADBC00BF0038004038 -:100CF000B0B50C460546FFF793FC2CB115F8010B77 -:100D0000FFF70AFC013CF8E7FFF716FCBDE8B0402E -:100D1000FFF78CBCB0B5074D0446C1B22846FFF7BB -:100D2000F5FB28468021FFF7ECFB0028F9D0204690 -:100D3000B0BD00BF0038014088B000F0F5F8FFF703 -:100D40001BFCFFF701FCFFF733FC4748474CA0476B -:100D50004748A0474748A04747A0A0474B480168DD -:100D60004BA000F0FFF84EA0A047FFF701FDFFF7F2 -:100D7000ABFCDFF84081FF257A21FA22B4230095ED -:100D80004046FFF7E7FDDFF830A17A21FA22B423CD -:100D900000955046FFF7DEFD484F4046B847484CA7 -:100DA000FF20A0475046B847FF20A04745480021F4 -:100DB000FA227A230195002600900020FFF7A6FE74 -:100DC00040465146FFF746FC01204FF00109FFF76E -:100DD0006FFC4FF4FA50FFF713FCFFF775FC404629 -:100DE000B847FF20A0473D4D37A20A200021182315 -:100DF0000096A8473AA20A20322110230096A8475D -:100E00003EA20A201D2110230096A8475046B8474D -:100E1000FF20A04740480096182303903EA0D0E949 -:100E20000112C068CDE90412069003AA0A204721E6 -:100E3000A8470A206721F0227423CDE90069FFF753 -:100E40005DFD40465146FFF705FC0120FFF730FCF1 -:100E5000FFF788FB10B1FFF79DFBF9E76420FFF770 -:100E6000CFFBFFF79DFBF3E7AC3A0008F910000851 -:100E7000C73A0008DF3A0008777777772E77656101 -:100E800063742D74632E636E0D0A0D000400002040 -:100E900053797374656D436C6B3A25640D0A0000D9 -:100EA000457061706572204D6F64756C6520546586 -:100EB00073740D0024000020C40F00208D09000869 -:100EC000350800080C2B0008322E313320457061A4 -:100ED000706572204D6F64756C650000BD0B000875 -:100EE00077697468203235302078203132322072B0 -:100EF00065736F6C7574696F6E000000446573698B -:100F0000676E65642042792057654163742053748D -:100F10007564696F000000003E3E2048656C6C6F90 -:100F200020576F726C642E000B484FF47A71006882 -:100F3000B0FBF1F00138B0F1807F00D3FEE7074944 -:100F4000F02248600648027000228A6007220A6088 -:100F500050210170704700BF0400002010E000E045 -:100F600023ED00E00FB4054B10B503A9044A029825 -:100F700000F018F810BC5DF814FB0000150D000817 -:100F80000000002002E008C8121F08C1002AFAD1A0 -:100F900070477047002001E001C1121F002AFBD1F9 -:100FA000704700002DE9FF4F89B09B46044600259D -:100FB00006E025280BD05A460B999047641C6D1CFF -:100FC00020780028F5D10DB02846BDE8F08F002725 -:100FD000B8460122474900E0074314F8013F203B8F -:100FE00002FA03F00842F7D120782E2819D114F81C -:100FF000010F47F004072A280ED06FF02F02207847 -:10100000A0F1300109290CD808EB880102EB41015D -:1010100000EB0108641CF2E70A98641C50F8048B8A -:101020000A9020780028CED0642808D0692806D0FD -:1010300075281ED05A460B9990476D1C58E00A99A6 -:101040004FF00A0901C90A91002802DA40422D2115 -:1010500002E0390504D52B218DF82010012103E091 -:10106000F90704D02021F7E78A4608AE0DE00021F9 -:10107000FAE70A994FF00A0901C90A91F7E74946C8 -:10108000FFF758F8303106F8011D0028F7D1ADEB15 -:10109000060000F12009780701D44FF00108C84587 -:1010A00002DDA8EB090000E000208046002706E0F2 -:1010B00008A85A46C05D0B9990476D1C7F1C574588 -:1010C000F6DB04E030205A460B9990476D1CB8F1CE -:1010D0000001A8F10108F5DC05E016F8010B5A46FD -:1010E0000B9990476D1CB9F10001A9F10109F4DCDD -:1010F000641C65E70928010010B5044601E0FFF70C -:1011000009FE14F8010B04490028F8D1BDE810408D -:101110000A20FFF7FFBD00000000002000000000D3 -:1011200000000000002F000000000700070000146E -:101130007F147F1400242A7F2A120062640813237C -:1011400000364955225000000503000000001C2213 -:101150004100000041221C000014083E0814000851 -:10116000083E0808000000A0600000080808080801 -:10117000000060600000002010080402003E514999 -:10118000453E0000427F4000004261514946002137 -:1011900041454B31001814127F1000274545453951 -:1011A000003C4A49493000017109050300364949AC -:1011B000493600064949291E000036360000000065 -:1011C00056360000000814224100001414141414B0 -:1011D0000000412214080002015109060032495959 -:1011E000513E007C1211127C007F49494936003E75 -:1011F00041414122007F4141221C007F4949494130 -:10120000007F09090901003E4149497A007F080829 -:10121000087F0000417F4100002040413F01007FE6 -:1012200008142241007F40404040007F020C027FB2 -:10123000007F0408107F003E4141413E007F0909C4 -:101240000906003E4151215E007F091929460046EA -:10125000494949310001017F0101003F4040403FC1 -:10126000001F2040201F003F4038403F006314080B -:1012700014630007087008070061514945430000E6 -:101280007F41410000552A552A55000041417F0009 -:1012900000040201020400404040404000000102FE -:1012A0000400002054545478007F484444380038E7 -:1012B0004444442000384444487F0038545454186F -:1012C00000087E0901020018A4A4A47C007F080481 -:1012D00004780000447D4000004080847D00007F51 -:1012E000102844000000417F4000007C041804786E -:1012F000007C0804047800384444443800FC24246A -:1013000024180018242418FC007C08040408004851 -:101310005454542000043F444020003C4040207C72 -:10132000001C2040201C003C4030403C0044281061 -:101330002844001CA0A0A07C004464544C44141415 -:10134000141414140000000000000000000000004D -:101350000000FC000000000002000000000C020C75 -:10136000020000000000000090D0BCD0BC90000340 -:10137000000300001824FE448C0003020702010051 -:101380001824D8B04C80000300010201C038E438B2 -:10139000E000010202010202080600000000000055 -:1013A00000000000000000F8040200000001020438 -:1013B000000204F800000004020100009060F860E0 -:1013C00090000000010000002020FC202000000010 -:1013D00001000000000000000000080600000000FE -:1013E000202020202000000000000000000000005D -:1013F00000000002000000000080601C02000403E6 -:1014000000000000F8040404F800010202020100D8 -:101410000008FC00000000020302000018844424BD -:10142000180003020202020008042424D80001026A -:101430000202010040B088FC8000000000030200AE -:101440003C242424C400010202020100F824242CBC -:10145000C0000102020201000C04E41C04000000B0 -:1014600003000000D8242424D80001020202010055 -:1014700038444444F8000003020201000000100058 -:10148000000000000200000000002000000000003A -:101490000600000000205088040200000000010245 -:1014A00090909090900000000000000000020488DE -:1014B00050200002010000001804C424180000009D -:1014C00002000000F804E494F800010202020200A5 -:1014D00000E09CF0800002030000030204FC2424CE -:1014E000D800020302020100F80404040C00010207 -:1014F0000202010004FC0404F800020302020100DD -:1015000004FC24740C0002030202030004FC247493 -:101510000C00020302000000F0080444CC4000016B -:101520000202010004FC2020FC040203000003026C -:101530000404FC040400020203020200000404FC90 -:10154000040406040403000004FC24D00C04020379 -:101550000200030204FC0400000002030202020372 -:10156000FC3CC03CFC0003000300030004FC30C44E -:10157000FC04020302000300F8040404F800010262 -:101580000202010004FC24241800020302000000EF -:10159000F8848404F80001020207050004FC2464B6 -:1015A0009800020302000302182424448C00030262 -:1015B000020201000C04FC040C0000020302000003 -:1015C00004FC0000FC04000102020100047C80E035 -:1015D0001C040000030000001CE03CE01C000003B1 -:1015E00000030000049C609C04000203000302004E -:1015F000041CE01C04000002030200000C84641CB4 -:1016000004000203020203000000FE0202000000C8 -:1016100007040400000E30C00000000000010200BA -:10162000000202FE0000000404070000000402049F -:10163000000000000000000000000000000008089A -:101640000808080800000200000000000000000078 -:101650000040A0A0C00000010202030204FC202000 -:10166000C00000030202010000C020206000000151 -:101670000202020000C02024FC000001020203025A -:1016800000C0A0A0C0000001020202000020F82457 -:1016900024040002030202000040A0A06020000712 -:1016A0000A0A0A0404FC2020C0000203020003020C -:1016B0000020E4000000000203020000000020E41B -:1016C000000008080807000004FC80E02020020356 -:1016D000020003020404FC000000020203020200F4 -:1016E000E020E020C00003000300030020E02020F1 -:1016F000C00002030200030200C02020C00000015D -:101700000202010020E02020C000080F0A020100B0 -:1017100000C02020E0000001020A0F0820E0402065 -:1017200020000203020000000060A0A020000002D0 -:10173000020203000020F820000000000102020065 -:1017400020E00020E00000010202030220E02080EF -:1017500060200000030100006080E0806000000362 -:1017600000030000206080602000020300030200EC -:1017700020E0208060200808070100000020A06011 -:101780002000000203020200000020DE0200000030 -:1017900000070400000000FF00000000000F000030 -:1017A0000002DE2000000004070000000201020425 -:1017B0000402000000000000000000000000000023 -:1017C0000000000000000000000000F80000000021 -:1017D000000000333000000000100C06100C060062 -:1017E000000000000000000040C07840C0784000C9 -:1017F000043F04043F040400007088FC083000002B -:10180000001820FF211E0000F008F000E018000082 -:1018100000211C031E211E0000F00888700000003B -:101820001E2123241927211010160E00000000008D -:101830000000000000000000000000E018040200AA -:10184000000000071820400000020418E00000001B -:101850000040201807000000404080F08040400019 -:101860000202010F01020200000000F0000000006F -:101870000101011F01010100000000000000000043 -:1018800080B07000000000000000000000000000B8 -:101890000001010101010101000000000000000041 -:1018A00000303000000000000000000080601804DC -:1018B000006018060100000000E010080810E000B9 -:1018C000000F102020100F00001010F80000000082 -:1018D0000020203F202000000070080808887000C9 -:1018E0000030282422213000003008888848300049 -:1018F0000018202020110E000000C02010F8000069 -:1019000000070424243F240000F808888808080001 -:101910000019212020110E0000E010888818000016 -:10192000000F112020110E0000380808C8380800E8 -:101930000000003F00000000007088080888700068 -:10194000001C222121221C0000E010080810E000E9 -:101950000000312222110F00000000C0C000000072 -:101960000000003030000000000000800000000097 -:10197000000080600000000000008040201008008F -:101980000001020408102000404040404040400058 -:101990000404040404040400000810204080000033 -:1019A0000020100804020100007048080808F00038 -:1019B0000000003036010000C030C828E810E00008 -:1019C0000718272423140B000000C038E000000093 -:1019D000203C23020227382008F8888888700000FD -:1019E000203F202020110E00C030080808083800D1 -:1019F000071820202010080008F808080810E00048 -:101A0000203F202020100F0008F88888E8081000E8 -:101A1000203F20202320180008F88888E8081000BC -:101A2000203F200003000000C030080808380000F4 -:101A300007182020221E020008F808000008F808F5 -:101A4000203F210101213F20000808F8080800007C -:101A50000020203F2020000000000808F8080800AF -:101A6000C08080807F00000008F888C02818080027 -:101A7000203F20012638200008F808000000000060 -:101A8000203F20202020300008F8F800F8F8080057 -:101A9000203F003F003F200008F830C00008F80851 -:101AA000203F200007183F00E01008080810E00061 -:101AB0000F10202020100F0008F808080808F00078 -:101AC000203F210101010000E01008080810E0009B -:101AD0000F18242438504F0008F888888888700030 -:101AE000203F2000030C30200070880808083800D0 -:101AF0000038202121221C00180808F808081800C6 -:101B00000000203F2000000008F808000008F80846 -:101B1000001F202020201F000878880000C83808F7 -:101B2000000007380E010000F80800F80008F8006F -:101B3000033C0700073C0300081868808068180809 -:101B400020302C03032C30200838C800C838080087 -:101B50000000203F2000000010080808C8380800D6 -:101B60002038262120201800000000FE020202007A -:101B70000000007F40404000000C30C0000000002A -:101B8000000000010638C00000020202FE00000052 -:101B9000004040407F0000000000040202020400F8 -:101BA0000000000000000000000000000000000035 -:101BB000808080808080808000020204000000001D -:101BC0000000000000000000000080808080000015 -:101BD0000019242222223F2008F800808000000003 -:101BE000003F112020110E000000008080800000C6 -:101BF000000E112020201100000000808088F800D5 -:101C0000000E112020103F20000080808080000006 -:101C1000001F222222221300008080F0888888186A -:101C20000020203F20200000000080808080800075 -:101C3000006B94949493600008F80080808000000A -:101C4000203F210000203F200080989800000000E5 -:101C50000020203F20200000000000809898000015 -:101C600000C08080807F000008F800008080800035 -:101C7000203F24022D302000000808F8000000005A -:101C80000020203F20200000808080808080800015 -:101C9000203F20003F20003F8080008080800000A7 -:101CA000203F210000203F20000080808080000035 -:101CB000001F202020201F00808000808000000066 -:101CC00080FFA12020110E00000000808080800095 -:101CD000000E112020A0FF80808080008080800086 -:101CE00020203F21200001000000808080808000B3 -:101CF0000033242424241900008080E08080000028 -:101D00000000001F20200000808000000080800074 -:101D1000001F202020103F208080800000808080D5 -:101D200000010E3008060100808000800080808065 -:101D30000F300C030C300F0000808000808080008A -:101D40000020312E0E3120008080800000808080B5 -:101D500080818E7018060100008080808080800065 -:101D60000021302C2221300000000000807C020283 -:101D700000000000003F404000000000FF000000A5 -:101D800000000000FF0000000002027C8000000054 -:101D90000040403F00000000000601010202040470 -:101DA0000000000000000000000000000000000033 -:101DB0000000000000000000000000000000000023 +:1001700098471034AC42F6D3FFF7C4FFFC310008B7 +:100180001C320008FEE770472DE9F04191F9033079 +:1001900003F00F02B3F1FF3F01DC8B781A430B88A9 +:1001A0005FFA82F81A0620D0024600F1100C0126F0 +:1001B00000274FF00F0E52F8144B202F13D00B884E +:1001C0001E420DD00EFA07F508FA07F3AC43CD78BE +:1001D0001C431346282D02D0482D01D163461E60D2 +:1001E00004377600E9E704600B88B3F5807F22D3FB +:1001F000456800F1140300F1100C4FF480760027DD +:100200004FF00F0E202F15D00A8816420FD00EFA8D +:1002100007F408FA07F225EA040444EA0205CC7858 +:100220001A46282C02D0482C01D1624616600437A9 +:100230007600E7E74560BDE8F0818068084018BFB8 +:10024000012070471023002A08BF1423C1507047B3 +:10025000FEE7FEE770470020002100F0A1BC0A681D +:10026000104308607047204641F2883100F002BD1B +:1002700029460490304638472046802100F095B842 +:10028000202000F0DFBC222000F0DCBC262000F0A3 +:10029000D9BC70470149FFF7E2BF00BF1C10024004 +:1002A0000149FFF7DCBF00BF1810024080B500F025 +:1002B0002DF8044904A20968C1F30311515CC84038 +:1002C00080BD00BF041002400000000000000000DC +:1002D000010203040607080970B5184E0C460546CE +:1002E000FFF7E4FF3DB13168074AC1F30221515CD9 +:1002F00020FA01F1296034B13168034AC1F3C22107 +:10030000515CC840206070BD202B00080B49086874 +:1003100000F003020A48022A08D10A680B68C2F3F7 +:1003200083420232DB0302D4064850437047096817 +:100330005043C1F34041C840704700BF0410024021 +:1003400000127A0000093D0070B5026802F44152C3 +:1003500002604A890B884C790E7B0D7A1A434B88D0 +:100360001A430B7922431A43CB881A43036832435A +:100370002A4392B21A430260C989016170BD0268C2 +:1003800022F400620260026811430160704700219C +:10039000017341810160416001720721C181704791 +:1003A000016841F04001016070478068084018BF53 +:1003B00001207047C1607047704700F03BB90000F2 +:1003C00081B03148314A016841F001010160416862 +:1003D00011402F4A4160016811400160016821F419 +:1003E00080210160416821F4FE0141604FF41F014A +:1003F0008160016841F48031016000210091009921 +:10040000090B042905D80168890302D40099013138 +:10041000F4E70168890330D51E4903230A6842F0D6 +:1004200010020A600A6863F302020A60042241684B +:1004300021F0F0014160416821F460514160416860 +:1004400062F30A210A224160416841F4803141602F +:10045000416862F395414160016841F0807101603B +:1004600001688901FCD54168022262F30101416003 +:10047000416801F00C010829FAD107484FF00061EA +:10048000016001B0704700BF001002400000FFF89B +:10049000FFFFF6FE0020024008ED00E0BCB5044678 +:1004A000C0680D464EF6F3112A890840A97A114317 +:1004B000AA88114389B208434CF6FF71E0602069B5 +:1004C0000840E98808434FF6FF4120616069084011 +:1004D000A989084360615248844219BF01A80021DC +:1004E00001A90020FFF7F8FE019919200A4B4843A3 +:1004F00029688900B0FBF1F06421B0FBF1F202FB46 +:100500000300322303EB0010B0FBF1F000F00F000A +:1005100040EA0210A060BCBD9CFFFF0FC16841F41F +:100520000051C16070470068084018BF0120704743 +:10053000426861F3080242607047FEE7B0B5B74D0C +:10054000044628460221FFF730FF0028F9D028464C +:100550002146BDE8B040FFF72DBF00BF10B5AF4C3E +:10056000FFF78AFE0028FBD110BD00BFE0B50420D4 +:10057000FFF796FE03480190B34801A9FFF704FE78 +:100580008CBD00BF0100032880B5AF480121FFF7F3 +:1005900054FE002818BF012080BD00BFE0B5082030 +:1005A000FFF77EFE03480190324801A9FFF7ECFDFA +:1005B0008CBD00BF040003802E4804210022FFF7F9 +:1005C00041BE00BF0248016881F00401016070472C +:1005D0000C0C014010B586B044F20400FFF760FE39 +:1005E0000E480F4C0590A4F5405005A9FFF7CCFD2F +:1005F0004FF4E131002001910821ADF81000ADF871 +:100600000C00029020468DF80E1001A9FFF746FF5E +:100610002046FFF783FF06B010BD00BF000203882D +:100620000038014006490A6810440A688242FCD337 +:10063000704700BF0248016801310160704700BF88 +:10064000200000200B484FF480510022FFF7FABD34 +:1006500008484FF480510122FFF7F4BD05484FF4DC +:1006600080410022FFF7EEBD02484FF48041012295 +:10067000FFF7E8BD000C014010B50446FFF7EBFDA5 +:10068000FFF704FEFFF7EFFDFFF7E5FD242000F084 +:10069000D9FAFFF7E8FDBDE8104000F09BBA10B5AD +:1006A0000446FFF7D8FD242000F0CCFAFFF7DBFD6D +:1006B00000F09CFAFFF7CFFDFFF7E8FD204641F27E +:1006C0008831BDE8104000F0D5BA000010B50446EE +:1006D00000F02EFA102000F0B5FA204600F0A0FA43 +:1006E00022480021017010BDB0B52048007808B93B +:1006F00000F044FA00F086FA40B9122000F0A2FAA5 +:100700000A20FFF78FFF00F07DFA08B10120B0BD8D +:10071000174C0120A047174DC720A8470020A84725 +:100720000120A8471120A0470120A8474420A04746 +:100730000020A8471820A8474520A047C720A84761 +:100740000020A8470020A8470020A8473C20A04739 +:100750000520A8471820A0478020A847FFF77BFD69 +:1007600000F0F2F9002818BF0120B0BD1C000020E5 +:10077000450C0008210C000880B5FFF7B5FF0028E4 +:1007800018BF012080BD0000F0B585B00C20FFF738 +:1007900087FD2148214C224F049004F5504604ADBA +:1007A00030462946B8474FF400402946ADF81000BE +:1007B00048208DF813003046B8471A4804F55446CF +:1007C000FFF756FD1848FFF753FD1848FFF750FD97 +:1007D0004FF48040FFF75EFD6D462846FFF7D7FDDA +:1007E000102029468DF80C004FF4827000904FF4D1 +:1007F0004040ADF80A0000208DF808000C48019038 +:100800002046FFF7A1FD20460021FFF7B8FD204656 +:10081000FFF7C6FD05B0F0BD0001038000380040C1 +:10082000890100080040038000A0038800100380B5 +:100830000102000280B5D0484FF40041FFF7FDFCF3 +:10084000002818BF012080BD00080140B0B5364A1D +:100850000021538A994228BFB0BD0023148AA342C5 +:1008600005D2156801FB0454E0540133F6E7013169 +:10087000EFE700BF0138013980B289B200F020B83B +:10088000B0B5294C049D20600120A581628262815F +:100890002181E3814D074FEAD10518BF00EBD10557 +:1008A00025820BB1B42B02D110460A4600E008465F +:1008B000E280A080B0BD00BF1B490860704700BF48 +:1008C00070B5194BDC89B4F5877F09D05A2C0AD052 +:1008D000B42C0FD03CBB1C89C943214404460CE016 +:1008E0000C46014609E05C89C943C0430C441989A0 +:1008F000014402E05C89C04304441E8AA4B201F0B2 +:10090000070089B21B686FF080050541744380269B +:1009100004EBD10126FA00F05C5C2043002A08BFFA +:1009200004EA0500585470BD080000202DE9F04F7E +:1009300089B00130039080B20690C01AC82802DD49 +:1009400009B0BDE8F08F481C129D1C46082B08908A +:1009500001D1062008E0012061074FEAD40118BF49 +:1009600000EBD40160084843610880B2DDF80CA0B8 +:10097000B5FA85F64FF0000B0491A2F12001079023 +:100980002C4889B201EB4102029100EB4200019236 +:100990000590264800EB0110009007991FFA8BF094 +:1009A0008142CDD9082C01D1059910E0182C06D030 +:1009B000102C0BD00C2CC3D101991D4A03E00299D5 +:1009C000194A01EBC10102EB810100E000990844E2 +:1009D000089F4FF0000890F80090B8F1070F0FD86B +:1009E0005FEAC9702A46B9B21FFA8AF008BF7209D5 +:1009F000FFF740FF08F1010801374FEA5909ECE71A +:100A00000AF1010A082C0BD006991FFA8AF0401A45 +:100A10000499884204D10898DDF80CA008300890A9 +:100A20000BF1010BB9E700BFC41D0008D417000883 +:100A300060130008381100082DE9F04F87B0012538 +:100A400001F1010A91464FF000085C074FEAD30418 +:100A500018BF05EBD304461C119D53460094B0B259 +:100A600004960390B5FA85F700200099029080B2B1 +:100A7000884236D20021CDF8048088B248452AD277 +:100A8000CDE9051310991FFA88F04FF0000B0C5CAC +:100A9000BBF1070F0ED8E0072A461FFA8AF1B0B261 +:100AA00018BF7A09FFF7E6FE0BF1010B0AF1010A04 +:100AB0006408EDE70136039908F10108B0B2401A65 +:100AC0004845069B08BF0833049808BF06460599A9 +:100AD0009A460131D1E7DDF804800298C84401301C +:100AE000C3E707B0BDE8F08F2DE9FC470746C820F3 +:100AF000DDF828A01C4615460E464FEA5309A0EB28 +:100B000053082A7892B1B8B231462346CDF800A0F6 +:100B1000FFF70CFF0135082C04D10637B8B2C22804 +:100B2000EFD903E04F44B8B28045EADABDE8FC876C +:100B300080B5FFF7A8FB832000F072F8FFF7A0FB59 +:100B4000BDE8804000F05EB880B5FFF79CFBF82060 +:100B500000F066F8FFF794FBBDE8804000F052B863 +:100B600005484FF480710022FFF76CBB02484FF438 +:100B700080710122FFF766BB0008014080B5FFF7D6 +:100B8000EFFF3220FFF74EFDFFF7F0FF3220FFF7B7 +:100B900049FD02480121017080BD00BF1C000020FA +:100BA000B0B505464E200C4600F04CF8C5F3C70022 +:100BB000074DA8474F2000F045F8C4F1C704E0B244 +:100BC000A847C4F300202946BDE8B040084700BF4D +:100BD000210C000880B5FFF756FBF42000F020F848 +:100BE000FFF74EFBBDE8804000F00CB880B5FFF782 +:100BF0004AFBFC2000F014F8FFF742FBBDE8804000 +:100C0000AFF3008010B549F64044FFF713FE28B15A +:100C1000012024B1FFF706FD013CF6E7002010BDDE +:100C2000B0B50546FFF70EFD114C29462046FFF7EB +:100C3000C1FBFFF721FB0028FBD1BDE8B040FFF767 +:100C400007BD00BFB0B50546FFF708FDFFF7FAFC8A +:100C5000074C29462046FFF7ADFBFFF70DFB0028A8 +:100C6000FBD1FFF7F5FCBDE8B040FFF7FDBC00BFCE +:100C700000380040B0B50C460546FFF7E3FC2CB148 +:100C800015F8010BFFF75AFC013CF8E7FFF766FC8B +:100C9000BDE8B040FFF7DCBCB0B5074D0446C1B2BB +:100CA0002846FFF745FC28468021FFF73CFC00283A +:100CB000F9D02046B0BD00BF0038014088B000F038 +:100CC00027F9FFF76BFCFFF751FCFFF783FC604847 +:100CD000604CA0476048A0476048A0476048A047D4 +:100CE00060480168604800F031F960A0A047FFF754 +:100CF0004BFDFFF7F9FCDFF88881FF25C821C822EA +:100D0000B42300954046FFF7BBFD4046FFF7D4FDF6 +:100D1000FF20FFF79BFD5B4E00204421C8224023AB +:100D2000019500240096FFF787FE4046FFF7A4FCDC +:100D30000120FFF7CBFC41F28830FFF773FCFFF78F +:100D40001BFD4046FFF7B8FDFF20FFF77FFD514F29 +:100D50004DA20A20002118230094B8474EA20A2071 +:100D6000172118230094B8474FA20A2030210C23E2 +:100D70000094B84753A20A203C210C230094B847A2 +:100D800000208221C8224023CDE90065FFF754FEF0 +:100D900053A20A20642110230094B84756480094B7 +:100DA0001823039054A0D0E90112C068CDE90412C1 +:100DB000069003AD0A2047212A46B8474046FFF770 +:100DC0006EFC4FF47A70FFF72DFC504F7B26B6F582 +:100DD000767F13D228463946324600F0C7F80A20FB +:100DE00047212A4618230094FFF77EFE4046FFF76E +:100DF00056FC6420FFF716FC7B36E8E742480DF10D +:100E00000C0C90E80E00C06806900020ACE80E00C4 +:100E100047211823009003AA0A20FFF765FE18480F +:100E2000FFF73DFC4FF47A70FFF7FCFBFFF7D2FEB3 +:100E30000120FFF74BFCFFF7A7FB10B1FFF7BCFB4E +:100E4000F9E76420FFF7EEFBFFF7BCFBF3E700BF19 +:100E50008B31000815110008A6310008BE310008CA +:100E60007731000804000020683100084570617087 +:100E70006572204D6F64756C6520546573740D0048 +:100E800024000020282B0008312E353420496E63C1 +:100E900068000000E90A0008457061706572204D25 +:100EA0006F64756C6500000044657369676E656406 +:100EB0002042792057654163742053747564696FCB +:100EC00000000000776974682032303020782032CA +:100ED0003030207265736F6C7574696F6E0000003E +:100EE00041504D33324631303343425436204578F9 +:100EF000616D706C650000003E3E20506172746947 +:100F0000616C204D6F646500EC310008DA31000837 +:100F10000B484FF47A710068B0FBF1F00138B0F182 +:100F2000807F00D3FEE70749F02248600648027040 +:100F300000228A6007220A6050210170704700BFBA +:100F40000400002010E000E023ED00E00FB4054BAA +:100F500010B503A9044A029800F02CF810BC5DF803 +:100F600014FB0000990C0008000000200FB4084B8F +:100F700010B504A902AA039800F01CF8044602A9BF +:100F8000002000F0C1F8204610BC5DF814FB000002 +:100F90000911000802E008C8121F08C1002AFAD18E +:100FA00070477047002001E001C1121F002AFBD1E9 +:100FB000704700002DE9FF4F89B09B46044600258D +:100FC00006E025280BD05A460B999047641C6D1CEF +:100FD00020780028F5D10DB02846BDE8F08F002715 +:100FE000B8460122474900E0074314F8013F203B7F +:100FF00002FA03F00842F7D120782E2819D114F80C +:10100000010F47F004072A280ED06FF02F02207836 +:10101000A0F1300109290CD808EB880102EB41014D +:1010200000EB0108641CF2E70A98641C50F8048B7A +:101030000A9020780028CED0642808D0692806D0ED +:1010400075281ED05A460B9990476D1C58E00A9996 +:101050004FF00A0901C90A91002802DA40422D2105 +:1010600002E0390504D52B218DF82010012103E081 +:10107000F90704D02021F7E78A4608AE0DE00021E9 +:10108000FAE70A994FF00A0901C90A91F7E74946B8 +:10109000FFF750F8303106F8011D0028F7D1ADEB0D +:1010A000060000F12009780701D44FF00108C84577 +:1010B00002DDA8EB090000E000208046002706E0E2 +:1010C00008A85A46C05D0B9990476D1C7F1C574578 +:1010D000F6DB04E030205A460B9990476D1CB8F1BE +:1010E0000001A8F10108F5DC05E016F8010B5A46ED +:1010F0000B9990476D1CB9F10001A9F10109F4DCCD +:10110000641C65E7092801000A68531C0B60107015 +:101110007047000010B5044601E0FFF7BDFD14F86C +:10112000010B04490028F8D1BDE810400A20FFF760 +:10113000B3BD00000000002000000000000000001F +:10114000002F000000000700070000147F147F1428 +:1011500000242A7F2A1200626408132300364955AE +:10116000225000000503000000001C224100000086 +:1011700041221C000014083E08140008083E08081C +:10118000000000A060000008080808080000606077 +:101190000000002010080402003E5149453E0000B6 +:1011A000427F4000004261514946002141454B3198 +:1011B000001814127F10002745454539003C4A4964 +:1011C00049300001710905030036494949360006D6 +:1011D0004949291E0000363600000000563600003E +:1011E00000081422410000141414141400004122B9 +:1011F000140800020151090600324959513E007C91 +:101200001211127C007F49494936003E414141227A +:10121000007F4141221C007F49494941007F090963 +:101220000901003E4149497A007F0808087F000013 +:10123000417F4100002040413F01007F08142241CE +:10124000007F40404040007F020C027F007F040886 +:10125000107F003E4141413E007F09090906003EE2 +:101260004151215E007F091929460046494949310B +:101270000001017F0101003F4040403F001F20402E +:10128000201F003F4038403F0063140814630007EC +:101290000870080700615149454300007F41410043 +:1012A00000552A552A55000041417F0000040201E3 +:1012B00002040040404040400000010204000020C1 +:1012C00054545478007F48444438003844444420FF +:1012D00000384444487F00385454541800087E09AC +:1012E00001020018A4A4A47C007F08040478000074 +:1012F000447D4000004080847D00007F1028440031 +:101300000000417F4000007C04180478007C080441 +:10131000047800384444443800FC2424241800187D +:10132000242418FC007C0804040800485454542069 +:1013300000043F444020003C4040207C001C2040F2 +:10134000201C003C4030403C004428102844001C35 +:10135000A0A0A07C004464544C441414141414142D +:101360000000000000000000000000000000FC0081 +:101370000000000002000000000C020C020000004F +:101380000000000090D0BCD0BC900003000300001F +:101390001824FE448C000302070201001824D8B070 +:1013A0004C80000300010201C038E438E000010273 +:1013B0000201020208060000000000000000000018 +:1013C000000000F80402000000010204000204F81A +:1013D00000000004020100009060F860900000002E +:1013E000010000002020FC2020000000010000007F +:1013F000000000000000080600000000202020205F +:1014000020000000000000000000000000000002BA +:10141000000000000080601C0200040300000000C7 +:10142000F8040404F8000102020201000008FC00B4 +:101430000000000203020000188444241800030284 +:101440000202020008042424D80001020202010062 +:1014500040B088FC80000000000302003C242424EB +:10146000C400010202020100F824242CC000010281 +:10147000020201000C04E41C040000000300000050 +:10148000D8242424D8000102020201003844444434 +:10149000F80000030202010000001000000000003C +:1014A0000200000000002000000000000600000014 +:1014B00000205088040200000000010290909090EB +:1014C000900000000000000000020488502000028C +:1014D000010000001804C4241800000002000000ED +:1014E000F804E494F80001020202020000E09CF01B +:1014F000800002030000030204FC2424D80002033D +:1015000002020100F80404040C00010202020100BE +:1015100004FC0404F80002030202010004FC247429 +:101520000C0002030202030004FC24740C000203FA +:1015300002000000F0080444CC4000010202010057 +:1015400004FC2020FC040203000003020404FC0449 +:101550000400020203020200000404FC0404060466 +:101560000403000004FC24D00C0402030200030264 +:1015700004FC04000000020302020203FC3CC03C25 +:10158000FC0003000300030004FC30C4FC0402035D +:1015900002000300F8040404F80001020202010042 +:1015A00004FC24241800020302000000F8848404D0 +:1015B000F80001020207050004FC246498000203FD +:1015C00002000302182424448C00030202020100DA +:1015D0000C04FC040C0000020302000004FC0000E8 +:1015E000FC04000102020100047C80E01C040000F5 +:1015F000030000001CE03CE01C00000300030000AE +:10160000049C609C0400020300030200041CE01C14 +:1016100004000002030200000C84641C04000203A6 +:10162000020203000000FE020200000007040400A2 +:10163000000E30C00000000000010200000202FEA7 +:101640000000000404070000000402040000000081 +:10165000000000000000000000000808080808085A +:101660000000020000000000000000000040A0A0F8 +:10167000C00000010202030204FC2020C00000039D +:101680000202010000C020206000000102020200EE +:1016900000C02024FC0000010202030200C0A0A040 +:1016A000C0000001020202000020F824240400020D +:1016B000030202000040A0A0602000070A0A0A04FA +:1016C00004FC2020C0000203020003020020E4000A +:1016D0000000000203020000000020E400000808EF +:1016E0000807000004FC80E020200203020003023F +:1016F0000404FC000000020203020200E020E020DB +:10170000C00003000300030020E02020C00002030B +:101710000200030200C02020C000000102020100FC +:1017200020E02020C000080F0A02010000C0202095 +:10173000E0000001020A0F0820E040202000020320 +:10174000020000000060A0A02000000202020300CE +:101750000020F820000000000102020020E000202C +:10176000E00000010202030220E02080602000006F +:10177000030100006080E0806000000300030000BF +:1017800020608060200002030003020020E020802F +:1017900060200808070100000020A060200000026F +:1017A00003020200000020DE020000000007040027 +:1017B000000000FF00000000000F00000002DE201B +:1017C00000000004070000000201020404020000FF +:1017D0000000000000000000000000000000000009 +:1017E00000000000000000F80000000000000033CE +:1017F0003000000000100C06100C06000000000075 +:101800000000000040C07840C0784000043F04045D +:101810003F040400007088FC08300000001820FF1E +:10182000211E0000F008F000E018000000211C0359 +:101830001E211E0000F00888700000001E212324D5 +:101840001927211010160E000000000000000000F3 +:1018500000000000000000E0180402000000000783 +:101860001820400000020418E0000000004020188A +:1018700007000000404080F0804040000202010F5D +:1018800001020200000000F0000000000101011F41 +:1018900001010100000000000000000080B07000A5 +:1018A0000000000000000000000000000001010135 +:1018B00001010101000000000000000000303000C4 +:1018C000000000000000000080601804006018069E +:1018D0000100000000E010080810E000000F1020D8 +:1018E00020100F00001010F8000000000020203F22 +:1018F00020200000007008080888700000302824AC +:10190000222130000030088888483000001820204C +:1019100020110E000000C02010F800000007042471 +:10192000243F240000F808888808080000192120B6 +:1019300020110E0000E0108888180000000F112010 +:1019400020110E0000380808C83808000000003FC9 +:10195000000000000070880808887000001C222128 +:1019600021221C0000E010080810E00000003122D5 +:1019700022110F00000000C0C00000000000003075 +:1019800030000000000000800000000000008060C7 +:101990000000000000008040201008000001020448 +:1019A000081020004040404040404000040404042F +:1019B00004040400000810204080000000201008EB +:1019C00004020100007048080808F0000000003020 +:1019D00036010000C030C828E810E00007182724AE +:1019E00023140B000000C038E0000000203C23025C +:1019F0000227382008F8888888700000203F2020BF +:101A000020110E00C03008080808380007182020F0 +:101A10002010080008F808080810E000203F2020E7 +:101A200020100F0008F88888E8081000203F2020C8 +:101A30002320180008F88888E8081000203F2000BC +:101A400003000000C03008080838000007182020F4 +:101A5000221E020008F808000008F808203F2101B3 +:101A600001213F20000808F8080800000020203F5E +:101A70002020000000000808F8080800C0808080CE +:101A80007F00000008F888C028180800203F2001C7 +:101A90002638200008F8080000000000203F202021 +:101AA0002020300008F8F800F8F80800203F003F38 +:101AB000003F200008F830C00008F808203F200050 +:101AC00007183F00E01008080810E0000F10202061 +:101AD00020100F0008F808080808F000203F210136 +:101AE00001010000E01008080810E0000F1824248D +:101AF00038504F0008F8888888887000203F200000 +:101B0000030C3020007088080808380000382021B5 +:101B100021221C00180808F8080818000000203FBF +:101B20002000000008F808000008F808001F202026 +:101B300020201F000878880000C8380800000738F7 +:101B40000E010000F80800F80008F800033C070048 +:101B5000073C0300081868808068180820302C03B0 +:101B6000032C30200838C800C83808000000203F87 +:101B70002000000010080808C83808002038262176 +:101B800020201800000000FE020202000000007F7A +:101B900040404000000C30C0000000000000000188 +:101BA0000638C00000020202FE0000000040404073 +:101BB0007F00000000000402020204000000000098 +:101BC0000000000000000000000000008080808015 +:101BD00080808080000202040000000000000000FD +:101BE0000000000000008080808000000019242296 +:101BF00022223F2008F8008080000000003F1120D2 +:101C000020110E000000008080800000000E1120D6 +:101C100020201100000000808088F800000E1120B4 +:101C200020103F200000808080800000001F2222C2 +:101C300022221300008080F0888888180020203F2E +:101C4000202000000000808080808000006B949441 +:101C50009493600008F8008080800000203F2100FD +:101C600000203F2000809898000000000020203FC6 +:101C700020200000000000809898000000C08080B4 +:101C8000807F000008F8000080808000203F240250 +:101C90002D302000000808F8000000000020203F40 +:101CA000202000008080808080808000203F2000F5 +:101CB0003F20003F8080008080800000203F210086 +:101CC00000203F200000808080800000001F202036 +:101CD00020201F00808000808000000080FFA12065 +:101CE00020110E000000008080808000000E112076 +:101CF00020A0FF80808080008080800020203F2105 +:101D000020000100000080808080800000332424B7 +:101D100024241900008080E0808000000000001F63 +:101D2000202000008080000000808000001F202014 +:101D300020103F20808080000080808000010E30D5 +:101D40000806010080800080008080800F300C0336 +:101D50000C300F0000808000808080000020312E39 +:101D60000E312000808080000080808080818E7015 +:101D70001806010000808080808080000021302CC7 +:101D80002221300000000000807C020200000000E0 +:101D9000003F404000000000FF0000000000000085 +:101DA000FF0000000002027C800000000040403F75 +:101DB000000000000006010102020404000000000F :101DC0000000000000000000000000000000000013 -:101DD00000F0F0F0000000000000000000017F01B2 -:101DE0000000000000000000001C1C1C000000009F -:101DF00000008060301C8C60301C0C000000000073 -:101E000000000000000000000000000000000000D2 -:101E100000000000000000E00000000000E0000002 -:101E20000086E69F86868686E69F860000011F0163 -:101E3000010101011F010100000080C06020F820A5 -:101E4000E0C00000000003070C18FF70E1810000F3 -:101E50000000070F10107F100F0700008060206047 -:101E600080000000E02000000F3020309F70DC3741 -:101E70001030C0000000100E0300071810180700F3 -:101E80000000C02020E0C0000000000080E01F38FB -:101E9000E88703C43C040000070F1810100B070D5F -:101EA0001010080000808C4C38000000000000007A -:101EB0000000000000000000000000000000000022 -:101EC000000000000000000000000000000080E0B2 -:101ED000300804000000000000FEFF0100000000C8 -:101EE000000000000000030F18204000000408302C -:101EF000E0800000000000000000000001FFFE0084 -:101F000000000000004020180F0300000000000047 -:101F1000000000000000C0000000000000426666F3 -:101F20003C18FF183C6666420000000000000300F9 -:101F30000000000000000000000080000000000021 -:101F4000001010101010FF101010101000000000F2 -:101F5000000003000000000000000000000000007E -:101F60000000000000000000000000000000000071 -:101F700000808C4C380000000000000000000000D1 -:101F800000000000000000000010101010101010E1 -:101F90001010100000000000000000000000000011 -:101FA0000000000000000000000000000000000031 -:101FB000000000000000000000001C1C1C000000CD -:101FC000000000000000000000000000E0380C00ED -:101FD0000000000080701C03000000000060380E4C -:101FE0000100000000000000000080C060202060B0 -:101FF000C080000000FEFF010000000001FFFE00A5 -:102000000001070E181010180E0701000000808054 -:1020100080C0E000000000000000000000FFFF00A2 -:102020000000000000001010101F1F101010000012 -:102030000080402020202060C080000000030300BA -:10204000804020381F070000001C1A1918181818A3 -:10205000181F00000080C020202060C08000000009 -:10206000000303001010182FE780000000070F1076 -:10207000101010180F070000000000000000C0E062 -:10208000F000000000C0B088868180FFFF808000E3 -:10209000000000000010101F1F1010000000E06082 -:1020A000606060606060000000003F100808081871 -:1020B000F0E0000000070B101010101C0F030000D0 -:1020C000000080C040202020E0C0000000FCFF2174 -:1020D0001008080818F0E0000001070C1810101094 -:1020E000080F03000000C0E06060606060E0600016 -:1020F000000003000000E0180700000000000000DE -:10210000001F1F00000000000080C0602020202071 -:1021100060C080000087EF2C1818303068CF830033 -:1021200000070F0810101010180F07000000C0C0A3 -:1021300020202020C0800000001F3F604040402041 -:1021400010FFFE0000000C1C101010080F03000010 -:10215000000000000000000000000000000000007F -:10216000000E0E0E0000000000000000001C1C1CF1 -:10217000000000000000000000000000000000005F -:1021800000000000000C0C00000000000000000037 -:10219000005838000000000000000000000000802F -:1021A00040201000000010284482010000000000C0 -:1021B0000000000000000102040810000000000000 -:1021C0000000000000000000008484848484848473 -:1021D0008484840000000000000000000000000073 -:1021E00000001020408000000000000000000000FF -:1021F00000000182442810000000100804020100C1 -:102200000000000000C020201010101030E0C000BE -:102210000003030000F010080C070300000000009A -:102220001C1C1C0000000000000000C040602020BA -:102230002040C00000FCFF01F00E03C1FE03807FC0 -:102240000001070E0811111011090402000000001E -:1022500080E0E000000000000000807C4340477FF9 -:10226000F880000010181F1000000000131F1C1041 -:1022700020E0E02020202060C080000000FFFF1050 -:10228000101010182FE78000101F1F1010101010D2 -:10229000180F0700000080C0402020202060E000D0 -:1022A00000FCFF0100000000000001000001070E1B -:1022B000181010100804030020E0E0202020204027 -:1022C000C080000000FFFF000000000001FFFE00D2 -:1022D000101F1F10101018080E07010020E0E0204A -:1022E000202020202060800000FFFF101010107CB4 -:1022F00000000000101F1F10101010101018060012 -:1023000020E0E020202020206060800000FFFF10FF -:102310001010107C00000100101F1F1000000000B2 -:1023200000000000000080C06020202040E000008D -:1023300000FCFF0100004040C0C140400001070E0A -:10234000181010100F0F000020E0E0200000000027 -:1023500020E0E02000FFFF101010101010FFFF0021 -:10236000101F1F1000000000101F1F100000202071 -:1023700020E0E020202000000000000000FFFF001F -:102380000000000000001010101F1F1010100000AF -:1023900000000000202020E0E020202000000000BD -:1023A000000000FFFF0000000060E0808080C07F30 -:1023B0003F00000020E0E020000020A0602020007E -:1023C00000FFFF30187CE3C000000000101F1F104A -:1023D000000001131F1C181020E0E0200000000086 -:1023E0000000000000FFFF000000000000000000EF -:1023F000101F1F10101010101018060020E0E0E051 -:1024000000000000E0E0E02000FF013FFEC0E01E11 -:1024100001FFFF00101F1000031F0300101F1F10FB -:1024200020E0E0C0000000000020E02000FF0003EA -:10243000071C78E08000FF00101F10000000000063 -:10244000030F1F00000080C060202060C0800000DB -:1024500000FEFF010000000000FFFE000001070E6B -:10246000181010180C07010020E0E0202020202088 -:1024700060C0800000FFFF2020202020301F0F00C0 -:10248000101F1F100000000000000000000080C0AE -:1024900060202060C080000000FEFF0100000000FE -:1024A00000FFFE000001070E1111133C7C672100A4 -:1024B00020E0E0202020202060C0800000FFFF10EE -:1024C0001030F0D0080F0700101F1F10000000038D -:1024D0000F1C10100080C060202020204040E00031 -:1024E00000070F0C1818303060E08100001F0C0846 -:1024F00010101010180F07008060202020E0E0204E -:10250000202060800100000000FFFF0000000001AB -:1025100000000000101F1F100000000020E0E0205D -:10252000000000000020E02000FFFF00000000008D -:102530000000FF0000070F1810101010100807000F -:102540002060E0E02000000020E060200000077F25 -:10255000F88000807C03000000000000071F1C07BB -:102560000000000020E0E02000E0E0200020E0206B -:102570000007FFF8E01FFFFCE01F00000000031F42 -:102580000300011F03000000002060E0A000002005 -:10259000E0602000000000038F7CF8C6010000000E -:1025A0000010181E130001171F1810002060E0E033 -:1025B0002000000020E06020000001073EF8E01845 -:1025C0000700000000000010101F1F101000000086 -:1025D00000806020202020A0E0E02000000000001B -:1025E000C0F03E0F0300000000101C1F1710101059 -:1025F000101806000000000000FC0404040404009D -:102600000000000000FF00000000000000000000CB -:10261000007F404040404000000010E0000000000B -:102620000000000000000000031C608000000000AB -:1026300000000000000000030C7080000000040493 -:10264000040404FC0000000000000000000000FF83 -:1026500000000000000040404040407F00000000BB -:1026600000000010080C040C08100000000000001E -:10267000000000000000000000000000000000005A -:10268000000000000000000000000000000000004A -:10269000000000000000000000000000808080803A -:1026A0008080808080808080000000040408080012 -:1026B000000000000000000000000000000000001A -:1026C000000000000000000000000000000000000A -:1026D0000000000000000000000098D8446424249A -:1026E000FCF80000000F1F18101010081F1F101812 -:1026F0000020E0F000000000000000000000FFFFEC -:10270000180804040CF8F00000001F0F1810101037 -:10271000180F03000000000000000000000000008F -:1027200000E0F8180404043C3800000000030F0C1B -:10273000101010100806000000000000000000202B -:10274000E0F0000000E0F81C04040408FFFF0000B3 -:1027500000030F18101010081F0F080000000000E1 -:1027600000000000000000000000E0F8484444447D -:102770004C7870000000030F0C18101010080400B3 -:102780000000000080C0602020E0C00000040404BD -:10279000FFFF040404040000000010101F1F1010AD -:1027A0001000000000000000000000000000000019 -:1027B000000070F88C04048CF874040C007076CF60 -:1027C0008D8D8D89C87870000020E0F00000000039 -:1027D000000000000000FFFF08040404FCF80000F3 -:1027E00000101F1F100000101F1F1000000000002D -:1027F00000606000000000000000040404FCFC0015 -:102800000000000000001010101F1F10101000002A -:1028100000000000000000606000000000000000F8 -:10282000040404FCFC0000000000C0C08080C07FE5 -:102830003F0000000020E0F0000000000000000069 -:102840000000FFFF80C0F41C0404000000101F1FE4 -:102850001100031F1C1010000000202020E0F000D9 -:10286000000000000000000000FFFF00000000006A -:1028700000001010101F1F101010000000000000BA -:10288000000000000000000004FCFC0804FCFC0840 -:1028900004FCFC00101F1F10001F1F10001F1F1042 -:1028A0000000000000000000000000000004FCFC2C -:1028B00008080404FCF8000000101F1F100000109E -:1028C0001F1F1000000000000000000000000000BA -:1028D00000E0F0180C04040C18F0E00000030F0CEA -:1028E000101010100C0F030000000000000000008A -:1028F000000000000004FCFC080404040CF8F000D4 -:102900000080FFFF889010101C0F030000000000E3 -:10291000000000000000000000E0F81C04040408AF -:10292000F8FC000000030F1810109088FFFF8000D3 -:10293000000000000000000000000000040404FC8F -:10294000FC100804040C0C001010101F1F101010B5 -:102950000000000000000000000000000000000077 -:1029600000003078CCC48484840C1C0000001E1845 -:1029700010101011190F06000000000000C0000028 -:102980000000000000040404FFFF04040400000031 -:10299000000000000F1F1010100C000000000000CD -:1029A00000000000000000000004FCFE0000000425 -:1029B000FCFE000000000F1F181010081F0F080079 -:1029C00000000000000000000000000000040C3CBB -:1029D000FCC40000C43C0C0400000000010F1E0EEB -:1029E00001000000000000000000000000000000E6 -:1029F000043CFCC400E47CFC84807C040000071FD1 -:102A0000070000071F070000000000000000000092 -:102A1000000000000004041C7CE4C0341C0404001A -:102A20000010101C1601131F1C18100000000000DD -:102A3000000000000000000000040C3CFCC400C4C6 -:102A40003C0404000000C080C1370E0100000000FB -:102A500000000000000000000000000000001C0456 -:102A600004C4F47C1C0400000000101C1F1711108B -:102A700010180E0000000000000000F80C04000018 -:102A800000000000001028EF00000000000000001F -:102A90000000003F60400000000000000000FF0058 -:102AA00000000000000000000000FF000000000027 -:102AB000000000000000FF00000000000000040C07 -:102AC000F80000000000000000000000EF281000E7 -:102AD00000000000000040603F0000000000000017 -:102AE0000018060202040810202030080000000030 -:102AF00000000000000000000000000000000000D6 -:102B000000000000000000000102030400000000BB +:101DD0000000000000000000000000000000000003 +:101DE00000000000000000000000000000F0F0F023 +:101DF000000000000000000000017F010000000062 +:101E000000000000001C1C1C00000000000080609E +:101E1000301C8C60301C0C00000000000000000032 +:101E200000000000000000000000000000000000B2 +:101E3000000000E00000000000E000000086E69FD7 +:101E400086868686E69F860000011F01010101014A +:101E50001F010100000080C06020F820E0C00000E9 +:101E6000000003070C18FF70E18100000000070F5D +:101E700010107F100F0700008060206080000000BD +:101E8000E02000000F3020309F70DC371030C000A1 +:101E90000000100E03000718101807000000C020F3 +:101EA00020E0C0000000000080E01F38E88703C485 +:101EB0003C040000070F1810100B070D101008004D +:101EC00000808C4C38000000000000000000000082 +:101ED0000000000000000000000000000000000002 +:101EE0000000000000000000000080E03008040056 +:101EF0000000000000FEFF010000000000000000E4 +:101F00000000030F1820400000040830E0800000AB +:101F1000000000000000000001FFFE0000000000C3 +:101F2000004020180F030000000000000000000027 +:101F30000000C00000000000004266663C18FF1868 +:101F40003C66664200000000000003000000000044 +:101F500000000000000080000000000000101010D1 +:101F60001010FF10101010100000000000000300FF +:101F70000000000000000000000000000000000061 +:101F800000000000000000000000000000808C4CF9 +:101F90003800000000000000000000000000000009 +:101FA0000000000000101010101010101010100091 +:101FB0000000000000000000000000000000000021 +:101FC0000000000000000000000000000000000011 +:101FD0000000000000001C1C1C00000000000000AD +:101FE0000000000000000000E0380C0000000000CD +:101FF00080701C03000000000060380E010000002B +:1020000000000000000080C060202060C080000050 +:1020100000FEFF010000000001FFFE000001070EAE +:10202000181010180E0701000000808080C0E0002A +:10203000000000000000000000FFFF0000000000A2 +:1020400000001010101F1F10101000000080402012 +:1020500020202060C0800000000303008040203862 +:102060001F070000001C1A1918181818181F000064 +:102070000080C020202060C080000000000303001A +:102080001010182FE780000000070F101010101814 +:102090000F070000000000000000C0E0F00000009A +:1020A00000C0B088868180FFFF80800000000000B3 +:1020B0000010101F1F1010000000E06060606060E2 +:1020C0006060000000003F1008080818F0E0000001 +:1020D00000070B101010101C0F030000000080C040 +:1020E00040202020E0C0000000FCFF21100808086C +:1020F00018F0E0000001070C18101010080F030082 +:102100000000C0E06060606060E06000000003000C +:102110000000E0180700000000000000001F1F0082 +:10212000000000000080C0602020202060C08000EF +:102130000087EF2C1818303068CF830000070F0895 +:1021400010101010180F07000000C0C02020202021 +:10215000C0800000001F3F604040402010FFFE0094 +:1021600000000C1C101010080F03000000000000FD +:10217000000000000000000000000000000E0E0E35 +:102180000000000000000000001C1C1C00000000FB +:10219000000000000000000000000000000000003F +:1021A000000C0C0000000000000000000058380087 +:1021B000000000000000000000000080402010002F +:1021C0000000102844820100000000000000000010 +:1021D00000000102040810000000000000000000E0 +:1021E00000000000008484848484848484848400C7 +:1021F00000000000000000000000000000001020AF +:10220000408000000000000000000000000001828B +:102210004428100000001008040201000000000023 +:1022200000C020201010101030E0C0000003030098 +:1022300000F010080C070300000000001C1C1C002C +:1022400000000000000000C0406020202040C000CE +:1022500000FCFF01F00E03C1FE03807F0001070EAA +:1022600008111110110904020000000080E0E000D4 +:10227000000000000000807C4340477FF8800000A1 +:1022800010181F1000000000131F1C1020E0E02099 +:1022900020202060C080000000FFFF1010101018E8 +:1022A0002FE78000101F1F1010101010180F0700CC +:1022B000000080C0402020202060E00000FCFF01E2 +:1022C00000000000000001000001070E18101010AF +:1022D0000804030020E0E02020202040C08000000F +:1022E00000FFFF000000000001FFFE00101F1F1094 +:1022F000101018080E07010020E0E0202020202008 +:102300002060800000FFFF101010107C0000000013 +:10231000101F1F10101010101018060020E0E020F1 +:10232000202020206060800000FFFF101010107C33 +:1023300000000100101F1F1000000000000000003E +:10234000000080C06020202040E0000000FCFF0171 +:1023500000004040C0C140400001070E181010109E +:102360000F0F000020E0E0200000000020E0E0204F +:1023700000FFFF101010101010FFFF00101F1F10A3 +:1023800000000000101F1F100000202020E0E020AF +:10239000202000000000000000FFFF0000000000FF +:1023A00000001010101F1F1010100000000000008F +:1023B000202020E0E020202000000000000000FF9E +:1023C000FF0000000060E0808080C07F3F000000D0 +:1023D00020E0E020000020A06020200000FFFF306F +:1023E000187CE3C000000000101F1F100000011344 +:1023F0001F1C181020E0E02000000000000000007A +:1024000000FFFF000000000000000000101F1F1070 +:10241000101010101018060020E0E0E0000000008E +:10242000E0E0E02000FF013FFEC0E01E01FFFF00F2 +:10243000101F1000031F0300101F1F1020E0E0C03A +:10244000000000000020E02000FF0003071C78E0EF +:102450008000FF00101F100000000000030F1F008D +:10246000000080C060202060C080000000FEFF01EE +:102470000000000000FFFE000001070E18101018F9 +:102480000C07010020E0E0202020202060C0800018 +:1024900000FFFF2020202020301F0F00101F1F10E2 +:1024A0000000000000000000000080C060202060EC +:1024B000C080000000FEFF010000000000FFFE00E1 +:1024C0000001070E1111133C7C67210020E0E02081 +:1024D0002020202060C0800000FFFF101030F0D0CE +:1024E000080F0700101F1F10000000030F1C101022 +:1024F0000080C060202020204040E00000070F0C3A +:102500001818303060E08100001F0C081010101007 +:10251000180F07008060202020E0E020202060804D +:102520000100000000FFFF000000000100000000AB +:10253000101F1F100000000020E0E020000000003D +:102540000020E02000FFFF00000000000000FF006E +:1025500000070F1810101010100807002060E0E0AE +:102560002000000020E060200000077FF88000804D +:102570007C03000000000000071F1C070000000093 +:1025800020E0E02000E0E0200020E0200007FFF84D +:10259000E01FFFFCE01F00000000031F0300011FFD +:1025A00003000000002060E0A0000020E0602000A8 +:1025B000000000038F7CF8C6010000000010181E08 +:1025C000130001171F1810002060E0E02000000039 +:1025D00020E06020000001073EF8E018070000003E +:1025E00000000010101F1F1010000000008060206D +:1025F000202020A0E0E0200000000000C0F03E0FFE +:102600000300000000101C1F171010101018060007 +:102610000000000000FC04040404040000000000AA +:1026200000FF00000000000000000000007F4040AC +:1026300040404000000010E00000000000000000EA +:1026400000000000031C608000000000000000008B +:10265000000000030C70800000000404040404FC6B +:102660000000000000000000000000FF000000006B +:10267000000040404040407F00000000000000108B +:10268000080C040C0810000000000000000000000E +:10269000000000000000000000000000000000003A +:1026A000000000000000000000000000000000002A +:1026B000000000000000000080808080808080801A +:1026C00080808080000000040408080000000000F2 +:1026D00000000000000000000000000000000000FA +:1026E00000000000000000000000000000000000EA +:1026F00000000000000098D844642424FCF8000086 +:10270000000F1F18101010081F1F10180020E0F0F5 +:1027100000000000000000000000FFFF1808040493 +:102720000CF8F00000001F0F18101010180F030015 +:1027300000000000000000000000000000E0F818A9 +:102740000404043C3800000000030F0C10101010AB +:10275000080600000000000000000020E0F000007B +:1027600000E0F81C04040408FFFF000000030F1839 +:10277000101010081F0F08000000000000000000EB +:10278000000000000000E0F8484444444C78700029 +:102790000000030F0C1810101008040000000000C7 +:1027A00080C0602020E0C00000040404FFFF040497 +:1027B00004040000000010101F1F10101000000083 +:1027C000000000000000000000000000000070F8A1 +:1027D0008C04048CF874040C007076CF8D8D8D8978 +:1027E000C87870000020E0F0000000000000000049 +:1027F0000000FFFF08040404FCF8000000101F1F85 +:10280000100000101F1F100000000000006060009A +:10281000000000000000040404FCFC0000000000B4 +:1028200000001010101F1F1010100000000000000A +:10283000000000606000000000000000040404FCD0 +:10284000FC0000000000C0C08080C07F3F0000008E +:102850000020E0F000000000000000000000FFFF8A +:1028600080C0F41C0404000000101F1F1100031F8F +:102870001C1010000000202020E0F00000000000EC +:102880000000000000FFFF0000000000000010102A +:10289000101F1F10101000000000000000000000BA +:1028A0000000000004FCFC0804FCFC0804FCFC0024 +:1028B000101F1F10001F1F10001F1F10000000001E +:1028C00000000000000000000004FCFC08080404F4 +:1028D000FCF8000000101F1F100000101F1F100048 +:1028E00000000000000000000000000000E0F01800 +:1028F0000C04040C18F0E00000030F0C1010101072 +:102900000C0F0300000000000000000000000000A9 +:102910000004FCFC080404040CF8F0000080FFFF35 +:10292000889010101C0F0300000000000000000041 +:102930000000000000E0F81C04040408F8FC00009B +:1029400000030F1810109088FFFF800000000000A7 +:102950000000000000000000040404FCFC10080457 +:10296000040C0C001010101F1F10101000000000AD +:1029700000000000000000000000000000003078AF +:10298000CCC48484840C1C0000001E18101010118C +:10299000190F06000000000000C000000000000049 +:1029A00000040404FFFF0404040000000000000011 +:1029B0000F1F1010100C00000000000000000000AD +:1029C000000000000004FCFE00000004FCFE00000B +:1029D00000000F1F181010081F0F08000000000053 +:1029E000000000000000000000040C3CFCC40000DB +:1029F000C43C0C0400000000010F1E0E010000008A +:102A0000000000000000000000000000043CFCC4C6 +:102A100000E47CFC84807C040000071F07000007A2 +:102A20001F07000000000000000000000000000080 +:102A30000004041C7CE4C0341C0404000010101CBE +:102A40001601131F1C1810000000000000000000F9 +:102A50000000000000040C3CFCC400C43C04040062 +:102A60000000C080C1370E0100000000000000001F +:102A7000000000000000000000001C0404C4F47CFE +:102A80001C0400000000101C1F17111010180E006D +:102A900000000000000000F80C040000000000002E +:102AA000001028EF00000000000000000000003FC0 +:102AB00060400000000000000000FF000000000077 +:102AC000000000000000FF00000000000000000007 +:102AD0000000FF00000000000000040CF8000000EF +:102AE0000000000000000000EF28100000000000BF +:102AF000000040603F0000000000000000180602D7 +:102B0000020408102020300800000000000000002F :102B100000000000000000000000000000000000B5 -:102B200000000000000000000000000000000000A5 +:102B2000000000000102030400000000000000009B :102B30000000000000000000000000000000000095 :102B40000000000000000000000000000000000085 :102B50000000000000000000000000000000000075 @@ -714,56 +714,56 @@ :102C80000000000000000000000000000000000044 :102C90000000000000000000000000000000000034 :102CA0000000000000000000000000000000000024 -:102CB0000000000000000000000000000000000014 -:102CC0000000000000000000000000000000000004 -:102CD00000000000000000000000000000000000F4 +:102CB000000000000000000000000000000020E014 +:102CC000E0E0E0C0000000000080E0E0E0E0E000C4 +:102CD0000000000000E0E0E0E0E000000000000094 :102CE00000000000000000000000000000000000E4 -:102CF00000000000000000000000000000000000D4 -:102D000000000000000000000000000000000000C3 -:102D100000000000000000000000000000000000B3 -:102D200000000000000000000000000000000000A3 -:102D30000000000000000000000000000000000093 +:102CF000C0E0E0E0E0E0C0000000000000000000F4 +:102D0000000000000000000000000000000000C003 +:102D1000C0C0C000000000000000000000000080F3 +:102D2000C0E0E0E0F0F0F0F0F0F0E0E0C0C0000063 +:102D30000000C0C0C0C00000000000000000000093 :102D40000000000000000000000000000000000083 -:102D50000000000000000000000000000000000073 -:102D60000000000000000000000000000000000063 +:102D5000000000000000000000F8F8F8F8F800009B +:102D600000F8F8F8F8F8000000000000000000008B :102D70000000000000000000000000000000000053 -:102D80000000000000000000000000000000000043 -:102D90000000000000000000000000000000000033 -:102DA0000000000000000000000000000000000023 -:102DB0000000000000000000000000000000000013 -:102DC0000000000000000000000000000000000003 -:102DD00000000000000000000000000000000000F3 -:102DE00000000000000000000000000000000000E3 -:102DF00000000000000000000000000000000000D3 -:102E000000000000000000000000000000000000C2 -:102E100000000000000000000000000000000000B2 -:102E200000000000000000000000000000000000A2 -:102E30000000000000000000000000000000000092 -:102E40000000000000000000000000000000000082 -:102E50000000000000000000000000000000000072 -:102E60000000000000000000000000000000000062 -:102E70000000000000000000000000000000000052 -:102E80000000000000000000000000000000000042 -:102E90000000000000000000000000000000000032 -:102EA0000000000000000000000000000000000022 -:102EB0000000000000000000000000000000000012 -:102EC0000000000000000000000000000000000002 -:102ED00000000000000000000000000000000000F2 -:102EE00000000000000000000000000000000000E2 -:102EF00000000000000000000000000000000000D2 -:102F000000000000000000000000000000000000C1 -:102F100000000000000000000000000000000000B1 -:102F200000000000000000000000000000000000A1 -:102F30000000000000000000000000000000000091 -:102F40000000000000000000000000000000000081 -:102F50000000000000000000000000000000000071 -:102F60000000000000000000000000000000000061 -:102F70000000000000000000000000000000000051 -:102F80000000000000000000000000000000000041 -:102F90000000000000000000000000000000000031 -:102FA0000000000000000000000000000000000021 -:102FB0000000000000000000000000000000000011 -:102FC0000000000000000000000000000000000001 +:102D80000000000000000007FFFFFFFFF800000048 +:102D9000F8FFFFFF7FFFFFFEE0000080FCFFFFFF6A +:102DA0003F0100C0F0F8F8FC7C3C3C3C7CFCF8F8AF +:102DB000F0C000000080F0FEFFFF3F073FFFFFFE76 +:102DC000F08000000000C0E0F0F8F8FC7C3C3C7CA7 +:102DD0007C7C7838787CFFFFFFFFFF7C7C7C7C006C +:102DE000000000000000007FFFFFFFFFF1E1C0C016 +:102DF000C18183030301007878FCFFFFFFFF7C7C27 +:102E00007C7C0000FCFCFCFCFC0000000000FCFCE6 +:102E1000FCFCFC000000C0F0F8F8FCFC7C3C3C7CB6 +:102E200078FFFFFFFFFF000000FCFCFCFCFC000043 +:102E300080E0F0F8F8FC7C3C3C3C7CFCF8F8F0E0EE +:102E40008000000000000000000000000000000002 +:102E5000001FFFFFFFFEF0FFFFFF1F0100077FFFC6 +:102E6000FFFEE0FFFFFFFF0700007FFFFFFFFF9E69 +:102E70001E1E1E1E1E1E1F1F1F1F00E0FCFFFFFF49 +:102E80003F3D3C3C3C3F3FFFFFFFFCE0007FFFFF3E +:102E9000FFFFC10000000000000000000000FFFF75 +:102EA000FFFFFF00000000000000000000000080A5 +:102EB000C08101030307070F0F1FFFFFFFFEF8008C +:102EC00000FFFFFFFFFF000000000000FFFFFFFF0B +:102ED000FF0000000000FFFFFFFFFF00007FFFFF7B +:102EE000FFFFC3000000000000FFFFFFFFFF000026 +:102EF00000FFFFFFFFFF0000FFFFFFFFFF8100005B +:102F000000000080FFFFFFFFFF0000000000000046 +:102F100000000000000000000000031F1F1F1F1F13 +:102F20001F010000000000071F1F1F1F1F1F0000C0 +:102F300000000003070F0F1F1F1E1E1E1E1E1F1F57 +:102F40000E181F1F1F1F07000000000000000001D7 +:102F50000F1F1F1F1F1803070F0F1F1F1E1E1E1EF0 +:102F60001F1F0F0E0000030F1F1F1F1E1E1E1E1807 +:102F7000000000000002070F0F1F1F1F1E1E1E1E55 +:102F80001E1F1F0F0F07010000010F1F1F1F1F1E15 +:102F90001E1E1C00030F1F1F1F1F1E1E1E1F0F1FA4 +:102FA0001F1F1F00000003070F1F1F1F1E1E1E1ED6 +:102FB0001F0F1F1F1F1F0000001F1F1F1F1F0000CC +:102FC0000003070F1F1F1F1E1E1E1F1F1F0F0703BB :102FD00000000000000000000000000000000000F1 :102FE00000000000000000000000000000000000E1 :102FF00000000000000000000000000000000000D1 @@ -778,173 +778,29 @@ :103080000000000000000000000000000000000040 :103090000000000000000000000000000000000030 :1030A0000000000000000000000000000000000020 -:1030B000000000008080808080800000000000C050 -:1030C000E0E0E0E0C0C00000000000000000000000 +:1030B0000000000000000000000000000000000010 +:1030C0000000000000000000000000000000000000 :1030D00000000000000000000000000000000000F0 :1030E00000000000000000000000000000000000E0 -:1030F0000000000000007EFEFEFEFEFEFE0000005E -:1031000080FEFEFEFEFEFEFEFC00000000FCFEFE59 -:10311000FEFEFE3E00000000000000008080808077 -:10312000808000000000000000000000000080F827 -:10313000FEFEFEFEFEFEFEFEF0800000000000002F -:10314000000000000000008080808080800000007F -:10315000000000F8F8F8F8F8F8F8000000000000A7 -:1031600000000000000000000000E0F0F8FCFCFEA1 -:10317000FE7E7E3E3E7E7EFEFCFC7830000000003F -:10318000F8F8F8F8F8F8F800000000000000000077 -:10319000000000000000000000000000000000002F -:1031A0000000000000000000808080808000FFFFA1 -:1031B000FFFFFFFFFF000000030F1F1F1F1F0F0F68 -:1031C000000000000000000000808080808080807F -:1031D00000000000000000000000000000000000EF -:1031E00000000000000000000000000000000000DF -:1031F000003FFFFFFFFFFFFC00C0FFFFFFFF7FFF5F -:10320000FFFFFFFF8000FEFFFFFFFFFF0F0000003A -:10321000F0F8FEFEFFFF7F1F0F0F1FFFFFFFFEFCFA -:10322000F8C000000000C0FCFFFFFFFF7F071FFF8A -:10323000FFFFFFFFF88000000000C0F0FCFEFFFF72 -:10324000FF7F1F1F1F1F3F3F3F0E041F1FFFFFFF7A -:10325000FFFFFFFF1F1F1F1F0000000000000000F6 -:10326000000000001F7FFFFFFFFFFFFCF8F8F0F0F9 -:10327000E0E0C1C08000001F1F1FFFFFFFFFFFFF36 -:10328000FF1F1F1F0F000000FFFFFFFFFFFF0000D9 -:103290000000FFFFFFFFFFFFFF000000C0F8FCFE83 -:1032A000FFFFFF7F1F1F1F3FFFFFFFFFFFFFFF000D -:1032B000000000FFFFFFFFFFFFFF000000C0F8FC61 -:1032C000FEFFFFFF3F1F1F1F3FFFFFFFFEFCF8E059 -:1032D00000000000000000000000000000000000EE -:1032E0000000000000000000000000000FFFFFFFD2 -:1032F000FFFFFCFFFFFFFF1F0001FFFFFFFFFFFEBF -:10330000FFFFFFFFFF070000001EFFFFFFFFFFFFA3 -:10331000DF1F1F1F1F1F1F9F9F1F1F1F0000E0FE9B -:10332000FFFFFFFFFFFFFCFCFCFDFFFFFFFFFFFFB8 -:10333000FCC00000FFFFFFFFFFFFFF800000000058 -:1033400000800000000000FFFFFFFFFFFFFF000004 -:10335000000000000000000000000000000080C02D -:10336000C0800101030303070FFFFFFFFFFFFFFF03 -:1033700070000000FFFFFFFFFFFFFF0000000000E4 -:103380000000FFFFFFFFFFFF00000080FFFFFFFFC7 -:10339000FFFFFF000000FFFFFFFFFFFFFF800000B7 -:1033A0000000FFFFFFFFFFFFFF00000000FFFFFF27 -:1033B000FFFFFFFF000000FFFFFFFFFFFFFF800098 -:1033C000000000FFFFFFFFFFFFFF00000000000004 -:1033D00000000000000000000000000000000000ED -:1033E00000000000000000073F3F3F3F3F3F3F3FDE -:1033F0000F000000003F3F3F3F3F3F3F3F3F010086 -:103400000000000001070F1F1F3F3F3F3E3E3E3EB2 -:103410003F3F1F1F0E00303E3F3F3F3F3F1F010019 -:103420000000000000033F3F3F3F3F3F3C000003E0 -:10343000070F1F3F3F3F3F3E3E3F3F3F1F1E0800DD -:1034400000030F1F3F3F3F3F3F3E3F3F1C18000020 -:1034500000000000000000070F1F1F3F3F3F3F3EDE -:103460003E3F3F3F3F1F1F0F070300000000070FB5 -:103470001F3F3F3F3F3E3F3F3F1C00000F1F3F3F6E -:103480003F3F3F3E3F1F1F3F3F3F3F3F3F0000004A -:1034900000070F1F3F3F3F3F3F3E3F1F1F3F3F3F44 -:1034A0003F3F3F000000003F3F3F3F3F3F3F0000A6 -:1034B000000003070F1F3F3F3F3F3E3E3F3F3F1F80 -:1034C0001F0F0300000000000000000000000000CB -:1034D00000000000000000000000000000000000EC -:1034E00000000000000000000000000000000000DC -:1034F00000000000000000000000000000000000CC -:1035000000000000000000000000000000000000BB -:1035100000000000000000000000000000000000AB -:10352000000000000000000000000000000000009B -:10353000000000000000000000000000000000008B -:10354000000000000000000000000000000000007B -:10355000000000000000000000000000000000006B -:10356000000000000000000000000000000000005B -:10357000000000000000000000000000000000004B -:10358000000000000000000000000000000000003B -:10359000000000000000000000000000000000002B -:1035A000000000000000000000000000000000001B -:1035B000000000000000000000000000000000000B -:1035C00000000000000000000000000000000000FB -:1035D00000000000000000000000000000000000EB -:1035E00000000000000000000000000000000000DB -:1035F00000000000000000000000000000000000CB -:1036000000000000000000000000000000000000BA -:1036100000000000000000000000000000000000AA -:10362000000000000000000000000000000000009A -:10363000000000000000000000000000000000008A -:10364000000000000000000000000000000000007A -:10365000000000000000000000000000000000006A -:10366000000000000000000000000000000000005A -:10367000000000000000000000000000000000004A -:10368000000000000000000000000000000000003A -:10369000000000000000000000000000000000002A -:1036A000000000000000000000000000000000001A -:1036B000000000000000000000000000000000000A -:1036C00000000000000000000000000000000000FA -:1036D00000000000000000000000000000000000EA -:1036E00000000000000000000000000000000000DA -:1036F00000000000000000000000000000000000CA -:1037000000000000000000000000000000000000B9 -:1037100000000000000000000000000000000000A9 -:103720000000000000000000000000000000000099 -:103730000000000000000000000000000000000089 -:103740000000000000000000000000000000000079 -:103750000000000000000000000000000000000069 -:103760000000000000000000000000000000000059 -:103770000000000000000000000000000000000049 -:103780000000000000000000000000000000000039 -:103790000000000000000000000000000000000029 -:1037A0000000000000000000000000000000000019 -:1037B0000000000000000000000000000000000009 -:1037C00000000000000000000000000000000000F9 -:1037D00000000000000000000000000000000000E9 -:1037E00000000000000000000000000000000000D9 -:1037F00000000000000000000000000000000000C9 -:1038000000000000000000000000000000000000B8 -:1038100000000000000000000000000000000000A8 -:103820000000000000000000000000000000000098 -:103830000000000000000000000000000000000088 -:103840000000000000000000000000000000000078 -:103850000000000000000000000000000000000068 -:103860000000000000000000000000000000000058 -:103870000000000000000000000000000000000048 -:103880000000000000000000000000000000000038 -:103890000000000000000000000000000000000028 -:1038A0000000000000000000000000000000000018 -:1038B0000000000000000000000000000000000008 -:1038C00000000000000000000000000000000000F8 -:1038D00000000000000000000000000000000000E8 -:1038E00000000000000000000000000000000000D8 -:1038F00000000000000000000000000000000000C8 -:1039000000000000000000000000000000000000B7 -:1039100000000000000000000000000000000000A7 -:103920000000000000000000000000000000000097 -:103930000000000000000000000000000000000087 -:103940000000000000000000000000000000000077 -:103950000000000000000000000000000000000067 -:103960000000000000000000000000000000000057 -:103970000000000000000000000000000000000047 -:103980000000000000000000000000000000000037 -:103990000000000000000000000000000000000027 -:1039A0000000000000000000000000000000000017 -:1039B0000000000000000000000000000000000007 -:1039C00000000000000000000000000000000000F7 -:1039D00000000000000000000000000000000000E7 -:1039E00000000000000000000000000000000000D7 -:1039F00000000000000000000000000000000000C7 -:103A000000000000000000000000000000000000B6 -:103A100000000000000000000000000000000000A6 -:103A20000000000000000000000000000000000096 -:103A30000000000000000000000000000000000086 -:103A40000000000000000000000000000000000076 -:103A50000000000000000000000000000000000066 -:103A60000000000000000000000000000000000056 -:103A70000000000000000000000000000000000046 -:103A80000000000000000000000000000000000036 -:103A90000000000000000000000000000000000026 -:103AA0000000000000000000000000000D0A576543 -:103AB0004163742053747564696F20436F7265208D -:103AC000426F6172640D007765616374737475642D -:103AD000696F2E74616F62616F2E636F6D0D007779 -:103AE0006561637473747564696F2E616C69657860 -:103AF00070726573732E636F6D0D0000203B0008BC -:103B00000000002008000000840F0008283B000887 -:103B10000800002060230000940F0008000000004F -:083B20000000000000D8B80508 +:1030F00000000000000000000000000000000000D0 +:1031000000000000000000000000000000000000BF +:1031100000000000000000000000000000000000AF +:10312000000000000000000000000000000000009F +:10313000000000000000000000000000000000008F +:10314000000000000000000000000000000000007F +:10315000000000000000000000000000000000006F +:10316000000000000000000053797374656D436C2B +:103170006B3A25640D0A00777777772E7765616360 +:10318000742D74632E636E0D0A0D000D0A57654190 +:1031900063742053747564696F20436F72652042B5 +:1031A0006F6172640D00776561637473747564692F +:1031B0006F2E74616F62616F2E636F6D0D007765A6 +:1031C00061637473747564696F2E616C696578707E +:1031D000726573732E636F6D0D003E3E204E756DEC +:1031E0003D25642020202020000000003E3E204895 +:1031F000656C6C6F20576F726C642E002032000873 +:103200000000002008000000940F00082832000889 +:1032100008000020A8170000A40F0008000000000C +:083220000000000000D8B80511 :04000005080000FDF2 :00000001FF diff --git a/Example/EpaperModuleTest_APM32F103/Src/main.c b/Example/EpaperModuleTest_APM32F103/Src/main.c index d6f0986..27aad2d 100644 --- a/Example/EpaperModuleTest_APM32F103/Src/main.c +++ b/Example/EpaperModuleTest_APM32F103/Src/main.c @@ -15,7 +15,7 @@ #include "bmp.h" // define for White Black Red Epaper Module -#define EPD_BWR +//#define EPD_BWR uint8_t image_bw[EPD_W_BUFF_SIZE * EPD_H]; #ifdef EPD_BWR @@ -88,7 +88,7 @@ int main(void) sprintf((char *)&text, ">> Hello World."); epd_paint_showString(10, 71, text, EPD_FONT_SIZE24x12, EPD_COLOR_RED); -#if 0 +#if 1 epd_paint_showString(10,100,(uint8_t *)&"APM32F103CBT6 Example",EPD_FONT_SIZE16x8,EPD_COLOR_RED); #else epd_paint_drawRectangle(10, 103, EPD_H - 10, 116, EPD_COLOR_RED, 1); @@ -99,8 +99,14 @@ int main(void) epd_paint_newimage(image_bw, EPD_W, EPD_H, EPD_ROTATE_180, EPD_COLOR_WHITE); epd_paint_selectimage(image_bw); + + #ifdef EPD_154 + epd_paint_clear(EPD_COLOR_WHITE); + epd_paint_showPicture((EPD_H - 200) / 2,(EPD_W - 64) / 2,200,64,gImage_5,EPD_COLOR_WHITE); + #else epd_paint_clear(EPD_COLOR_WHITE); epd_paint_showPicture((EPD_H - 250) / 2, (EPD_W - 122) / 2, 250, 122, gImage_4, EPD_COLOR_WHITE); +#endif epd_displayBW(image_bw); epd_enter_deepsleepmode(EPD_DEEPSLEEP_MODE1); @@ -111,17 +117,25 @@ int main(void) epd_paint_selectimage(image_bw); epd_paint_clear(EPD_COLOR_WHITE); +#ifdef EPD_154 + epd_paint_showString(10, 0, (uint8_t *)&"1.54 Inch", EPD_FONT_SIZE24x12, EPD_COLOR_BLACK); + epd_paint_showString(10, 23, (uint8_t *)&"Epaper Module", EPD_FONT_SIZE24x12, EPD_COLOR_BLACK); + epd_paint_showString(10, 48, (uint8_t *)&"Designed By WeAct Studio", EPD_FONT_SIZE12x6, EPD_COLOR_BLACK); + epd_paint_showString(10, 60, (uint8_t *)&"with 200 x 200 resolution", EPD_FONT_SIZE12x6, EPD_COLOR_BLACK); + epd_paint_showPicture((EPD_H - 200) / 2,130,200,64,gImage_5,EPD_COLOR_WHITE); +#endif #ifdef EPD_213 epd_paint_showString(10, 0, (uint8_t *)&"2.13 Epaper Module", EPD_FONT_SIZE24x12, EPD_COLOR_BLACK); epd_paint_showString(10, 50, (uint8_t *)&"with 250 x 122 resolution", EPD_FONT_SIZE16x8, EPD_COLOR_BLACK); + epd_paint_showString(10, 29, (uint8_t *)&"Designed By WeAct Studio", EPD_FONT_SIZE16x8, EPD_COLOR_BLACK); #endif #ifdef EPD_29 epd_paint_showString(10, 0, (uint8_t *)&"2.9 Epaper Module", EPD_FONT_SIZE24x12, EPD_COLOR_BLACK); epd_paint_showString(10, 50, (uint8_t *)&"with 296 x 128 resolution", EPD_FONT_SIZE16x8, EPD_COLOR_BLACK); -#endif epd_paint_showString(10, 29, (uint8_t *)&"Designed By WeAct Studio", EPD_FONT_SIZE16x8, EPD_COLOR_BLACK); +#endif -#if 0 +#if 1 epd_paint_showString(10,100,(uint8_t *)&"APM32F103CBT6 Example",EPD_FONT_SIZE16x8,EPD_COLOR_BLACK); #else epd_paint_drawRectangle(10, 103, EPD_H - 10, 116, EPD_COLOR_BLACK, 1); diff --git a/Example/EpaperModuleTest_AT32F403A/Epaper/bmp.h b/Example/EpaperModuleTest_AT32F403A/Epaper/bmp.h index 2a0040a..bd22f80 100644 --- a/Example/EpaperModuleTest_AT32F403A/Epaper/bmp.h +++ b/Example/EpaperModuleTest_AT32F403A/Epaper/bmp.h @@ -528,6 +528,109 @@ const unsigned char gImage_4[4000]={ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, }; +const unsigned char gImage_5[1600]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xE0,0xE0,0xE0,0xE0,0xC0,0x00,0x00,0x00,0x00, +0x00,0x80,0xE0,0xE0,0xE0,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xE0,0xE0, +0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0xE0,0xE0,0xE0,0xE0,0xC0,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0xE0,0xE0,0xF0,0xF0,0xF0,0xF0, +0xF0,0xF0,0xE0,0xE0,0xC0,0xC0,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xC0,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0xF8,0xF8,0xF8,0xF8,0xF8,0x00,0x00,0x00,0xF8,0xF8,0xF8,0xF8,0xF8,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07, +0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,0xF8,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0xFE, +0xE0,0x00,0x00,0x80,0xFC,0xFF,0xFF,0xFF,0x3F,0x01,0x00,0xC0,0xF0,0xF8,0xF8,0xFC, +0x7C,0x3C,0x3C,0x3C,0x7C,0xFC,0xF8,0xF8,0xF0,0xC0,0x00,0x00,0x00,0x80,0xF0,0xFE, +0xFF,0xFF,0x3F,0x07,0x3F,0xFF,0xFF,0xFE,0xF0,0x80,0x00,0x00,0x00,0x00,0xC0,0xE0, +0xF0,0xF8,0xF8,0xFC,0x7C,0x3C,0x3C,0x7C,0x7C,0x7C,0x78,0x38,0x78,0x7C,0xFF,0xFF, +0xFF,0xFF,0xFF,0x7C,0x7C,0x7C,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F, +0xFF,0xFF,0xFF,0xFF,0xF1,0xE1,0xC0,0xC0,0xC1,0x81,0x83,0x03,0x03,0x01,0x00,0x78, +0x78,0xFC,0xFF,0xFF,0xFF,0xFF,0x7C,0x7C,0x7C,0x7C,0x00,0x00,0xFC,0xFC,0xFC,0xFC, +0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0xFC,0xFC,0xFC,0x00,0x00,0x00,0xC0,0xF0, +0xF8,0xF8,0xFC,0xFC,0x7C,0x3C,0x3C,0x7C,0x78,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, +0x00,0xFC,0xFC,0xFC,0xFC,0xFC,0x00,0x00,0x80,0xE0,0xF0,0xF8,0xF8,0xFC,0x7C,0x3C, +0x3C,0x3C,0x7C,0xFC,0xF8,0xF8,0xF0,0xE0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xFF,0xFE,0xF0,0xFF, +0xFF,0xFF,0x1F,0x01,0x00,0x07,0x7F,0xFF,0xFF,0xFE,0xE0,0xFF,0xFF,0xFF,0xFF,0x07, +0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0x9E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1F,0x1F, +0x1F,0x1F,0x00,0xE0,0xFC,0xFF,0xFF,0xFF,0x3F,0x3D,0x3C,0x3C,0x3C,0x3F,0x3F,0xFF, +0xFF,0xFF,0xFC,0xE0,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xC1,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x81,0x01,0x03,0x03,0x07,0x07,0x0F, +0x0F,0x1F,0xFF,0xFF,0xFF,0xFE,0xF8,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, +0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF, +0xFF,0xFF,0xFF,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xC3,0x00,0x00,0x00,0x00,0x00, +0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, +0xFF,0xFF,0xFF,0xFF,0xFF,0x81,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0xFF,0xFF,0xFF, +0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x03,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x01,0x00,0x00,0x00,0x00,0x00,0x07, +0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0x0F,0x0F,0x1F, +0x1F,0x1E,0x1E,0x1E,0x1E,0x1E,0x1F,0x1F,0x0E,0x18,0x1F,0x1F,0x1F,0x1F,0x07,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0F,0x1F,0x1F,0x1F,0x1F,0x18,0x03,0x07, +0x0F,0x0F,0x1F,0x1F,0x1E,0x1E,0x1E,0x1E,0x1F,0x1F,0x0F,0x0E,0x00,0x00,0x03,0x0F, +0x1F,0x1F,0x1F,0x1E,0x1E,0x1E,0x1E,0x18,0x00,0x00,0x00,0x00,0x00,0x02,0x07,0x0F, +0x0F,0x1F,0x1F,0x1F,0x1E,0x1E,0x1E,0x1E,0x1E,0x1F,0x1F,0x0F,0x0F,0x07,0x01,0x00, +0x00,0x01,0x0F,0x1F,0x1F,0x1F,0x1F,0x1E,0x1E,0x1E,0x1C,0x00,0x03,0x0F,0x1F,0x1F, +0x1F,0x1F,0x1E,0x1E,0x1E,0x1F,0x0F,0x1F,0x1F,0x1F,0x1F,0x00,0x00,0x00,0x03,0x07, +0x0F,0x1F,0x1F,0x1F,0x1E,0x1E,0x1E,0x1E,0x1F,0x0F,0x1F,0x1F,0x1F,0x1F,0x00,0x00, +0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x00,0x00,0x00,0x03,0x07,0x0F,0x1F,0x1F,0x1F,0x1E, +0x1E,0x1E,0x1F,0x1F,0x1F,0x0F,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +}; + #ifdef __cplusplus } #endif diff --git a/Example/EpaperModuleTest_AT32F403A/Epaper/epaper.c b/Example/EpaperModuleTest_AT32F403A/Epaper/epaper.c index 77cb956..cc59656 100644 --- a/Example/EpaperModuleTest_AT32F403A/Epaper/epaper.c +++ b/Example/EpaperModuleTest_AT32F403A/Epaper/epaper.c @@ -24,7 +24,7 @@ EPD_PAINT EPD_Paint; static uint8_t _hibernating = 1; -static const unsigned char ut_partial[] = +static const unsigned char lut_partial[] = { 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @@ -228,18 +228,37 @@ uint8_t epd_init(void) return 1; epd_write_reg(0x12); // SWRESET + + epd_delay(10); if (epd_wait_busy()) return 1; - - epd_write_reg(0x01); // Driver output control + + epd_write_reg(0x01); // Driver output control + #if defined(EPD_29) || defined(EPD_213) epd_write_data(0x27); epd_write_data(0x01); epd_write_data(0x01); + #else + epd_write_data(0xC7); + epd_write_data(0x00); + epd_write_data(0x01); + #endif epd_write_reg(0x11); // data entry mode epd_write_data(0x01); + #ifdef EPD_154 + epd_write_reg(0x44); // set Ram-X address start/end position + epd_write_data(0x00); + epd_write_data(0x18); + + epd_write_reg(0x45); // set Ram-Y address start/end position + epd_write_data(0xC7); + epd_write_data(0x00); + epd_write_data(0x00); + epd_write_data(0x00); + #else epd_write_reg(0x44); // set Ram-X address start/end position epd_write_data(0x00); epd_write_data(0x0F); // 0x0F-->(15+1)*8=128 @@ -249,24 +268,23 @@ uint8_t epd_init(void) epd_write_data(0x01); epd_write_data(0x00); epd_write_data(0x00); + #endif epd_write_reg(0x3C); // BorderWavefrom epd_write_data(0x05); + #if defined(EPD_29) || defined(EPD_213) epd_write_reg(0x21); // Display update control epd_write_data(0x00); epd_write_data(0x80); + #endif epd_write_reg(0x18); // Read built-in temperature sensor epd_write_data(0x80); - epd_write_reg(0x4E); // set RAM x address count to 0; - epd_write_data(0x00); - epd_write_reg(0x4F); // set RAM y address count to 0x127; - epd_write_data(0x27); - epd_write_data(0x01); + epd_setpos(0,0); - if (epd_wait_busy()) + if (epd_power_on()) return 1; return 0; @@ -276,26 +294,47 @@ uint8_t epd_init_partial(void) { if (epd_init()) return 1; - + + #if defined(EPD_29) || defined(EPD_213) epd_write_reg(0x32); epd_cs_reset(); - for (int j = 0; j < sizeof(ut_partial); j++) + for (int j = 0; j < sizeof(lut_partial); j++) { - _epd_write_data(ut_partial[j]); + _epd_write_data(lut_partial[j]); } _epd_write_data_over(); epd_cs_set(); + #endif return 0; } void epd_enter_deepsleepmode(uint8_t mode) { + epd_power_off(); epd_write_reg(0x10); epd_write_data(mode); _hibernating = 1; } +uint8_t epd_power_on(void) +{ + epd_write_reg(0x22); // Display Update Control + epd_write_data(0xf8); + epd_write_reg(0x20); // Activate Display Update Sequence + + return epd_wait_busy(); +} + +uint8_t epd_power_off(void) +{ + epd_write_reg(0x22); // Display Update Control + epd_write_data(0x83); + epd_write_reg(0x20); // Activate Display Update Sequence + + return epd_wait_busy(); +} + void epd_init_internalTempSensor(void) { epd_write_reg(0x18); @@ -307,9 +346,13 @@ void epd_init_internalTempSensor(void) } void epd_update(void) - { +{ epd_write_reg(0x22); // Display Update Control + #ifdef EPD_154 + epd_write_data(0xF4); + #else epd_write_data(0xF7); + #endif epd_write_reg(0x20); // Activate Display Update Sequence epd_wait_busy(); @@ -318,7 +361,11 @@ void epd_update(void) void epd_update_partial(void) { epd_write_reg(0x22); // Display Update Control + #ifdef EPD_154 + epd_write_data(0xFC); + #else epd_write_data(0xCC); + #endif epd_write_reg(0x20); // Activate Display Update Sequence epd_wait_busy(); @@ -331,7 +378,11 @@ void epd_setpos(uint16_t x, uint16_t y) _x = x / 8; - _y = 295 - y; + #ifdef EPD_154 + _y = 199 - y; + #else + _y = 295 - y; + #endif epd_write_reg(0x4E); // set RAM x address count to 0; epd_write_data(_x); @@ -693,10 +744,14 @@ void epd_paint_showString(uint16_t x, uint16_t y, uint8_t *chr, uint16_t size1, if (size1 == 8) { x += 6; + if(x > EPD_H-6) + break; } else { x += size1 / 2; + if(x > EPD_H-size1 / 2) + break; } } } diff --git a/Example/EpaperModuleTest_AT32F403A/Epaper/epaper.h b/Example/EpaperModuleTest_AT32F403A/Epaper/epaper.h index 4122024..0a5be53 100644 --- a/Example/EpaperModuleTest_AT32F403A/Epaper/epaper.h +++ b/Example/EpaperModuleTest_AT32F403A/Epaper/epaper.h @@ -10,8 +10,9 @@ extern "C" //#define EPD_29 //#define EPD_213 +//#define EPD_154 -#if (!defined EPD_29) && (!defined EPD_213) +#if (!defined EPD_29) && (!defined EPD_213) && (!defined EPD_154) #error EPD Type Undefine #endif @@ -25,6 +26,12 @@ extern "C" #define EPD_H 250 #endif +#ifdef EPD_154 +#define EPD_W 200 +#define EPD_H 200 +#endif + + #define EPD_OK 0 #define EPD_ERROR 1 @@ -64,9 +71,12 @@ extern "C" uint8_t epd_init(void); uint8_t epd_init_partial(void); void epd_enter_deepsleepmode(uint8_t mode); + uint8_t epd_power_on(void); + uint8_t epd_power_off(void); void epd_init_internalTempSensor(void); void epd_update(void); void epd_update_partial(void); + void epd_setpos(uint16_t x, uint16_t y); void epd_display(uint8_t *Image1, uint8_t *Image2); void epd_displayBW(uint8_t *Image); void epd_displayBW_partial(uint8_t *Image); diff --git a/Example/EpaperModuleTest_AT32F403A/MDK-ARM/EpaperModuleTest_AT32F403A.uvprojx b/Example/EpaperModuleTest_AT32F403A/MDK-ARM/EpaperModuleTest_AT32F403A.uvprojx index 334aaa4..208f5b1 100644 --- a/Example/EpaperModuleTest_AT32F403A/MDK-ARM/EpaperModuleTest_AT32F403A.uvprojx +++ b/Example/EpaperModuleTest_AT32F403A/MDK-ARM/EpaperModuleTest_AT32F403A.uvprojx @@ -10,7 +10,7 @@ Target 1 0x4 ARM-ADS - 6160000::V6.16::ARMCLANG + 6190000::V6.19::ARMCLANG 1 @@ -185,6 +185,7 @@ 2 0 0 + 0 0 0 8 diff --git a/Example/EpaperModuleTest_AT32F403A/MDK-ARM/Objects/EpaperModuleTest_AT32F403A.axf b/Example/EpaperModuleTest_AT32F403A/MDK-ARM/Objects/EpaperModuleTest_AT32F403A.axf index 569bf08..bf5c4bf 100644 Binary files a/Example/EpaperModuleTest_AT32F403A/MDK-ARM/Objects/EpaperModuleTest_AT32F403A.axf and b/Example/EpaperModuleTest_AT32F403A/MDK-ARM/Objects/EpaperModuleTest_AT32F403A.axf differ diff --git a/Example/EpaperModuleTest_AT32F403A/MDK-ARM/Objects/EpaperModuleTest_AT32F403A.hex b/Example/EpaperModuleTest_AT32F403A/MDK-ARM/Objects/EpaperModuleTest_AT32F403A.hex index eecbc04..7ff37f9 100644 --- a/Example/EpaperModuleTest_AT32F403A/MDK-ARM/Objects/EpaperModuleTest_AT32F403A.hex +++ b/Example/EpaperModuleTest_AT32F403A/MDK-ARM/Objects/EpaperModuleTest_AT32F403A.hex @@ -1,8 +1,8 @@ :020000040800F2 -:10000000882B002025020008F9020008F1020008F0 -:10001000F5020008E1020008950300080000000056 -:100020000000000000000000000000002D03000898 -:10003000E502000800000000290300083103000861 +:10000000882B00202502000829030008210300088E +:1000100025030008E1020008990300080000000021 +:100020000000000000000000000000003103000894 +:10003000E5020008000000002D0300083503000859 :100040003F0200083F0200083F0200083F0200088C :100050003F0200083F020008E90200083F020008D2 :100060003F0200083F0200083F0200083F0200086C @@ -26,16 +26,16 @@ :100180003F02000800F002F800F03CF80AA090E8F6 :10019000000C82448344AAF10107DA4501D100F042 :1001A00031F8AFF2090EBAE80F0013F0010F18BFD3 -:1001B000FB1A43F001031847083F0000283F0000E6 +:1001B000FB1A43F00103184788470000A8470000D6 :1001C000103A24BF78C878C1FAD8520724BF30C883 :1001D00030C144BF04680C60704700000023002455 :1001E00000250026103A28BF78C1FBD8520728BF47 -:1001F00030C148BF0B6070471FB501F08FFA1FBDBB +:1001F00030C148BF0B6070471FB501F0CFFE1FBD77 :1002000010B510BD00F031F81146FFF7F5FF01F011 -:1002100077F800F04FF803B4FFF7F2FF03BC00F0EB +:100210007FFC00F04FF803B4FFF7F2FF03BC00F0DF :1002200057F800000948804709480047FEE7FEE705 :10023000FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE796 -:1002400004480549054A064B70470000350300087D +:1002400004480549054A064B704700003903000879 :100250008501000888250020882B002088270020A1 :1002600088270020704770477047754600F02CF8CB :10027000AE4605006946534620F00700854618B093 @@ -45,902 +45,902 @@ :1002B0008D46704710B50446AFF300802046BDE878 :1002C0001040FFF7A8BF000000487047080000205A :1002D00001491820ABBEFEE726000200704700006F -:1002E000FEE700007047000080B500F0F1F880BD27 -:1002F000FEE70000FEE700007047000000F0070086 -:1003000080F00703042B28BF04234FF0FF3C033881 -:100310000CFA03F338BF0020994381400CFA00F037 -:1003200022EA000008437047704700007047000051 -:10033000704700004EF6885CCEF2000CDCF800201E -:1003400041F2000142F47002C4F20201CCF8002034 -:100350000A6842F001020A600A689207FCD54A68FE -:1003600022F003024A6000BF4A6812F00C0FFBD172 -:1003700000224A600B684FF6FF70CFF6F26018401B -:1003800008604FF41F000A6388604FF000604CF86B -:10039000800C7047FEE70000002848BF704700F05F -:1003A0001F01012202FA01F14EF200124009CEF2C1 -:1003B000000242F8201070474EF60C50CEF20000BA -:1003C0000068C0F3022070474EF6145300F00F028D -:1003D000CEF2000309011A4400F16043B0F1FF3F7F -:1003E000C8BF03F564421170704700004EF60C510F -:1003F000CEF200010A684FF6FF031A4060F30A22AA -:1004000042F0806040F0FD7008607047B0B543F680 -:1004100000050446C4F200052846022101F068F8F0 -:100420000028F9D02846214601F060F8B0BD000050 -:1004300010B543F60004C4F2000400BF204680213A -:1004400001F056F80028F9D110BD000070B584B055 -:100450004FF4C0100121012500F0FAF8002000211E -:10046000002600F077FE01AC204600F01FFE40F2AF -:100470000110ADF80C0020468DF80460029500F0E4 -:1004800021FE032001F01CF806200021002201F0CB -:1004900005F804B070BD0000B0B582B00220C0F213 -:1004A00018000121012500F0D3F86C46204600F029 -:1004B00047FE41F60000C0F20010CDE9005040F6C2 -:1004C0000000C4F20100214600F08AFE02B0B0BD77 -:1004D00080B5052000F054F9012000F0EDFD40F654 -:1004E0000000C4F20100012100F0DAFE002818BF6C -:1004F00080BD40F20000C2F200000178042204290D -:1005000008BF0122027080BD41F20401C4F2020161 -:100510000A6800F00F0022F0F00242EA00100860C2 -:100520007047000041F20401C4F202010A6800F0C1 -:10053000070022F4E06242EA0020086070470000F1 -:1005400041F20401C4F202010A6800F0070022F43B -:10055000605242EAC02008607047000041F2540136 -:10056000C4F202010A68012822F0300208BF3032CA -:100570000A607047042888BF7047DFE800F0030C6A -:1005800019262F0041F20000C4F20200026861F354 -:1005900000020260704741F20000C4F202000268EB -:1005A00001F0010122F4803242EA0141016070470A -:1005B00041F20000C4F20200026801F0010122F0E1 -:1005C000807242EA01610160704741F20000C4F2AA -:1005D0000200026A61F300020262704741F2000009 -:1005E000C4F20200426A61F30002426270470000F6 -:1005F00041F20002010CC4F20202895800F01F000F -:1006000021FA00F000F001007047000041F25401AF -:10061000C4F202010A6800F0030022F4405242EAE8 -:10062000003008607047000010B500241120FFF76B -:10063000DFFF210B022903D8012804F10104F5D1C1 -:100640001120FFF7D5FF0138B0FA80F0400910BD46 -:1006500041F2000200F01F034FF0010CC4F202024D -:1006600001290CFA03F14FEA1040835814BF23EA22 -:10067000010119438150704780B541F2040EC4F264 -:10068000020EDEF800C060B14CF48033CEF80030CA -:10069000DEF800C0012814BF4CF400302CF4003008 -:1006A00001E02CF48030CEF80000DEF8000061F3A9 -:1006B0009540CEF80000DEF80000C1F3021161F3AE -:1006C0005E70CEF80000DEF8000020F0004040EA46 -:1006D000C270CEF8000080BD41F20000C4F20200FA -:1006E000016841F00101016001688907FCD541689A -:1006F00021F00301416000BF416811F00C0FFBD1F4 -:100700000021416002684FF6FF73CFF6F2631A4092 -:10071000026001634FF41F018160704741F20401E0 -:10072000C4F202010A6860F301020A607047000027 -:1007300041F20400C4F202000068C0F38100704777 -:1007400080B5042000F0DEFF40F20400C2F2000099 -:1007500000684DF68361C4F21B31A0FB0101880CD7 -:1007600040F28401C2F20001086008684FF47A7117 -:10077000484340F28001C2F20001086080BD0000E1 -:1007800080B5002808BF80BD4EF2100140F2800EF7 -:10079000CEF20001C2F2000E4FF0320C002300BF77 -:1007A00082B2332A06D3DEF80020323802FB0CF284 -:1007B0004A6004E0DEF800005043486000208B608F -:1007C0000A6842F001020A600A6802F00112012A76 -:1007D000FAD00A6822F001020A6002048B60DFD1BD -:1007E00080BD000080B540F60040C4F201004FF427 -:1007F000805100F0A1FC80BD80B540F60040C4F2FD -:1008000001004FF4805100F099FC80BD80B540F6A6 -:100810000040C4F201004FF4804100F08DFC80BD27 -:1008200080B540F60040C4F201004FF4804100F072 -:1008300085FC80BD80B5FFF7A3FF80BD2DE9F041A9 -:100840000C46054600200021002600F0B3FB2420C2 -:1008500000F0FEFB28464FF4945100F013FC0020FA -:10086000002100F0A7FB262000F0F2FBFFF7BAFF03 -:10087000A4F10108002500BF08EB0604002700BF13 -:1008800014F8010F80F0FF00FFF7C0FD013F17F5DE -:10089000947FF5D10135102DA6EB0706ECD1FFF7BB -:1008A000C7FDFFF7A9FF00F09DFBBDE8F081000048 -:1008B00010B50446102000F0CBFB204600F0B2FB40 -:1008C00040F27C00C2F200000021017010BD000067 -:1008D00080B540F27C00C2F200000078002808BF1A -:1008E00000F056FB00F08CFB28B9122000F0B0FBA2 -:1008F00000F086FB08B1012080BD012000F0A8FBBC -:10090000272000F08FFB012000F08CFB012000F07D -:1009100089FB112000F09CFB012000F083FB4420A8 -:1009200000F096FB002000F07DFB0F2000F07AFB2A -:10093000452000F08DFB272000F074FB012000F023 -:1009400071FB002000F06EFB002000F06BFB3C20F0 -:1009500000F07EFB052000F065FB212000F078FB15 -:10096000002000F05FFB802000F05CFB182000F00E -:100970006FFB802000F056FB4E2000F069FB00204A -:1009800000F050FB4F2000F063FB272000F04AFBF3 -:10099000012000F047FB00F033FB002818BF0120C6 -:1009A00080BD00002DE9F04184B00224C0F218049B -:1009B00020460121FFF74CFE601C0121FFF748FE95 -:1009C00002AD284600F0BCFB40F60044C4F201042E -:1009D000A4F5806630464FF480714FF4807700F0C4 -:1009E000ABFB40F20040C0F21010CDE9027030467F -:1009F000294600F0F5FB1820ADF80D004FF400700B -:100A000002903046294600F0EBFB20464FF480412F -:100A10004FF4804600F092FB4FF010084FF48067CF -:100A2000204629468DF80E80ADF80C70029600F035 -:100A3000D7FB4FF400500826029020462946ADF817 -:100A40000C708DF80E6000F0CBFB4FF4004002906C -:100A5000204629468DF80E6000F0C2FB20464FF478 -:100A600080514FF4805600F069FB204629468DF8EE -:100A70000E80ADF80C70029600F0B2FB0E20C0F2B2 -:100A80001C000121FFF7E4FD6D46284600F01CFD27 -:100A900040F20310C0F20500009040F20010C0F2D6 -:100AA0000110A4F5544401902046294600F026FD8B -:100AB0002046012100F010FD04B0BDE8F0810000E7 -:100AC00080B540F60000C4F201004FF4007100F060 -:100AD000E7FB002818BF012080BD000080B540F270 -:100AE000680CC2F2000CBCF81210002908BF80BDCF -:100AF0004FF0000E06E000BFBCF812100EF1010E20 -:100B00008E4512D2BCF81030002BF5D04FF0FF31DB -:100B1000DCF800200EFB03220A445070BCF81030B1 -:100B20008A1C01319A42F3D3E6E780BD2DE9F04FEC -:100B300085B006461046B2EB060B0F46049248BF3E -:100B4000CBF1000BD81B80EAE071024648BF42425D -:100B5000C1EBE07904984FF0FF31B0424FF0FF381D -:100B6000ABEB020A88BF4FF0010818460293BB4264 -:100B700088BF01210191039203E000BFBBEB4A0F44 -:100B800011DAB4B2BDB20E9A2046294600F016F82A -:100B9000B9EB4A0FF2DC049884420BD00398464428 -:100BA000AAEB000AEAE70298854203D00198DA44EA -:100BB0000744E6E705B0BDE8F08F000080B50138D6 -:100BC000013980B289B200F06FF880BD2DE9F041A3 -:100BD00082B00F46DDE908811C461546064681B104 -:100BE000A7420BD2B9B230462A460B46CDF8008058 -:100BF000FFF79CFF0137B8B2A042F3D302B0BDE8C3 -:100C0000F081304639462A463B46CDF80080FFF752 -:100C10008DFF3046394632462346CDF80080FFF737 -:100C200085FF284621462A463B46CDF80080FFF73F -:100C30007DFF2846214632462346CDF80080FFF747 -:100C400075FF02B0BDE8F08110B540F2680CDDF828 -:100C500008E0C2F2000CCCF80000C8084C07ACF861 -:100C60000810ACF80A20ACF80CE04FF0010E18BFE9 -:100C70000EEBD100ACF81000ACF81220ACF80E303E -:100C80002BB1B42B12BF084610460A4601E01046AD -:100C90000A46ACF80400ACF8062010BD40F268012A -:100CA000C2F200010860704710B540F2680CC2F251 -:100CB000000CBCF80E30B32B0BDC93B15A2B36D1A1 -:100CC000BCF80830C0431844BCF80A30C9435C186B -:100CD00013E0B42B0CD0B3F5877F0C4618BF10BDC2 -:100CE0000BE0BCF808E0C94304460EEB010004E049 -:100CF000BCF80A30C0431C180846BCF81030A4B237 -:100D000081B26343DCF800C003EBD10E1CF80E3057 -:100D100000F007008024C4401C436FF0800141FABA -:100D200000F0002A08BF03EA00040CF80E4010BDD2 -:100D30002DE9F04F87B00130039080B20290C01AC5 -:100D4000B0F5947F00F38280082B02D1062464B9A9 -:100D50007CE0D8085F074FF0010618BF06EBD30010 -:100D60005F08784384B2002C70D04E1C109DA2F115 -:100D7000200041F6D25182B25808C0F60001DDF8D9 -:100D80000C90B5FA85F70190002001EB02114FF0AD -:100D9000000804920091CDE9054311E002991FFA81 -:100DA00089F0401A019926468842039804BF81467B -:100DB0000836059908F101081FFA88F0814245D9E3 -:100DC000082B09D1049941F2367201EB4101C0F6BA -:100DD000000202EB410119E0182B0BD0102B13D0AD -:100DE0000C2B33D1049941F65E1201EB4101C0F6A0 -:100DF000000206E0049942F2C23201EBC101C0F6E2 -:100E0000000202EB810101E0009900BF084490F864 -:100E100000A04FF0000B34465FEACA702A461FFA62 -:100E200089F0B1B208BF7A09FFF7C8FE4FEA5A0A43 -:100E30000136BBF1070F0BF1010BEDD3069B09F156 -:100E40000109082BAAD105992646B3E707B0BDE8EA -:100E5000F08F00002DE9F04F87B0DE085F070592A4 -:100E60004FF0010218BF02EBD306002E009653D0BC -:100E7000119E00F1010A4A1CB6FA86F51FFA8AF0A3 -:100E800000234FF0000B17460390CDF810A004E0AC -:100E90000133009998B288423ED205980028F7D0D5 -:100EA0004FF000080293CDF804B000BF10991FFA6C -:100EB0008BF00C5C4FF00009069200BFE007324651 -:100EC0001FFA8AF0B9B218BF6A09FFF777FE640803 -:100ED0000137B9F1070F09F10109EFD30AF1010A4E -:100EE00003991FFA8AF0401A059908F1010888420F -:100EF000049808BF8246069A1FFA88F00BF1010B8E -:100F000008BF083288421746D0D30598DDF804B0F0 -:100F1000029B83441746BBE707B0BDE8F08F000093 -:100F20002DE9F04381B099461378CBB1DDF82080EC -:100F30000D4606464FEA5907541EB9F1080F08BF7F -:100F4000062700BFB0B2DAB229464B46CDF8008082 -:100F5000FFF7EEFEA3783E44002B04F10104F1D12B -:100F600001B0BDE8F083000080B540F60000C4F297 -:100F700001004FF4807100F0DFF880BD80B540F6CD -:100F80000000C4F201004FF4807100F0D7F880BD7A -:100F900080B5FFF7E9FF3220FFF74CFCFFF7EEFFCB -:100FA0003220FFF747FC40F27C00C2F20000012132 -:100FB000017080BDB0B5044640F22710451A4E209E -:100FC00000F046F8C4F3C70000F02CF84F2000F002 -:100FD0003FF8E8B200F026F8C5F3002000F022F850 -:100FE000B0BD000080B5222000F032F8F72000F0FC -:100FF00019F8202000F02CF800F002F880BD000065 -:1010000010B5FFF75DFD58B149F641440120013CA0 -:1010100008BF10BDFFF70EFCFFF752FD0028F5D109 -:10102000002010BDB0B543F600040546C4F200042C -:10103000FFF7D8FB2046294600F058FA20468021C9 -:1010400000F056FA0028F9D1FFF7D6FBB0BD00003A -:10105000B0B543F600040546C4F20004FFF7D6FB22 -:10106000FFF7C0FB2046294600F040FA20468021C9 -:1010700000F03EFA0028F9D1FFF7BEFBFFF7D0FBE6 -:10108000B0BD0000B0B50C460546FFF7ABFB3CB168 -:10109000013D00BF15F8010FFFF7B8F9013CF9D188 -:1010A000FFF7C6F9FFF7A8FBB0BD000000214160C3 -:1010B000012101810170704740F21441C4F2010125 -:1010C0000860704740F20841C4F20101426851F8DB -:1010D000083C934341F8083C51F8043C934341F8E1 -:1010E000043C437A002B08BF704703786FEA020C78 -:1010F0002BB151F8043C134341F8043C04E051F88F -:10110000083C134341F8083C0B6803EA0C030B60EE -:101110004B6803EA0C034B60007A012807D018B92A -:101120000868104308607047086810430860486802 -:10113000104348607047000041617047016170478B -:1011400040F200424FF6FF71C0F20012C0E90012F7 -:101150007047000080B58B08032B88BF80BD0C2230 -:1011600002EA810E4FF00F0C02EB83010CFA0EF233 -:10117000DFE803F002290F1C0821C4F201010B680B -:1011800000FA0EF023EA02020A600A6810430860BF -:1011900080BD0821C4F201018B6800FA0EF023EA39 -:1011A00002028A608A681043886080BD0821C4F208 -:1011B0000101CB6800FA0EF023EA0202CA60CA6895 -:1011C0001043C86080BD0821C4F201014B6800FAD9 -:1011D0000EF023EA02024A604A681043486080BD6C -:1011E000B0B58B790A88032B0BD07BB949792829B4 -:1011F00001F00F0E18D0182908BF0261110616D190 -:101200002EE04FF0000E110611D129E003F0080C7A -:101210000B79C97903F00403634401F0030103EB84 -:10122000010E110603D11BE04261110618D0002304 -:101230004FF00F0C002104E00131082903F10403F1 -:101240000ED022FA01F4E407F6D004680CFA03F594 -:10125000AC43046004680EFA03F52C430460EBE72A -:10126000B2F5807F38BFB0BD120A00234FF00F0CDB -:10127000002104E00131082903F104030ED022FA11 -:1012800001F4E407F6D044680CFA03F5AC4344607B -:1012900044680EFA03F52C434460EBE7B0BD000050 -:1012A00080680840401AB0FA80F04009704700009A -:1012B00010B582B00420C0F218000121FFF7C8F970 -:1012C0006C462046FFF73CFF40F20040C0F2101091 -:1012D00001904FF40050009041F20000C4F2010070 -:1012E0002146FFF77DFF02B010BD000041F20C0067 -:1012F000C4F20100016881F40051016070470000F0 -:1013000088B000F071F9FFF71BFAFFF7C5F8FFF797 -:101310009DF8FFF7CDFFFFF745FBFFF7D9FA40F245 -:101320008804C2F20004FF26204680214FF4947204 -:10133000B4230096FFF788FC41F20835C2F200059D -:10134000284680214FF49472B4230096FFF77CFC6A -:101350002046FFF7A3FCFF20FFF7C0FB2846FFF75E -:101360009DFCFF20FFF7BAFB43F21E10C0F6000001 -:10137000009017200321FA227A230196FFF76AFDD5 -:1013800020462946FFF75AFA01200126FFF790FA76 -:101390004FF4FA50FFF7F4F9FFF79AFA2046FFF7F7 -:1013A0007DFCFF20FFF79AFB002729A20A200021DD -:1013B00018230097FFF7B4FD2AA20A203221102338 -:1013C0000097FFF7ADFD2EA20A201D2110230097E4 -:1013D000FFF7A6FD2846FFF761FCFF20FFF77EFB25 -:1013E00046F26C40C0F22E00069045F22070C7F223 -:1013F0006F20059046F66540C6F66C70049043F683 -:101400003E60C4F62000039003AA0A204721182357 -:101410000097FFF785FD0A2067214FF48F72742330 -:1014200000970196FFF7D2FB20462946FFF706FA00 -:101430000120FFF73DFA40F20004C2F200046425E7 -:10144000FFF754FF20786843FFF79AF9F8E700BFE9 -:10145000322E3920457061706572204D6F64756C55 -:1014600065000000776974682032393620782031B1 -:101470003238207265736F6C7574696F6E0000008E -:1014800044657369676E65642042792057654163DE -:10149000742053747564696F0000000070B51446C1 -:1014A0000D460646FEF788FF29462246FEF726FF30 -:1014B00001463046FEF788FF3046FEF76DFF70BDEF -:1014C00080B5FEF793FF80BD0021C0F803100160D6 -:1014D0000121C17170470000026801F0010122F092 -:1014E000400242EA8111016070470000C16070470C -:1014F0008068084018BF012070470000C26922F4CC -:101500000062C2610A78032A27D8DFE802F00206E7 -:10151000121A026822F400420EE0026822F400422D -:101520000260026822F480420260026842F4806233 -:1015300012E0026842F400420260026822F4804233 -:1015400006E0026842F400420260026842F480420F -:101550000260026822F480620260CA79036802F0C5 -:10156000010223F4007343EA422202604A78012A0E -:1015700006D1CA79012A03D1026842F4807202E0DE -:10158000026822F4807202604A78036862F3820380 -:1015900003608A784368072A23F4807388BF03F5C1 -:1015A000807343608A78036862F3C5030360CA7876 -:1015B000036802F0010223F0800343EAC2120260D2 -:1015C0000A79036802F0010223F4006343EAC222AD -:1015D00002604A79036862F3410303608979026813 -:1015E00061F300020260704780B5FFF775F80120D3 -:1015F0000121FEF7BFFF00BFFFF716F80028FBD060 -:1016000002203B210122FFF737F80020FEF7FEFF02 -:1016100002200121FEF7AEFF1920FEF7E9FF0128A5 -:10162000FAD10020FEF770FF0420FEF789FF0420A6 -:10163000FEF778FF0120FEF791FF0220FFF76EF81A -:10164000FFF776F80228FBD10020FEF787FF00F0B5 -:1016500001F880BDB0B541F2040441F20025C4F2A6 -:101660000204C0F27A05FFF763F802280BD090BBA2 -:10167000206D80052FD5E06A800144BF46F6004505 -:10168000C0F2DC2527E0206821682268C1F383418D -:10169000C2F3417213010133002A1A4608BF022225 -:1016A0000F2908BF1A46C00302EB010006D440F61A -:1016B0000011C0F23D0100FB01F50CE02168890337 -:1016C00001D4454307E0216DC1F301310231B5FB7F -:1016D000F1F101FB00F540F20400C2F200000560E8 -:1016E000216804A2C1F30311515C026822FA01F1DE -:1016F0000160B0BD00000000000000000102030412 -:10170000060708094EF21001CEF200010A6804280B -:1017100022F0040208BF04320A607047F1EE100A9A -:101720004FF6FF71C0F2C03120EA010040F0407076 -:10173000E1EE100A70470000000000000000002FDA -:10174000000000000700070000147F147F1400242D -:101750002A7F2A120062640813230036495522505A -:1017600000000503000000001C224100000041228F -:101770001C000014083E08140008083E0808000079 -:1017800000A0600000080808080800006060000071 -:10179000002010080402003E5149453E0000427FEF -:1017A0004000004261514946002141454B3100183B -:1017B00014127F10002745454539003C4A494930FD -:1017C00000017109050300364949493600064949B7 -:1017D000291E0000363600000000563600000008C2 -:1017E000142241000014141414140000412214089F -:1017F00000020151090600324959513E007C121184 -:10180000127C007F49494936003E41414122007F18 -:101810004141221C007F49494941007F09090901D2 -:10182000003E4149497A007F0808087F0000417F57 -:101830004100002040413F01007F08142241007F09 -:1018400040404040007F020C027F007F0408107F70 -:10185000003E4141413E007F09090906003E4151D9 -:10186000215E007F09192946004649494931000196 -:10187000017F0101003F4040403F001F2040201FEA -:10188000003F4038403F00631408146300070870AD -:10189000080700615149454300007F414100005560 -:1018A0002A552A55000041417F000004020102042C -:1018B0000040404040400000010204000020545419 -:1018C0005478007F48444438003844444420003869 -:1018D0004444487F00385454541800087E090102DB -:1018E0000018A4A4A47C007F080404780000447DB0 -:1018F0004000004080847D00007F102844000000EC -:10190000417F4000007C04180478007C08040478BF -:1019100000384444443800FC2424241800182424AB -:1019200018FC007C080404080048545454200004A7 -:101930003F444020003C4040207C001C2040201CB4 -:10194000003C4030403C004428102844001CA0A02B -:10195000A07C004464544C44141414141414000067 -:10196000000000000000000000000000FC0000007B -:10197000000002000000000C020C02000000000049 -:10198000000090D0BCD0BC900003000300001824DD -:10199000FE448C000302070201001824D8B04C80DA -:1019A000000300010201C038E438E0000102020136 -:1019B0000202080600000000000000000000000015 -:1019C00000F80402000000010204000204F8000014 -:1019D0000004020100009060F86090000000010027 -:1019E00000002020FC20200000000100000000007A -:1019F0000000000008060000000020202020200039 -:101A000000000000000000000000000000020000D4 -:101A100000000080601C0200040300000000F804C5 -:101A20000404F8000102020201000008FC000000AA -:101A3000000203020000188444241800030202027A -:101A4000020008042424D80001020202010040B070 -:101A500088FC80000000000302003C242424C40011 -:101A6000010202020100F824242CC000010202023B -:101A700001000C04E41C0400000003000000D82452 -:101A80002424D80001020202010038444444F80032 -:101A9000000302020100000010000000000002002C -:101AA00000000000200000000000060000000020F0 -:101AB0005088040200000000010290909090900075 -:101AC0000000000000000002048850200002010015 -:101AD00000001804C4241800000002000000F804EC -:101AE000E494F80001020202020000E09CF0800091 -:101AF00002030000030204FC2424D80002030202B3 -:101B00000100F80404040C0001020202010004FCBC -:101B10000404F80002030202010004FC24740C0017 -:101B200002030202030004FC24740C0002030200FE -:101B30000000F0080444CC4000010202010004FC53 -:101B40002020FC040203000003020404FC0404003F -:101B5000020203020200000404FC0404060404035D -:101B6000000004FC24D00C0402030200030204FC65 -:101B700004000000020302020203FC3CC03CFC0023 -:101B800003000300030004FC30C4FC040203020051 -:101B90000300F8040404F80001020202010004FC3E -:101BA00024241800020302000000F8848404F800D2 -:101BB00001020207050004FC2464980002030200ED -:101BC0000302182424448C000302020201000C04C6 -:101BD000FC040C0000020302000004FC0000FC04F2 -:101BE000000102020100047C80E01C0400000300EC -:101BF00000001CE03CE01C00000300030000049C0B -:101C0000609C0400020300030200041CE01C0400AA -:101C10000002030200000C84641C040002030202A0 -:101C200003000000FE020200000007040400000E92 -:101C300030C00000000000010200000202FE0000AF -:101C4000000404070000000402040000000000007B -:101C50000000000000000000080808080808000054 -:101C6000020000000000000000000040A0A0C00032 -:101C700000010202030204FC2020C0000003020253 -:101C8000010000C02020600000010202020000C02C -:101C90002024FC0000010202030200C0A0A0C0003A -:101CA0000001020202000020F824240400020302C2 -:101CB00002000040A0A0602000070A0A0A0404FCF9 -:101CC0002020C0000203020003020020E400000004 -:101CD000000203020000000020E4000008080807DA -:101CE000000004FC80E02020020302000302040440 -:101CF000FC000000020203020200E020E020C0001D -:101D000003000300030020E02020C00002030200C3 -:101D1000030200C02020C00000010202010020E0F8 -:101D20002020C000080F0A02010000C02020E000AF -:101D30000001020A0F0820E04020200002030200F8 -:101D400000000060A0A020000002020203000020AA -:101D5000F820000000000102020020E00020E00066 -:101D600000010202030220E0208060200000030145 -:101D700000006080E080600000030003000020603D -:101D80008060200002030003020020E02080602029 -:101D90000808070100000020A060200000020302E4 -:101DA0000200000020DE0200000000070400000026 -:101DB00000FF00000000000F00000002DE20000015 -:101DC00000040700000002010204040200000000F9 -:101DD0000000000000000000000000000000000003 -:101DE0000000000000F80000000000000033300098 -:101DF000000000100C06100C06000000000000009F -:101E0000000040C07840C0784000043F04043F0414 -:101E10000400007088FC08300000001820FF211E1C -:101E20000000F008F000E018000000211C031E2153 -:101E30001E0000F00888700000001E2123241927CE -:101E4000211010160E00000000000000000000002D -:101E50000000000000E01804020000000007182045 -:101E6000400000020418E0000000004020180700B5 -:101E70000000404080F0804040000202010F01025B -:101E80000200000000F0000000000101011F01013C -:101E90000100000000000000000080B070000000A1 -:101EA000000000000000000000000001010101012D -:101EB00001010000000000000000003030000000C0 -:101EC0000000000000008060180400601806010097 -:101ED000000000E010080810E000000F10202010A3 -:101EE0000F00001010F8000000000020203F20200C -:101EF00000000070080808887000003028242221A3 -:101F00003000003008888848300000182020201158 -:101F10000E000000C02010F8000000070424243F39 -:101F2000240000F8088888080800001921202011E2 -:101F30000E0000E0108888180000000F112020110A -:101F40000E0000380808C83808000000003F0000F4 -:101F500000000070880808887000001C22212122DF -:101F60001C0000E010080810E000000031222211DF -:101F70000F00000000C0C000000000000030300072 -:101F800000000000008000000000000080600000F1 -:101F9000000000008040201008000001020408102A -:101FA0002000404040404040400004040404040439 -:101FB00004000008102040800000002010080402E7 -:101FC0000100007048080808F000000000303601E9 -:101FD0000000C030C828E810E000071827242314A8 -:101FE0000B000000C038E0000000203C2302022764 -:101FF000382008F8888888700000203F20202011B1 -:102000000E00C030080808083800071820202010EB -:10201000080008F808080810E000203F20202010E1 -:102020000F0008F88888E8081000203F20202320AF -:10203000180008F88888E8081000203F20000300F6 -:102040000000C03008080838000007182020221EB1 -:10205000020008F808000008F808203F21010121CB -:102060003F20000808F8080800000020203F20203A -:10207000000000000808F8080800C08080807F0089 -:10208000000008F888C028180800203F20012638E2 -:10209000200008F8080000000000203F2020202039 -:1020A000300008F8F800F8F80800203F003F003F33 -:1020B000200008F830C00008F808203F200007186A -:1020C0003F00E01008080810E0000F10202020104A -:1020D0000F0008F808080808F000203F210101015E -:1020E0000000E01008080810E0000F182424385001 -:1020F0004F0008F8888888887000203F2000030C73 -:10210000302000708808080838000038202121227B -:102110001C00180808F8080818000000203F2000DC -:10212000000008F808000008F808001F2020202000 -:102130001F000878880000C83808000007380E0122 -:102140000000F80800F80008F800033C0700073C0E -:102150000300081868808068180820302C03032CBE -:1021600030200838C800C83808000000203F200090 -:10217000000010080808C838080020382621202050 -:102180001800000000FE020202000000007F404034 -:102190004000000C30C000000000000000010638C4 -:1021A000C00000020202FE000000004040407F002C -:1021B0000000000004020202040000000000000011 -:1021C000000000000000000000008080808080800F -:1021D00080800002020400000000000000000000F7 -:1021E000000000008080808000000019242222224C -:1021F0003F2008F8008080000000003F11202011DF -:102200000E000000008080800000000E11202020C1 -:102210001100000000808088F800000E11202010BE -:102220003F200000808080800000001F22222222A8 -:102230001300008080F0888888180020203F20202C -:1022400000000000808080808000006B9494949354 -:10225000600008F8008080800000203F21000020FE -:102260003F2000809898000000000020203F2020A0 -:102270000000000000809898000000C08080807FEF -:10228000000008F8000080808000203F24022D30EC -:102290002000000808F8000000000020203F202057 -:1022A00000008080808080808000203F20003F20D0 -:1022B000003F8080008080800000203F21000020BF -:1022C0003F200000808080800000001F2020202010 -:1022D0001F00808000808000000080FFA12020116E -:1022E0000E000000008080808000000E112020A0E1 -:1022F000FF80808080008080800020203F2120009F -:102300000100000080808080800000332424242489 -:102310001900008080E0808000000000001F202065 -:1023200000008080000000808000001F202020101E -:102330003F20808080000080808000010E300806F1 -:10234000010080800080008080800F300C030C3002 -:102350000F0000808000808080000020312E0E3130 -:102360002000808080000080808080818E70180630 -:10237000010000808080808080000021302C22219C -:10238000300000000000807C020200000000003FDE -:10239000404000000000FF00000000000000FF00BF -:1023A00000000002027C800000000040403F00006E -:1023B0000000000601010202040400000000000009 -:1023C000000000000000000000000000000000000D -:1023D00000000000000000000000000000000000FD -:1023E0000000000000000000000000F0F0F000001D -:1023F00000000000000000017F010000000000005C -:102400000000001C1C1C0000000000008060301C4C -:102410008C60301C0C000000000000000000000078 -:1024200000000000000000000000000000000000AC -:1024300000E00000000000E000000086E69F8686C5 -:102440008686E69F860000011F01010101011F0130 -:102450000100000080C06020F820E0C00000000003 -:1024600003070C18FF70E18100000000070F101037 -:102470007F100F0700008060206080000000E020D7 -:1024800000000F3020309F70DC371030C00000009B -:10249000100E03000718101807000000C02020E0ED -:1024A000C0000000000080E01F38E88703C43C043F -:1024B0000000070F1810100B070D10100800008007 -:1024C0008C4C3800000000000000000000000000FC -:1024D00000000000000000000000000000000000FC -:1024E000000000000000000080E030080400000050 -:1024F000000000FEFF0100000000000000000000DE -:10250000030F1820400000040830E08000000000A5 -:1025100000000000000001FFFE000000000000407D -:1025200020180F0300000000000000000000000061 -:10253000C00000000000004266663C18FF183C66C0 -:1025400066420000000000000300000000000000E0 -:1025500000000000800000000000001010101010AB -:10256000FF10101010100000000000000300000019 -:10257000000000000000000000000000000000005B -:102580000000000000000000000000808C4C3800BB -:10259000000000000000000000000000000000003B -:1025A000000000101010101010101010100000008B -:1025B000000000000000000000000000000000001B -:1025C000000000000000000000000000000000000B -:1025D000000000001C1C1C000000000000000000A7 -:1025E000000000000000E0380C00000000008070D7 -:1025F0001C03000000000060380E01000000000015 -:102600000000000080C060202060C080000000FE4C -:10261000FF010000000001FFFE000001070E18107E -:1026200010180E0701000000808080C0E00000004C -:1026300000000000000000FFFF000000000000009C -:102640001010101F1F1010100000008040202020CC -:102650002060C080000000030300804020381F0776 -:102660000000001C1A1918181818181F0000008004 -:10267000C020202060C08000000000030300101074 -:10268000182FE780000000070F10101010180F0718 -:102690000000000000000000C0E0F000000000C0EA -:1026A000B088868180FFFF8080000000000000105D -:1026B000101F1F1010000000E0606060606060602C -:1026C000000000003F1008080818F0E000000007B4 -:1026D0000B101010101C0F030000000080C04020E1 -:1026E0002020E0C0000000FCFF211008080818F0BE -:1026F000E0000001070C18101010080F0300000084 -:10270000C0E06060606060E0600000000300000006 -:10271000E0180700000000000000001F1F0000007C -:1027200000000080C0602020202060C08000008762 -:10273000EF2C1818303068CF830000070F081010F6 -:102740001010180F07000000C0C020202020C080FB -:102750000000001F3F604040402010FFFE000000CE -:102760000C1C101010080F030000000000000000F7 -:1027700000000000000000000000000E0E0E00002F -:10278000000000000000001C1C1C000000000000F5 -:102790000000000000000000000000000000000C2D -:1027A0000C0000000000000000000058380000008D -:1027B0000000000000000000008040201000000029 -:1027C000102844820100000000000000000000000A -:1027D00001020408100000000000000000000000DA -:1027E00000000084848484848484848484000000C1 -:1027F00000000000000000000000000010204080E9 -:1028000000000000000000000000000001824428D9 -:10281000100000001008040201000000000000C0C9 -:1028200020201010101030E0C0000003030000F062 -:1028300010080C070300000000001C1C1C00000016 -:102840000000000000C0406020202040C00000FCCC -:10285000FF01F00E03C1FE03807F0001070E081187 -:102860001110110904020000000080E0E0000000E7 -:1028700000000000807C4340477FF8800000101873 -:102880001F1000000000131F1C1020E0E02020207B -:102890002060C080000000FFFF10101010182FE70C -:1028A0008000101F1F1010101010180F07000000DC -:1028B00080C0402020202060E00000FCFF010000DC -:1028C0000000000001000001070E1810101008049D -:1028D000030020E0E02020202040C080000000FF16 -:1028E000FF000000000001FFFE00101F1F1010106D -:1028F00018080E07010020E0E020202020202060A2 -:10290000800000FFFF101010107C00000000101F5E -:102910001F10101010101018060020E0E0202020DA -:1029200020206060800000FFFF101010107C00006D -:102930000100101F1F100000000000000000000038 -:1029400080C06020202040E0000000FCFF0100006B -:102950004040C0C140400001070E181010100F0F7A -:10296000000020E0E0200000000020E0E02000FF68 -:10297000FF101010101010FFFF00101F1F1000009C -:102980000000101F1F100000202020E0E020202069 -:1029900000000000000000FFFF0000000000000039 -:1029A0001010101F1F101010000000000000202049 -:1029B00020E0E020202000000000000000FFFF00D9 -:1029C00000000060E0808080C07F3F00000020E0C9 -:1029D000E020000020A06020200000FFFF30187CD5 -:1029E000E3C000000000101F1F10000001131F1C97 -:1029F000181020E0E020000000000000000000FFB0 -:102A0000FF000000000000000000101F1F10101049 -:102A100010101018060020E0E0E000000000E0E0E8 -:102A2000E02000FF013FFEC0E01E01FFFF00101F7D -:102A30001000031F0300101F1F1020E0E0C0000063 -:102A400000000020E02000FF0003071C78E0800069 -:102A5000FF00101F100000000000030F1F00000007 -:102A600080C060202060C080000000FEFF010000E8 -:102A7000000000FFFE000001070E181010180C07E0 -:102A8000010020E0E0202020202060C0800000FF26 -:102A9000FF2020202020301F0F00101F1F100000DB -:102AA000000000000000000080C060202060C080A6 -:102AB000000000FEFF010000000000FFFE0000011A -:102AC000070E1111133C7C67210020E0E02020203C -:102AD000202060C0800000FFFF101030F0D0080FF1 -:102AE0000700101F1F10000000030F1C10100080B3 -:102AF000C060202020204040E00000070F0C181884 -:102B0000303060E08100001F0C0810101010180F0A -:102B100007008060202020E0E0202020608001006D -:102B2000000000FFFF000000000100000000101F77 -:102B30001F100000000020E0E02000000000002046 -:102B4000E02000FFFF00000000000000FF00000781 -:102B50000F1810101010100807002060E0E020008F -:102B6000000020E060200000077FF88000807C03E8 -:102B7000000000000000071F1C070000000020E00C -:102B8000E02000E0E0200020E0200007FFF8E01F48 -:102B9000FFFCE01F00000000031F0300011F0300F3 -:102BA0000000002060E0A0000020E06020000000A5 -:102BB00000038F7CF8C6010000000010181E1300EF -:102BC00001171F1810002060E0E02000000020E046 -:102BD0006020000001073EF8E01807000000000038 -:102BE0000010101F1F101000000000806020202027 -:102BF00020A0E0E0200000000000C0F03E0F030035 -:102C0000000000101C1F1710101010180600000004 -:102C1000000000FC0404040404000000000000FFA5 -:102C200000000000000000000000007F4040404025 -:102C30004000000010E00000000000000000000064 -:102C40000000031C60800000000000000000000085 -:102C500000030C70800000000404040404FC000065 -:102C6000000000000000000000FF00000000000065 -:102C700040404040407F0000000000000010080C71 -:102C8000040C08100000000000000000000000001C -:102C90000000000000000000000000000000000034 +:1002E000FEE700007047000080B5052000F0D2F95D +:1002F000012001F0E9FA40F60000C4F201000121FA +:1003000001F0D6FB002818BF80BD40F20000C2F209 +:10031000000001780422042908BF0122027080BD78 +:10032000FEE70000FEE70000704700007047000095 +:1003300070470000704700004EF6885CCEF2000C5B +:10034000DCF8002041F2000142F47002C4F2020124 +:10035000CCF800200A6842F001020A600A6892079D +:10036000FCD54A6822F003024A6000BF4A6812F0D6 +:100370000C0FFBD100224A600B684FF6FF70CFF6DE +:10038000F260184008604FF41F000A6388604FF065 +:1003900000604CF8800C7047FEE7000070B584B038 +:1003A0004FF4C0100121012500F0DCF800200021ED +:1003B000002601F0D7FA01AC204601F07FFA40F2A6 +:1003C0000110ADF80C0020468DF80460029501F094 +:1003D00081FA032001F0A4FC06200021002201F094 +:1003E00065FC04B070BD0000B0B582B00220C0F260 +:1003F00018000121012500F0B5F86C46204601F0F7 +:10040000A7FA41F60000C0F20010CDE9005040F616 +:100410000000C4F20100214601F0EAFA02B0B0BDCA +:1004200041F20401C4F202010A6800F00F0022F058 +:10043000F00242EA001008607047000041F2040137 +:10044000C4F202010A6800F0070022F4E06242EA06 +:10045000002008607047000041F20401C4F202016C +:100460000A6800F0070022F4605242EAC0200860E7 +:100470007047000041F25401C4F202010A680128E9 +:1004800022F0300208BF30320A607047042888BF6B +:100490007047DFE800F0030C19262F0041F200003E +:1004A000C4F20200026861F300020260704741F288 +:1004B0000000C4F20200026801F0010122F480325F +:1004C00042EA01410160704741F20000C4F20200BB +:1004D000026801F0010122F0807242EA01610160CC +:1004E000704741F20000C4F20200026A61F30002A8 +:1004F0000262704741F20000C4F20200426A61F3F6 +:10050000000242627047000041F20002010CC4F296 +:100510000202895800F01F0021FA00F000F00100EB +:100520007047000041F25401C4F202010A6800F071 +:10053000030022F4405242EA003008607047000095 +:1005400041F200010020C4F2020100BF0A689203D8 +:1005500004D4B0F5405F00F10100F7D30868C0F3A0 +:100560004040704741F2000200F01F034FF0010CC1 +:10057000C4F2020201290CFA03F14FEA1040835839 +:1005800014BF23EA010119438150704780B541F23D +:10059000040EC4F2020EDEF800C060B14CF48033E9 +:1005A000CEF80030DEF800C0012814BF4CF4003053 +:1005B0002CF4003001E02CF48030CEF80000DEF89E +:1005C000000061F39540CEF80000DEF80000090954 +:1005D00061F35E70CEF80000DEF8000020F000400D +:1005E00040EAC270CEF8000080BD000041F2000079 +:1005F000C4F20200016841F001010160016889074D +:10060000FCD5416821F00301416000BF416811F051 +:100610000C0FFBD10021416002684FF6FF73CFF64B +:10062000F2631A40026001634FF41F01816070475A +:1006300041F20401C4F202010A6860F301020A6097 +:100640007047000041F20400C4F202000068C0F3E9 +:100650008100704780B5042001F094FC40F2040052 +:10066000C2F2000000684DF68361C4F21B31A0FBAA +:100670000101880C40F28401C2F2000108600868A0 +:100680004FF47A71484340F28001C2F200010860E1 +:1006900080BD000080B5002808BF80BD4EF210016B +:1006A00040F2800ECEF20001C2F2000E4FF0320C8A +:1006B000002300BF82B2332A06D3DEF8002032388E +:1006C00002FB0CF24A6004E0DEF800005043486090 +:1006D00000208B600A6842F001020A600A6802F09A +:1006E0000112012AFAD00A6822F001020A6002040B +:1006F0008B60DFD180BD00002DE9F04381B08946D9 +:10070000074640F6004800200021C4F2010800F02E +:10071000D7FF40464FF4804101F016F940464FF4B0 +:10072000805101F011F9A8F554463046242101F01A +:1007300019FB00BF3046802101F016FB0028F9D1DB +:1007400040464FF4805101F001F940464FF480419A +:1007500001F0FCF840464FF4805101F0F5F8002517 +:100760007C5D00BF3046022101F0FEFA0028F9D07E +:100770003046214601F0F6FA0135B5F5945FEFD128 +:100780003046802101F0F0FA0028F9D140464FF4BC +:10079000805101F0DBF80020002100F091FF40467D +:1007A0004FF4804101F0D0F840464FF4805101F001 +:1007B000CBF83046262101F0D5FA00BF3046802123 +:1007C00001F0D2FA0028F9D140464FF4805101F0EF +:1007D000BDF840464FF4804101F0B8F840464FF470 +:1007E000805101F0B1F8002419F80450304602217C +:1007F00001F0BAFA0028F9D085F0FF01304601F087 +:10080000B1FA0134B4F5945FEED100BF30468021D7 +:1008100001F0AAFA0028F9D140464FF4805101F0C6 +:1008200095F801B0BDE8F04300F0D6BF70B540F6D2 +:1008300000440546C4F2010400F05AFE20464FF47D +:10084000804101F081F820464FF4805101F07CF89E +:10085000A4F554463046102101F084FA3046802138 +:1008600001F082FA0028F9D120464FF4805101F0BE +:100870006DF820464FF4804101F068F820464FF4AF +:10088000805101F061F83046294601F06BFA00BF53 +:100890003046802101F068FA0028F9D120464FF453 +:1008A000805101F053F840F27C00C2F200000021B8 +:1008B000017070BDF0B581B040F27C06C2F2000656 +:1008C000307840F60044C4F2010498B9A4F580657C +:1008D00028464FF4807101F037F83220FFF7DAFE36 +:1008E00028464FF4807101F031F83220FFF7D2FE34 +:1008F00001203070A4F5806630464FF4007101F09D +:10090000D7F870B149F641450120013D00F044821D +:10091000FFF7C0FE30464FF4007101F0C9F800281F +:10092000F2D120464FF4804101F00EF820464FF4FA +:10093000805101F009F8A4F554452846122101F030 +:1009400011FA00BF2846802101F00EFA0028F9D1E3 +:1009500020464FF4805100F0F9FF20464FF48041CB +:1009600000F0F4FF0A20FFF795FE30464FF40071C7 +:1009700001F09EF878B149F6414700BF0120013FE0 +:1009800000F00A82FFF786FE30464FF4007101F056 +:100990008FF80028F2D120464FF4804100F0D4FFB8 +:1009A00020464FF4805100F0CFFF2846012101F08E +:1009B000D9F900BF2846802101F0D6F90028F9D1E5 +:1009C00020464FF4805100F0C1FF20464FF4804193 +:1009D00000F0BCFF20464FF4805100F0B5FF2846E0 +:1009E000272101F0BFF900BF2846802101F0BCF9A2 +:1009F0000028F9D120464FF4805100F0A7FF20468F +:100A00004FF4805100F0A0FF2846012101F0AAF91F +:100A10002846802101F0A8F90028F9D120464FF49A +:100A2000805100F093FF20464FF4805100F08CFF7E +:100A30002846012101F096F92846802101F094F919 +:100A40000028F9D120464FF4805100F07FFF204666 +:100A50004FF4804100F078FF20464FF4805100F0C1 +:100A600073FF2846112101F07DF900BF284680213F +:100A700001F07AF90028F9D120464FF4805100F0B6 +:100A800065FF20464FF4804100F060FF20464FF4A0 +:100A9000805100F059FF2846012101F063F900BFA1 +:100AA0002846802101F060F90028F9D120464FF452 +:100AB000805100F04BFF20464FF4804100F044FF8E +:100AC00020464FF4805100F03FFF2846442101F0BA +:100AD00049F900BF2846802101F046F90028F9D1E4 +:100AE00020464FF4805100F031FF20464FF4804102 +:100AF00000F02CFF20464FF4805100F025FF2846DF +:100B0000002101F02FF900BF2846802101F02CF9C7 +:100B10000028F9D120464FF4805100F017FF2046FD +:100B20004FF4805100F010FF28460F2101F01AF910 +:100B30002846802101F018F90028F9D120464FF409 +:100B4000805100F003FF20464FF4804100F0FCFE8E +:100B500020464FF4805100F0F7FE2846452101F071 +:100B600001F900BF2846802101F0FEF80028F9D1E4 +:100B700020464FF4805100F0E9FE20464FF48041BA +:100B800000F0E4FE20464FF4805100F0DDFE2846E0 +:100B9000272101F0E7F800BF2846802101F0E4F8A2 +:100BA0000028F9D120464FF4805100F0CFFE2046B6 +:100BB0004FF4805100F0C8FE2846012101F0D2F820 +:100BC0002846802101F0D0F80028F9D120464FF4C2 +:100BD000805100F0BBFE20464FF4805100F0B4FE7F +:100BE0002846002101F0BEF82846802101F0BCF81B +:100BF0000028F9D120464FF4805100F0A7FE20468E +:100C00004FF4805100F0A0FE2846002101F0AAF820 +:100C10002846802101F0A8F80028F9D120464FF499 +:100C2000805100F093FE20464FF4804100F08CFE8E +:100C300020464FF4805100F087FE28463C2101F009 +:100C400091F800BF2846802101F08EF80028F9D1E4 +:100C500020464FF4805100F079FE20464FF4804149 +:100C600000F074FE20464FF4805100F06DFE2846DF +:100C7000052101F077F800BF2846802101F074F8C3 +:100C80000028F9D120464FF4805100F05FFE204645 +:100C90004FF4804100F058FE20464FF4805100F0A0 +:100CA00053FE2846212101F05DF800BF284680212F +:100CB00001F05AF80028F9D120464FF4805100F095 +:100CC00045FE20464FF4804100F040FE20464FF4A0 +:100CD000805100F039FE2846002101F043F800BFA2 +:100CE0002846802101F040F80028F9D120464FF431 +:100CF000805100F02BFE20464FF4805100F024FE7E +:100D00002846802101F02EF82846802101F02CF899 +:100D10000028F9D120464FF4805100F017FE2046FC +:100D20004FF4804100F010FE20464FF4805100F057 +:100D30000BFE2846182101F015F800BF2846802137 +:100D400001F012F80028F9D120464FF4805100F04C +:100D5000FDFD20464FF4804100F0F8FD20464FF4A1 +:100D6000805100F0F1FD2846802100F0FBFF00BF1C +:100D70002846802100F0F8FF0028F9D120464FF4E2 +:100D8000805100F0E3FD0020002100F099FC00F00C +:100D900023FC002818BF012001B0F0BD2DE9F0416F +:100DA00084B00224C0F2180420460121FFF7DAFBC8 +:100DB000601C0121FFF7D6FB02AD284600F0C8FDFC +:100DC00040F60044C4F20104A4F5806630464FF4B6 +:100DD00080714FF4807700F0B7FD40F20040C0F220 +:100DE0001010CDE902703046294600F001FE1820AF +:100DF000ADF80D004FF4007002903046294600F027 +:100E0000F7FD20464FF480414FF4804600F09EFDF0 +:100E10004FF010084FF48067204629468DF80E8069 +:100E2000ADF80C70029600F0E3FD4FF40050082678 +:100E3000029020462946ADF80C708DF80E6000F047 +:100E4000D7FD4FF400400290204629468DF80E60F1 +:100E500000F0CEFD20464FF480514FF4805600F054 +:100E600075FD204629468DF80E80ADF80C7002966F +:100E700000F0BEFD0E20C0F21C000121FFF772FB46 +:100E80006D46284600F05CFF40F20310C0F20500FA +:100E9000009040F20010C0F20110A4F554440190FB +:100EA0002046294600F066FF2046012100F050FF51 +:100EB00004B0BDE8F081000080B540F2680CC2F2D9 +:100EC000000CBCF81210002908BF80BD4FF0000EC6 +:100ED00006E000BFBCF812100EF1010E8E4512D2D2 +:100EE000BCF81030002BF5D04FF0FF31DCF80020BB +:100EF0000EFB03220A445070BCF810308A1C0131EA +:100F00009A42F3D3E6E780BD2DE9F04F86B0B2EB0D +:100F1000000C0D46924648BFCCF1000C5F1B4FF011 +:100F2000FF314FF6FF7248BF7F424FF0FF368245D8 +:100F300088BF0121029119460193AB4288BF012667 +:100F400040F26809A2F18003C7F1000B0096ACEBF8 +:100F50000706C2F200090FFA83FE0397691E049583 +:100F6000059102E0BCEB460F4CDAB9F80E30A0F167 +:100F70000108B32B0CDC9BB15A2B38D1B9F80830DF +:100F8000B9F80A700499A3EB00087B1A17E000BFB8 +:100F9000B42B0FD0B3F5877F059B10D027E000BF9F +:100FA0005146B9F808A0049A4346AAEB02088A46BB +:100FB00005E000BFB9F80A30DDF814801B1AB9F853 +:100FC00010209BB21FFA88F75A43D9F8003002EB81 +:100FD000D7029F5C08F007058021E9400F9C394348 +:100FE0004EFA05F5002C08BF07EA05019954BBEB42 +:100FF000460FB7DC81B251450ED00399761A02999B +:101000000844AFE70499019A89B2914204D0049D43 +:10101000009966440D44A1E706B0BDE8F08F0000DA +:101020002DE9F04182B00F46DDE908811C461546E6 +:10103000064681B1A7420BD2B9B230462A460B46CA +:10104000CDF80080FFF760FF0137B8B2A042F3D3BC +:1010500002B0BDE8F081304639462A463B46CDF81D +:101060000080FFF751FF3046394632462346CDF81F +:101070000080FFF749FF284621462A463B46CDF827 +:101080000080FFF741FF2846214632462346CDF82F +:101090000080FFF739FF02B0BDE8F08110B540F2E3 +:1010A000680EDDF808C0C2F2000ECEF80000C808D5 +:1010B000AEF80810AEF80A20AEF80CC04FF0010CE4 +:1010C0004C0718BF0CEBD100AEF81000AEF80E3094 +:1010D000B3FA83F0B43BB3FA83F340095B091843D6 +:1010E0000846AEF812201CBF10460A46AEF80400AF +:1010F000AEF8062010BD000040F26801C2F2000107 +:10110000086070472DE9F04F8BB00130069080B237 +:101110000590C01AB0F5947F00F3EF80082B02D140 +:1011200006276FB9E9E0D8085F074FF0010618BF3E +:1011300006EBD3005F08784387B2002F00F0DD8014 +:10114000A2F1200085B25808039041F6B67005EB75 +:101150004502C0F6000000EB4200049042F25260EB +:1011600040F26806C0F60000DDF818E001314FF6E5 +:101170007F7B00240192C2F20006802200EB051062 +:1011800002950090CDE9077312E000BF05991FFAA0 +:101190008EF0401A03998842069808BF864609993E +:1011A00008BF083107980A9C0134844200F0A580EA +:1011B000082B0A9402D1049818E000BF182B0AD01B +:1011C000102B12D00C2B40F09880019842F2DE13C5 +:1011D000C0F6000306E0029842F6424300EBC0006E +:1011E000C0F6000303EB800000E00098204490F874 +:1011F0000090AEF101084FF0000C099124E07089D5 +:10120000A0EB0E00348A80B21FFA8AF36043346880 +:1012100000EBD303E018E35C0AF007050FFA8BF745 +:1012200022FA05F447FA05F51C4303EA0507149B67 +:10123000002B08BF274607704FEA59090131BCF15E +:10124000070F0CF1010C4FD2F0895FEAC974A1F1CC +:10125000010A0BD1B32815DC20B35A28ECD1308910 +:101260007389A0EB0E0A581ACCE700BFB32811DC33 +:10127000E8B15A28E0D130897489A0EB0E0A601ACF +:101280001DE000BFB428BAD0B0F5877F5046C246F3 +:10129000B8D0D1E7B4280FD0B0F5877F5046C2460A +:1012A0000DD0C9E73089A0EB010A4046AAE7308992 +:1012B000A0EB010A404602E07089A0EB0E00378ADD +:1012C00080B21FFA8AF47843376800EBD4043819E7 +:1012D0003C5D0AF007030FFA8BF522FA03F745FA93 +:1012E00003F327431C40A2E7089B0EF1010E082BD5 +:1012F0007FF44CAF0798099955E70BB0BDE8F08F24 +:101300002DE9F04F89B0DE085F0705924FF001022A +:1013100018BF02EBD306002E009600F0BB80013010 +:10132000DDF84C904E1C81B240F268070391002515 +:10133000C2F200074FF0800C0024314604900AE00E +:101340000599019C029D0C4431460135009BAAB2CF +:101350009A4280F09F80059A002AF6D000230295D9 +:10136000019413E00130039A81B2891A059A069C10 +:101370009142049908BF0846089E08BF0836079B9B +:101380000134013399B291423146D9D2CDE90643B5 +:10139000129BA2B213F80280A0F1010B4FF0000AD9 +:1013A000089623E07A89121A3C8A92B21FFA8EF3C9 +:1013B00062433C6802EBD302A518A35C4FF67F742E +:1013C0000EF0070624B22CFA06F244FA06F61A4387 +:1013D0003340B9F1000F08BF1A462A704FEA580887 +:1013E0000131BAF1070F0AF1010ABBD2FD895FEAA8 +:1013F000C872A1F1010E0BD1B32D15DC25B35A2D06 +:10140000ECD13A897B89A2EB000E5A1ACCE700BFD7 +:10141000B32D11DCEDB15A2DE0D13A897B89A2EBD5 +:10142000000E5A1A1CE000BFB42DBBD0B5F5877F63 +:101430007246DE46B8D0D1E7B42D0FD0B5F5877F20 +:101440007246DE460CD0C9E73A89A2EB010E5A4635 +:10145000AAE73A89A2EB010E5A4601E07A89121AEC +:101460003D8A92B21FFA8EF36A434C46D7F8009039 +:1014700002EBD3024FF67F7609EB020519F8022042 +:10148000A1460EF0070436B22CFA04F326411343AA +:1014900032409EE709B0BDE8F08F00002DE9F0472B +:1014A00082B01C461378FBB1DDF828804FEA540A5D +:1014B0000D460646CAF59479571C06E05644B0B26C +:1014C000814511DB17F8013B73B1B0B2DAB229469E +:1014D0002346CDF80080FFF715FE082CEED1063626 +:1014E000B0B2B0F5917FEDD902B0BDE8F087000051 +:1014F000B0B540F60044C4F2010420464FF48041E8 +:1015000000F022FA20464FF4805100F01DFAA4F5B5 +:1015100054452846222100F025FC00BF28468021A2 +:1015200000F022FC0028F9D120464FF4805100F051 +:101530000DFA20464FF4804100F008FA20464FF49F +:10154000805100F001FA2846832100F00BFC00BF17 +:101550002846802100F008FC0028F9D120464FF4ED +:10156000805100F0F3F920464FF4804100F0ECF98F +:1015700020464FF4805100F0E7F92846202100F082 +:10158000F1FB00BF2846802100F0EEFB0028F9D1D6 +:1015900020464FF4805100F0D9F920464FF48041A5 +:1015A00000F0D4F9A4F5806420464FF4007100F0F7 +:1015B0007FFA70B149F641450120013D08BFB0BD39 +:1015C000FFF768F820464FF4007100F071FA002828 +:1015D000F2D10020B0BD0000B0B540F60044C4F226 +:1015E000010420464FF4804100F0AEF920464FF44C +:1015F000805100F0A9F9A4F554452846222100F0B5 +:10160000B1FB00BF2846802100F0AEFB0028F9D1D5 +:1016100020464FF4805100F099F920464FF4804164 +:1016200000F094F920464FF4805100F08DF92846DF +:10163000F82100F097FB00BF2846802100F094FBC2 +:101640000028F9D120464FF4805100F07FF9204660 +:101650004FF4804100F078F920464FF4805100F0BB +:1016600073F92846202100F07DFB00BF2846802129 +:1016700000F07AFB0028F9D120464FF4805100F0A9 +:1016800065F920464FF4804100F060F9A4F58064CC +:1016900020464FF4007100F00BFA70B149F6414555 +:1016A0000120013D08BFB0BDFEF7F4FF20464FF416 +:1016B000007100F0FDF90028F2D10020B0BD00005B +:1016C000F0B581B040F60044C4F201040E46C708EC +:1016D00020464FF4804100F037F920464FF4805106 +:1016E00000F032F9A4F5544528464E2100F03AFBAB +:1016F0002846802100F038FB0028F9D120464FF41D +:10170000805100F023F920464FF4804100F01EF98B +:1017100020464FF4805100F017F9F9B2284600F046 +:1017200021FB00BF2846802100F01EFB0028F9D1D4 +:1017300020464FF4805100F009F920464FF48041D3 +:1017400000F002F920464FF4805100F0FDF82846E1 +:101750004F2100F007FB00BF2846802100F004FB6A +:101760000028F9D140F22710861B20464FF4805103 +:1017700000F0ECF820464FF4804100F0E7F82046F6 +:101780004FF4805100F0E0F8F1B2284600F0EAFA98 +:101790002846802100F0E8FA0028F9D120464FF4CD +:1017A000805100F0D3F820464FF4805100F0CCF87F +:1017B000C6F30021284600F0D5FA00BF2846802154 +:1017C00000F0D2FA0028F9D120464FF4805101B040 +:1017D000BDE8F04000F0BAB8B0B540F60044C4F23D +:1017E000010420464FF4804100F0AEF820464FF44B +:1017F000805100F0A9F8A4F554452846222100F0B4 +:10180000B1FA00BF2846802100F0AEFA0028F9D1D5 +:1018100020464FF4805100F099F820464FF4804163 +:1018200000F094F820464FF4805100F08DF82846DF +:10183000F72100F097FA00BF2846802100F094FAC3 +:101840000028F9D120464FF4805100F07FF820465F +:101850004FF4804100F078F820464FF4805100F0BA +:1018600073F82846202100F07DFA00BF2846802129 +:1018700000F07AFA0028F9D120464FF4805100F0A8 +:1018800065F820464FF4804100F060F8A4F58064CC +:1018900020464FF4007100F00BF970B149F6414554 +:1018A000013D08BFB0BD0120FEF7F4FE20464FF415 +:1018B000007100F0FDF80028F2D1B0BD00214160B8 +:1018C000012101810170704740F21441C4F201010D +:1018D0000860704740F20841C4F20101426851F8C3 +:1018E000083C934341F8083C51F8043C934341F8C9 +:1018F000043C437A002B08BF704703786FEA020C60 +:101900002BB151F8043C134341F8043C04E051F876 +:10191000083C134341F8083C0B6803EA0C030B60D6 +:101920004B6803EA0C034B60007A012807D018B912 +:1019300008681043086070470868104308604868EA +:101940001043486070470000416170470161704773 +:1019500040F200424FF6FF71C0F20012C0E90012DF +:101960007047000080B58B08032B88BF80BD0C2218 +:1019700002EA810E4FF00F0C02EB83010CFA0EF21B +:10198000DFE803F002290F1C0821C4F201010B68F3 +:1019900000FA0EF023EA02020A600A6810430860A7 +:1019A00080BD0821C4F201018B6800FA0EF023EA21 +:1019B00002028A608A681043886080BD0821C4F2F0 +:1019C0000101CB6800FA0EF023EA0202CA60CA687D +:1019D0001043C86080BD0821C4F201014B6800FAC1 +:1019E0000EF023EA02024A604A681043486080BD54 +:1019F000B0B58B790A88032B0BD07BB9497928299C +:101A000001F00F0E18D0182908BF0261110616D177 +:101A10002EE04FF0000E110611D129E003F0080C62 +:101A20000B79C97903F00403634401F0030103EB6C +:101A3000010E110603D11BE04261110618D00023EC +:101A40004FF00F0C002104E00131082903F10403D9 +:101A50000ED022FA01F4E407F6D004680CFA03F57C +:101A6000AC43046004680EFA03F52C430460EBE712 +:101A7000B2F5807F38BFB0BD120A00234FF00F0CC3 +:101A8000002104E00131082903F104030ED022FAF9 +:101A900001F4E407F6D044680CFA03F5AC43446063 +:101AA00044680EFA03F52C434460EBE7B0BD000038 +:101AB00080680840401AB0FA80F040097047000082 +:101AC00010B582B00420C0F218000121FEF74AFDD3 +:101AD0006C462046FFF73CFF40F20040C0F2101079 +:101AE00001904FF40050009041F20000C4F2010058 +:101AF0002146FFF77DFF02B010BD000041F20C004F +:101B0000C4F20100016881F40051016070470000D7 +:101B100088B000F0A5F9FEF79DFDFEF765FCFEF725 +:101B20003DFCFFF7CDFFFFF739F9FEF7C3FE40F2AA +:101B30008804C2F20004FF26204680214FF49472EC +:101B4000B4230096FFF7AAFA41F20835C2F2000565 +:101B5000284680214FF49472B4230096FFF79EFA32 +:101B60002046FFF7C9FAFF20FFF7A6F92846FFF73E +:101B7000C3FAFF20FFF7A0F943F69E10C0F600005D +:101B8000009017200321FA227A230196FFF7B8FB71 +:101B900020462946FEF7B0FD01200126FEF746FE4D +:101BA0004FF4FA50FEF776FDFEF784FE2046FFF76D +:101BB000A3FAFF20FFF780F9002729A20A200021BD +:101BC00018230097FFF76AFC2AA20A20322110236B +:101BD0000097FFF763FC2EA20A201D211023009717 +:101BE000FFF75CFC2846FFF787FAFF20FFF764F950 +:101BF00046F26C40C0F22E00069045F22070C7F20B +:101C00006F20059046F66540C6F66C70049043F66A +:101C10003E60C4F62000039003AA0A20472118233F +:101C20000097FFF73BFC0A2067214FF48F72742363 +:101C300000970196FFF7F4F920462946FEF75CFD70 +:101C40000120FEF7F3FD40F20004C2F20004642517 +:101C5000FFF754FF20786843FEF71CFDF8E700BF4C +:101C6000322E3920457061706572204D6F64756C3D +:101C70006500000077697468203239362078203199 +:101C80003238207265736F6C7574696F6E00000076 +:101C900044657369676E65642042792057654163C6 +:101CA000742053747564696F00000000B0B54EF67F +:101CB0000C5ECEF2000EDEF800304FF0FF35C3F3BD +:101CC000022383F00704042C28BF0424033B05FAF5 +:101CD00004F438BF0023A143994005FA03F39A4363 +:101CE00000F00F03043B4EF2001C7344CEF2000CD4 +:101CF00011430C33B0F1FF3F4FEA011100EB0C022E +:101D0000C8BF02F540730028197048BFB0BD00F08D +:101D10001F01012202FA01F140094CF82010B0BD68 +:101D20004EF60C51CEF200010A684FF6FF031A403E +:101D300060F30A2242F0806040F0FD700860704756 +:101D40000021C0F8031001600121C171704700003B +:101D5000026801F0010122F0400242EA81110160B3 +:101D600070470000C16070478068084018BF0120BC +:101D700070470000C26922F40062C2610A78032A37 +:101D800027D8DFE802F00206121A026822F40042A5 +:101D90000EE0026822F400420260026822F48042EF +:101DA0000260026842F4806212E0026842F400427B +:101DB0000260026822F4804206E0026842F40042B7 +:101DC0000260026842F480420260026822F480628B +:101DD0000260CA79036802F0010223F4007343EA47 +:101DE000422202604A78012A06D1CA79012A03D127 +:101DF000026842F4807202E0026822F4807202609B +:101E00004A78036862F3820303608A784368072A8A +:101E100023F4807388BF03F5807343608A78036876 +:101E200062F3C5030360CA78036802F0010223F07D +:101E3000800343EAC21202600A79036802F00102D9 +:101E400023F4006343EAC22202604A79036862F322 +:101E5000410303608979026861F300020260704700 +:101E600080B5FEF7C3FB01200121FEF70FFB00BF89 +:101E7000FEF766FB0028FBD002203B210122FEF783 +:101E800085FB0020FEF74EFB02200121FEF7FEFA43 +:101E90001920FEF739FB0128FAD10020FEF7C0FA1D +:101EA0000420FEF7D9FA0420FEF7C8FA0120FEF755 +:101EB000E1FA0220FEF7BCFBFEF7C4FB0228FBD1CF +:101EC0000020FEF7D7FABDE8804000F001B800001E +:101ED000B0B541F2040441F20025C4F20204C0F29C +:101EE0007A05FEF7AFFB02280BD0A0BB206D800562 +:101EF00031D5E06A800144BF46F60045C0F2DC25DA +:101F000029E0D4F800C021682268C1F38341C2F3FC +:101F100041721301581C0F29034618BF0223002ADF +:101F200018BF03465FEACC3003EB010006D440F64D +:101F30000011C0F23D0100FB01F50CE021688903AE +:101F400001D4454307E0216DC1F301310231B5FBF6 +:101F5000F1F101FB00F540F20400C2F2000005605F +:101F6000216804A2C1F30311515C026822FA01F155 +:101F70000160B0BD00000000000000000102030489 +:101F8000060708094EF21001CEF200010A68042883 +:101F900022F0040208BF04320A607047F1EE100A12 +:101FA0004FF6FF71C0F2C03120EA010040F04070EE +:101FB000E1EE100A70470000000000000000002F52 +:101FC000000000000700070000147F147F140024A5 +:101FD0002A7F2A12006264081323003649552250D2 +:101FE00000000503000000001C2241000000412207 +:101FF0001C000014083E08140008083E08080000F1 +:1020000000A06000000808080808000060600000E8 +:10201000002010080402003E5149453E0000427F66 +:102020004000004261514946002141454B310018B2 +:1020300014127F10002745454539003C4A49493074 +:10204000000171090503003649494936000649492E +:10205000291E000036360000000056360000000839 +:102060001422410000141414141400004122140816 +:1020700000020151090600324959513E007C1211FB +:10208000127C007F49494936003E41414122007F90 +:102090004141221C007F49494941007F090909014A +:1020A000003E4149497A007F0808087F0000417FCF +:1020B0004100002040413F01007F08142241007F81 +:1020C00040404040007F020C027F007F0408107FE8 +:1020D000003E4141413E007F09090906003E415151 +:1020E000215E007F0919294600464949493100010E +:1020F000017F0101003F4040403F001F2040201F62 +:10210000003F4038403F0063140814630007087024 +:10211000080700615149454300007F4141000055D7 +:102120002A552A55000041417F00000402010204A3 +:102130000040404040400000010204000020545490 +:102140005478007F484444380038444444200038E0 +:102150004444487F00385454541800087E09010252 +:102160000018A4A4A47C007F080404780000447D27 +:102170004000004080847D00007F10284400000063 +:10218000417F4000007C04180478007C0804047837 +:1021900000384444443800FC242424180018242423 +:1021A00018FC007C0804040800485454542000041F +:1021B0003F444020003C4040207C001C2040201C2C +:1021C000003C4030403C004428102844001CA0A0A3 +:1021D000A07C004464544C441414141414140000DF +:1021E000000000000000000000000000FC000000F3 +:1021F000000002000000000C020C020000000000C1 +:10220000000090D0BCD0BC90000300030000182454 +:10221000FE448C000302070201001824D8B04C8051 +:10222000000300010201C038E438E00001020201AD +:10223000020208060000000000000000000000008C +:1022400000F80402000000010204000204F800008B +:102250000004020100009060F8609000000001009E +:1022600000002020FC2020000000010000000000F1 +:1022700000000000080600000000202020202000B0 +:10228000000000000000000000000000000200004C +:1022900000000080601C0200040300000000F8043D +:1022A0000404F8000102020201000008FC00000022 +:1022B00000020302000018844424180003020202F2 +:1022C000020008042424D80001020202010040B0E8 +:1022D00088FC80000000000302003C242424C40089 +:1022E000010202020100F824242CC00001020202B3 +:1022F00001000C04E41C0400000003000000D824CA +:102300002424D80001020202010038444444F800A9 +:1023100000030202010000001000000000000200A3 +:102320000000000020000000000006000000002067 +:1023300050880402000000000102909090909000EC +:10234000000000000000000204885020000201008C +:1023500000001804C4241800000002000000F80463 +:10236000E494F80001020202020000E09CF0800008 +:1023700002030000030204FC2424D800020302022A +:102380000100F80404040C0001020202010004FC34 +:102390000404F80002030202010004FC24740C008F +:1023A00002030202030004FC24740C000203020076 +:1023B0000000F0080444CC4000010202010004FCCB +:1023C0002020FC040203000003020404FC040400B7 +:1023D000020203020200000404FC040406040403D5 +:1023E000000004FC24D00C0402030200030204FCDD +:1023F00004000000020302020203FC3CC03CFC009B +:1024000003000300030004FC30C4FC0402030200C8 +:102410000300F8040404F80001020202010004FCB5 +:1024200024241800020302000000F8848404F80049 +:1024300001020207050004FC246498000203020064 +:102440000302182424448C000302020201000C043D +:10245000FC040C0000020302000004FC0000FC0469 +:10246000000102020100047C80E01C040000030063 +:1024700000001CE03CE01C00000300030000049C82 +:10248000609C0400020300030200041CE01C040022 +:102490000002030200000C84641C04000203020218 +:1024A00003000000FE020200000007040400000E0A +:1024B00030C00000000000010200000202FE000027 +:1024C00000040407000000040204000000000000F3 +:1024D00000000000000000000808080808080000CC +:1024E000020000000000000000000040A0A0C000AA +:1024F00000010202030204FC2020C00000030202CB +:10250000010000C02020600000010202020000C0A3 +:102510002024FC0000010202030200C0A0A0C000B1 +:102520000001020202000020F82424040002030239 +:1025300002000040A0A0602000070A0A0A0404FC70 +:102540002020C0000203020003020020E40000007B +:10255000000203020000000020E400000808080751 +:10256000000004FC80E020200203020003020404B7 +:10257000FC000000020203020200E020E020C00094 +:1025800003000300030020E02020C000020302003B +:10259000030200C02020C00000010202010020E070 +:1025A0002020C000080F0A02010000C02020E00027 +:1025B0000001020A0F0820E0402020000203020070 +:1025C00000000060A0A02000000202020300002022 +:1025D000F820000000000102020020E00020E000DE +:1025E00000010202030220E02080602000000301BD +:1025F00000006080E08060000003000300002060B5 +:102600008060200002030003020020E020806020A0 +:102610000808070100000020A0602000000203025B +:102620000200000020DE020000000007040000009D +:1026300000FF00000000000F00000002DE2000008C +:102640000004070000000201020404020000000070 +:10265000000000000000000000000000000000007A +:102660000000000000F8000000000000003330000F +:10267000000000100C06100C060000000000000016 +:10268000000040C07840C0784000043F04043F048C +:102690000400007088FC08300000001820FF211E94 +:1026A0000000F008F000E018000000211C031E21CB +:1026B0001E0000F00888700000001E212324192746 +:1026C000211010160E0000000000000000000000A5 +:1026D0000000000000E018040200000000071820BD +:1026E000400000020418E00000000040201807002D +:1026F0000000404080F0804040000202010F0102D3 +:102700000200000000F0000000000101011F0101B3 +:102710000100000000000000000080B07000000018 +:1027200000000000000000000000000101010101A4 +:102730000101000000000000000000303000000037 +:10274000000000000000806018040060180601000E +:10275000000000E010080810E000000F102020101A +:102760000F00001010F8000000000020203F202083 +:10277000000000700808088870000030282422211A +:1027800030000030088888483000001820202011D0 +:102790000E000000C02010F8000000070424243FB1 +:1027A000240000F80888880808000019212020115A +:1027B0000E0000E0108888180000000F1120201182 +:1027C0000E0000380808C83808000000003F00006C +:1027D00000000070880808887000001C2221212257 +:1027E0001C0000E010080810E00000003122221157 +:1027F0000F00000000C0C0000000000000303000EA +:102800000000000000800000000000008060000068 +:1028100000000000804020100800000102040810A1 +:1028200020004040404040404000040404040404B0 +:10283000040000081020408000000020100804025E +:102840000100007048080808F00000000030360160 +:102850000000C030C828E810E0000718272423141F +:102860000B000000C038E0000000203C23020227DB +:10287000382008F8888888700000203F2020201128 +:102880000E00C03008080808380007182020201063 +:10289000080008F808080810E000203F2020201059 +:1028A0000F0008F88888E8081000203F2020232027 +:1028B000180008F88888E8081000203F200003006E +:1028C0000000C03008080838000007182020221E29 +:1028D000020008F808000008F808203F2101012143 +:1028E0003F20000808F8080800000020203F2020B2 +:1028F000000000000808F8080800C08080807F0001 +:10290000000008F888C028180800203F2001263859 +:10291000200008F8080000000000203F20202020B0 +:10292000300008F8F800F8F80800203F003F003FAA +:10293000200008F830C00008F808203F20000718E1 +:102940003F00E01008080810E0000F1020202010C1 +:102950000F0008F808080808F000203F21010101D5 +:102960000000E01008080810E0000F182424385078 +:102970004F0008F8888888887000203F2000030CEA +:1029800030200070880808083800003820212122F3 +:102990001C00180808F8080818000000203F200054 +:1029A000000008F808000008F808001F2020202078 +:1029B0001F000878880000C83808000007380E019A +:1029C0000000F80800F80008F800033C0700073C86 +:1029D0000300081868808068180820302C03032C36 +:1029E00030200838C800C83808000000203F200008 +:1029F000000010080808C8380800203826212020C8 +:102A00001800000000FE020202000000007F4040AB +:102A10004000000C30C0000000000000000106383B +:102A2000C00000020202FE000000004040407F00A3 +:102A30000000000004020202040000000000000088 +:102A40000000000000000000000080808080808086 +:102A5000808000020204000000000000000000006E +:102A600000000000808080800000001924222222C3 +:102A70003F2008F8008080000000003F1120201156 +:102A80000E000000008080800000000E1120202039 +:102A90001100000000808088F800000E1120201036 +:102AA0003F200000808080800000001F2222222220 +:102AB0001300008080F0888888180020203F2020A4 +:102AC00000000000808080808000006B94949493CC +:102AD000600008F8008080800000203F2100002076 +:102AE0003F2000809898000000000020203F202018 +:102AF0000000000000809898000000C08080807F67 +:102B0000000008F8000080808000203F24022D3063 +:102B10002000000808F8000000000020203F2020CE +:102B200000008080808080808000203F20003F2047 +:102B3000003F8080008080800000203F2100002036 +:102B40003F200000808080800000001F2020202087 +:102B50001F00808000808000000080FFA1202011E5 +:102B60000E000000008080808000000E112020A058 +:102B7000FF80808080008080800020203F21200016 +:102B80000100000080808080800000332424242401 +:102B90001900008080E0808000000000001F2020DD +:102BA00000008080000000808000001F2020201096 +:102BB0003F20808080000080808000010E30080669 +:102BC000010080800080008080800F300C030C307A +:102BD0000F0000808000808080000020312E0E31A8 +:102BE0002000808080000080808080818E701806A8 +:102BF000010000808080808080000021302C222114 +:102C0000300000000000807C020200000000003F55 +:102C1000404000000000FF00000000000000FF0036 +:102C200000000002027C800000000040403F0000E5 +:102C30000000000601010202040400000000000080 +:102C40000000000000000000000000000000000084 +:102C50000000000000000000000000000000000074 +:102C60000000000000000000000000F0F0F0000094 +:102C700000000000000000017F01000000000000D3 +:102C80000000001C1C1C0000000000008060301CC4 +:102C90008C60301C0C0000000000000000000000F0 :102CA0000000000000000000000000000000000024 -:102CB0000000000000008080808080808080808014 -:102CC00080800000000404080800000000000000EC -:102CD00000000000000000000000000000000000F4 -:102CE00000000000000000000000000000000000E4 -:102CF0000000000098D844642424FCF80000000F71 -:102D00001F18101010081F1F10180020E0F00000FE -:102D10000000000000000000FFFF180804040CF889 -:102D2000F00000001F0F18101010180F0300000013 -:102D30000000000000000000000000E0F81804049B -:102D4000043C3800000000030F0C1010101008069F -:102D500000000000000000000020E0F0000000E0A3 -:102D6000F81C04040408FFFF000000030F181010F3 -:102D700010081F0F08000000000000000000000005 -:102D800000000000E0F8484444444C787000000023 -:102D9000030F0C181010100804000000000080C081 -:102DA000602020E0C00000040404FFFF04040404C9 -:102DB0000000000010101F1F101010000000000085 -:102DC00000000000000000000000000070F88C040B -:102DD000048CF874040C007076CF8D8D8D89C878C2 -:102DE00070000020E0F00000000000000000000083 -:102DF000FFFF08040404FCF8000000101F1F10006F -:102E000000101F1F100000000000006060000000A4 -:102E100000000000040404FCFC00000000000000AE -:102E20001010101F1F101010000000000000000004 -:102E300000606000000000000000040404FCFC00CE -:102E400000000000C0C08080C07F3F000000002064 -:102E5000E0F000000000000000000000FFFF80C064 -:102E6000F41C0404000000101F1F1100031F1C109D -:102E700010000000202020E0F00000000000000012 -:102E8000000000FFFF000000000000001010101FF5 -:102E90001F101010000000000000000000000000E3 -:102EA000000004FCFC0804FCFC0804FCFC00101FEF -:102EB0001F10001F1F10001F1F1000000000000047 -:102EC0000000000000000004FCFC08080404FCF8FA -:102ED000000000101F1F100000101F1F1000000036 -:102EE0000000000000000000000000E0F0180C04EA -:102EF000040C18F0E00000030F0C101010100C0F61 -:102F000003000000000000000000000000000004BA -:102F1000FCFC080404040CF8F0000080FFFF88901B -:102F200010101C0F03000000000000000000000053 -:102F3000000000E0F81C04040408F8FC0000000392 -:102F40000F1810109088FFFF8000000000000000A4 -:102F5000000000000000040404FCFC100804040C41 -:102F60000C001010101F1F101010000000000000B7 -:102F70000000000000000000000000003078CCC419 -:102F80008484840C1C0000001E1810101011190FEE -:102F900006000000000000C0000000000000000467 -:102FA0000404FFFF040404000000000000000F1FE1 -:102FB0001010100C000000000000000000000000D5 -:102FC00000000004FCFE00000004FCFE0000000005 -:102FD0000F1F181010081F0F08000000000000004D -:102FE00000000000000000040C3CFCC40000C43CD5 -:102FF0000C0400000000010F1E0E01000000000084 -:1030000000000000000000000000043CFCC400E4DC -:103010007CFC84807C040000071F070000071F075A -:10302000000000000000000000000000000000049C -:10303000041C7CE4C0341C0404000010101C1601A5 -:10304000131F1C181000000000000000000000000A -:10305000000000040C3CFCC400C43C04040000005C -:10306000C080C1370E010000000000000000000019 -:1030700000000000000000001C0404C4F47C1C04D8 -:1030800000000000101C1F17111010180E00000087 -:103090000000000000F80C04000000000000001018 -:1030A00028EF00000000000000000000003F60402A -:1030B0000000000000000000FF0000000000000011 -:1030C00000000000FF000000000000000000000001 -:1030D000FF00000000000000040CF80000000000E9 -:1030E000000000000000EF281000000000000000B9 -:1030F00040603F00000000000000001806020204CB -:10310000081020203008000000000000000000002F -:1031100000000000000000000000000000000000AF -:10312000000000000000000000000000000000009F -:10313000000000000000000000000000000000008F -:10314000000000000000000000000000000000007F -:10315000000000000000000000000000000000006F -:10316000000000000000000000000000000000005F -:10317000000000000000000000000000000000004F -:10318000000000000000000000000000000000003F -:10319000000000000000000000000000000000002F -:1031A000000000000000000000000000000000001F -:1031B000000000000000000000000000000000000F -:1031C00000000000000000000000000000000000FF -:1031D00000000000000000000000000000000000EF -:1031E00000000000000000000000000000000000DF -:1031F00000000000000000000000000000000000CF -:1032000000000000000000000000000000000000BE -:1032100000000000000000000000000000000000AE -:10322000000000000000000000000000000000009E -:10323000000000000000000000000000000000008E -:10324000000000000000000000000000000000007E -:10325000000000000000000000000000000000006E -:10326000000000000000000000000000000000005E -:10327000000000000000000000000000000000004E -:10328000000000000000000000000000000000003E -:10329000000000000000000000000000000000002E -:1032A000000000000000000000000000000000001E -:1032B000000000000000000000000000000000000E -:1032C00000000000000000000000000000000000FE -:1032D00000000000000000000000000000000000EE -:1032E00000000000000000000000000000000000DE -:1032F00000000000000000000000000000000000CE -:1033000000000000000000000000000000000000BD -:1033100000000000000000000000000000000000AD -:10332000000000000000000000000000000000009D -:10333000000000000000000000000000000000008D -:10334000000000000000000000000000000000007D -:10335000000000000000000000000000000000006D -:10336000000000000000000000000000000000005D -:10337000000000000000000000000000000000004D -:10338000000000000000000000000000000000003D -:10339000000000000000000000000000000000002D -:1033A000000000000000000000000000000000001D -:1033B000000000000000000000000000000000000D -:1033C00000000000000000000000000000000000FD -:1033D00000000000000000000000000000000000ED -:1033E00000000000000000000000000000000000DD -:1033F00000000000000000000000000000000000CD -:1034000000000000000000000000000000000000BC -:1034100000000000000000000000000000000000AC -:10342000000000000000000000000000000000009C -:10343000000000000000000000000000000000008C -:10344000000000000000000000000000000000007C -:10345000000000000000000000000000000000006C -:10346000000000000000000000000000000000005C -:10347000000000000000000000000000000000004C -:10348000000000000000000000000000000000003C -:10349000000000000000000000000000000000002C -:1034A000000000000000000000000000000000001C -:1034B000000000000000000000000000000000000C -:1034C00000000000000000000000000000000000FC -:1034D00000000000000000000000000000000000EC -:1034E00000000000000000000000000000000000DC -:1034F00000000000000000000000000000000000CC -:1035000000000000000000000000000000000000BB +:102CB00000E00000000000E000000086E69F86863D +:102CC0008686E69F860000011F01010101011F01A8 +:102CD0000100000080C06020F820E0C0000000007B +:102CE00003070C18FF70E18100000000070F1010AF +:102CF0007F100F0700008060206080000000E0204F +:102D000000000F3020309F70DC371030C000000012 +:102D1000100E03000718101807000000C02020E064 +:102D2000C0000000000080E01F38E88703C43C04B6 +:102D30000000070F1810100B070D1010080000807E +:102D40008C4C380000000000000000000000000073 +:102D50000000000000000000000000000000000073 +:102D6000000000000000000080E0300804000000C7 +:102D7000000000FEFF010000000000000000000055 +:102D8000030F1820400000040830E080000000001D +:102D900000000000000001FFFE00000000000040F5 +:102DA00020180F03000000000000000000000000D9 +:102DB000C00000000000004266663C18FF183C6638 +:102DC0006642000000000000030000000000000058 +:102DD0000000000080000000000000101010101023 +:102DE000FF10101010100000000000000300000091 +:102DF00000000000000000000000000000000000D3 +:102E00000000000000000000000000808C4C380032 +:102E100000000000000000000000000000000000B2 +:102E20000000001010101010101010101000000002 +:102E30000000000000000000000000000000000092 +:102E40000000000000000000000000000000000082 +:102E5000000000001C1C1C0000000000000000001E +:102E6000000000000000E0380C000000000080704E +:102E70001C03000000000060380E0100000000008C +:102E80000000000080C060202060C080000000FEC4 +:102E9000FF010000000001FFFE000001070E1810F6 +:102EA00010180E0701000000808080C0E0000000C4 +:102EB00000000000000000FFFF0000000000000014 +:102EC0001010101F1F101010000000804020202044 +:102ED0002060C080000000030300804020381F07EE +:102EE0000000001C1A1918181818181F000000807C +:102EF000C020202060C080000000000303001010EC +:102F0000182FE780000000070F10101010180F078F +:102F10000000000000000000C0E0F000000000C061 +:102F2000B088868180FFFF808000000000000010D4 +:102F3000101F1F1010000000E060606060606060A3 +:102F4000000000003F1008080818F0E0000000072B +:102F50000B101010101C0F030000000080C0402058 +:102F60002020E0C0000000FCFF211008080818F035 +:102F7000E0000001070C18101010080F03000000FB +:102F8000C0E06060606060E060000000030000007E +:102F9000E0180700000000000000001F1F000000F4 +:102FA00000000080C0602020202060C080000087DA +:102FB000EF2C1818303068CF830000070F0810106E +:102FC0001010180F07000000C0C020202020C08073 +:102FD0000000001F3F604040402010FFFE00000046 +:102FE0000C1C101010080F0300000000000000006F +:102FF00000000000000000000000000E0E0E0000A7 +:10300000000000000000001C1C1C0000000000006C +:103010000000000000000000000000000000000CA4 +:103020000C00000000000000000000583800000004 +:1030300000000000000000000080402010000000A0 +:103040001028448201000000000000000000000081 +:103050000102040810000000000000000000000051 +:103060000000008484848484848484848400000038 +:103070000000000000000000000000001020408060 +:103080000000000000000000000000000182442851 +:10309000100000001008040201000000000000C041 +:1030A00020201010101030E0C0000003030000F0DA +:1030B00010080C070300000000001C1C1C0000008E +:1030C0000000000000C0406020202040C00000FC44 +:1030D000FF01F00E03C1FE03807F0001070E0811FF +:1030E0001110110904020000000080E0E00000005F +:1030F00000000000807C4340477FF88000001018EB +:103100001F1000000000131F1C1020E0E0202020F2 +:103110002060C080000000FFFF10101010182FE783 +:103120008000101F1F1010101010180F0700000053 +:1031300080C0402020202060E00000FCFF01000053 +:103140000000000001000001070E18101010080414 +:10315000030020E0E02020202040C080000000FF8D +:10316000FF000000000001FFFE00101F1F101010E4 +:1031700018080E07010020E0E02020202020206019 +:10318000800000FFFF101010107C00000000101FD6 +:103190001F10101010101018060020E0E020202052 +:1031A00020206060800000FFFF101010107C0000E5 +:1031B0000100101F1F1000000000000000000000B0 +:1031C00080C06020202040E0000000FCFF010000E3 +:1031D0004040C0C140400001070E181010100F0FF2 +:1031E000000020E0E0200000000020E0E02000FFE0 +:1031F000FF101010101010FFFF00101F1F10000014 +:103200000000101F1F100000202020E0E0202020E0 +:1032100000000000000000FFFF00000000000000B0 +:103220001010101F1F1010100000000000002020C0 +:1032300020E0E020202000000000000000FFFF0050 +:1032400000000060E0808080C07F3F00000020E040 +:10325000E020000020A06020200000FFFF30187C4C +:10326000E3C000000000101F1F10000001131F1C0E +:10327000181020E0E020000000000000000000FF27 +:10328000FF000000000000000000101F1F101010C1 +:1032900010101018060020E0E0E000000000E0E060 +:1032A000E02000FF013FFEC0E01E01FFFF00101FF5 +:1032B0001000031F0300101F1F1020E0E0C00000DB +:1032C00000000020E02000FF0003071C78E08000E1 +:1032D000FF00101F100000000000030F1F0000007F +:1032E00080C060202060C080000000FEFF01000060 +:1032F000000000FFFE000001070E181010180C0758 +:10330000010020E0E0202020202060C0800000FF9D +:10331000FF2020202020301F0F00101F1F10000052 +:10332000000000000000000080C060202060C0801D +:10333000000000FEFF010000000000FFFE00000191 +:10334000070E1111133C7C67210020E0E0202020B3 +:10335000202060C0800000FFFF101030F0D0080F68 +:103360000700101F1F10000000030F1C101000802A +:10337000C060202020204040E00000070F0C1818FB +:10338000303060E08100001F0C0810101010180F82 +:1033900007008060202020E0E020202060800100E5 +:1033A000000000FFFF000000000100000000101FEF +:1033B0001F100000000020E0E020000000000020BE +:1033C000E02000FFFF00000000000000FF000007F9 +:1033D0000F1810101010100807002060E0E0200007 +:1033E000000020E060200000077FF88000807C0360 +:1033F000000000000000071F1C070000000020E084 +:10340000E02000E0E0200020E0200007FFF8E01FBF +:10341000FFFCE01F00000000031F0300011F03006A +:103420000000002060E0A0000020E060200000001C +:1034300000038F7CF8C6010000000010181E130066 +:1034400001171F1810002060E0E02000000020E0BD +:103450006020000001073EF8E018070000000000AF +:103460000010101F1F10100000000080602020209E +:1034700020A0E0E0200000000000C0F03E0F0300AC +:10348000000000101C1F171010101018060000007C +:10349000000000FC0404040404000000000000FF1D +:1034A00000000000000000000000007F404040409D +:1034B0004000000010E000000000000000000000DC +:1034C0000000031C608000000000000000000000FD +:1034D00000030C70800000000404040404FC0000DD +:1034E000000000000000000000FF000000000000DD +:1034F00040404040407F0000000000000010080CE9 +:10350000040C081000000000000000000000000093 :1035100000000000000000000000000000000000AB :10352000000000000000000000000000000000009B -:10353000000000000000000000000000000000008B -:10354000000000000000000000000000000000007B +:10353000000000000000808080808080808080808B +:103540008080000000040408080000000000000063 :10355000000000000000000000000000000000006B :10356000000000000000000000000000000000005B -:10357000000000000000000000000000000000004B -:10358000000000000000000000000000000000003B -:10359000000000000000000000000000000000002B -:1035A000000000000000000000000000000000001B -:1035B000000000000000000000000000000000000B -:1035C00000000000000000000000000000000000FB -:1035D00000000000000000000000000000000000EB -:1035E00000000000000000000000000000000000DB -:1035F00000000000000000000000000000000000CB -:1036000000000000000000000000000000000000BA -:1036100000000000000000000000000000000000AA -:10362000000000000000000000000000000000009A -:10363000000000000000000000000000000000008A -:10364000000000000000000000000000000000007A -:10365000000000000000000000000000000000006A -:10366000000000000000000000000000000000005A -:10367000000000000000000000000000000000004A -:10368000000000000000000000000000000000003A -:10369000000000000000000000000000000000002A -:1036A000000000000000000000000000000000001A -:1036B000000000000000000000000000000000000A -:1036C00000000000000080808080808000000000FA -:1036D00000C0E0E0E0E0C0C000000000000000002A -:1036E00000000000000000000000000000000000DA -:1036F00000000000000000000000000000000000CA -:1037000000000000000000007EFEFEFEFEFEFE0047 -:10371000000080FEFEFEFEFEFEFEFC00000000FC3F -:10372000FEFEFEFEFE3E0000000000000000808065 -:103730008080808000000000000000000000000089 -:1037400080F8FEFEFEFEFEFEFEFEF08000000000A1 -:103750000000000000000000008080808080800069 -:103760000000000000F8F8F8F8F8F8F80000000091 -:10377000000000000000000000000000E0F0F8FC85 -:10378000FCFEFE7E7E3E3E7E7EFEFCFC783000002F -:103790000000F8F8F8F8F8F8F80000000000000061 -:1037A0000000000000000000000000000000000019 -:1037B0000000000000000000000080808080800089 -:1037C000FFFFFFFFFFFFFF000000030F1F1F1F1F72 -:1037D0000F0F00000000000000000080808080804B -:1037E00080800000000000000000000000000000D9 -:1037F00000000000000000000000000000000000C9 -:103800000000003FFFFFFFFFFFFC00C0FFFFFFFFC6 -:103810007FFFFFFFFFFF8000FEFFFFFFFFFF0F00A6 -:103820000000F0F8FEFEFFFF7F1F0F0F1FFFFFFFDE -:10383000FEFCF8C000000000C0FCFFFFFFFF7F0798 -:103840001FFFFFFFFFFFF88000000000C0F0FCFE3C -:10385000FFFFFF7F1F1F1F1F3F3F3F0E041F1FFF64 -:10386000FFFFFFFFFFFF1F1F1F1F000000000000E2 -:103870000000000000001F7FFFFFFFFFFFFCF8F8C3 -:10388000F0F0E0E0C1C08000001F1F1FFFFFFFFF3E -:10389000FFFFFF1F1F1F0F000000FFFFFFFFFFFFC5 -:1038A00000000000FFFFFFFFFFFFFF000000C0F867 -:1038B000FCFEFFFFFF7F1F1F1F3FFFFFFFFFFFFFFC -:1038C000FF00000000FFFFFFFFFFFFFF000000C040 -:1038D000F8FCFEFFFFFF3F1F1F1F3FFFFFFFFEFC27 -:1038E000F8E0000000000000000000000000000000 -:1038F00000000000000000000000000000000FFFBA -:10390000FFFFFFFFFCFFFFFFFF1F0001FFFFFFFFA7 -:10391000FFFEFFFFFFFFFF070000001EFFFFFFFF8E -:10392000FFFFDF1F1F1F1F1F1F9F9F1F1F1F000065 -:10393000E0FEFFFFFFFFFFFFFCFCFCFDFFFFFFFFC2 -:10394000FFFFFCC00000FFFFFFFFFFFFFF80000044 -:10395000000000800000000000FFFFFFFFFFFFFFEE -:103960000000000000000000000000000000000057 -:1039700080C0C0800101030303070FFFFFFFFFFFAB -:10398000FFFF70000000FFFFFFFFFFFFFF000000D0 -:1039900000000000FFFFFFFFFFFF00000080FFFFAF -:1039A000FFFFFFFFFF000000FFFFFFFFFFFFFF80A3 -:1039B00000000000FFFFFFFFFFFFFF00000000FF0F -:1039C000FFFFFFFFFFFF000000FFFFFFFFFFFFFF04 -:1039D0008000000000FFFFFFFFFFFFFF000000006E +:103570000000000098D844642424FCF80000000FE8 +:103580001F18101010081F1F10180020E0F0000076 +:103590000000000000000000FFFF180804040CF801 +:1035A000F00000001F0F18101010180F030000008B +:1035B0000000000000000000000000E0F818040413 +:1035C000043C3800000000030F0C10101010080617 +:1035D00000000000000000000020E0F0000000E01B +:1035E000F81C04040408FFFF000000030F1810106B +:1035F00010081F0F0800000000000000000000007D +:1036000000000000E0F8484444444C78700000009A +:10361000030F0C181010100804000000000080C0F8 +:10362000602020E0C00000040404FFFF0404040440 +:103630000000000010101F1F1010100000000000FC +:1036400000000000000000000000000070F88C0482 +:10365000048CF874040C007076CF8D8D8D89C87839 +:1036600070000020E0F000000000000000000000FA +:10367000FFFF08040404FCF8000000101F1F1000E6 +:1036800000101F1F1000000000000060600000001C +:1036900000000000040404FCFC0000000000000026 +:1036A0001010101F1F10101000000000000000007C +:1036B00000606000000000000000040404FCFC0046 +:1036C00000000000C0C08080C07F3F0000000020DC +:1036D000E0F000000000000000000000FFFF80C0DC +:1036E000F41C0404000000101F1F1100031F1C1015 +:1036F00010000000202020E0F0000000000000008A +:10370000000000FFFF000000000000001010101F6C +:103710001F1010100000000000000000000000005A +:10372000000004FCFC0804FCFC0804FCFC00101F66 +:103730001F10001F1F10001F1F10000000000000BE +:103740000000000000000004FCFC08080404FCF871 +:10375000000000101F1F100000101F1F10000000AD +:103760000000000000000000000000E0F0180C0461 +:10377000040C18F0E00000030F0C101010100C0FD8 +:103780000300000000000000000000000000000432 +:10379000FCFC080404040CF8F0000080FFFF889093 +:1037A00010101C0F030000000000000000000000CB +:1037B000000000E0F81C04040408F8FC000000030A +:1037C0000F1810109088FFFF80000000000000001C +:1037D000000000000000040404FCFC100804040CB9 +:1037E0000C001010101F1F1010100000000000002F +:1037F0000000000000000000000000003078CCC491 +:103800008484840C1C0000001E1810101011190F65 +:1038100006000000000000C00000000000000004DE +:103820000404FFFF040404000000000000000F1F58 +:103830001010100C0000000000000000000000004C +:1038400000000004FCFE00000004FCFE000000007C +:103850000F1F181010081F0F0800000000000000C4 +:1038600000000000000000040C3CFCC40000C43C4C +:103870000C0400000000010F1E0E010000000000FB +:1038800000000000000000000000043CFCC400E454 +:103890007CFC84807C040000071F070000071F07D2 +:1038A0000000000000000000000000000000000414 +:1038B000041C7CE4C0341C0404000010101C16011D +:1038C000131F1C1810000000000000000000000082 +:1038D000000000040C3CFCC400C43C0404000000D4 +:1038E000C080C1370E010000000000000000000091 +:1038F00000000000000000001C0404C4F47C1C0450 +:1039000000000000101C1F17111010180E000000FE +:103910000000000000F80C0400000000000000108F +:1039200028EF00000000000000000000003F6040A1 +:103930000000000000000000FF0000000000000088 +:1039400000000000FF000000000000000000000078 +:10395000FF00000000000000040CF8000000000060 +:10396000000000000000EF28100000000000000030 +:1039700040603F0000000000000000180602020442 +:1039800008102020300800000000000000000000A7 +:103990000000000000000000000000000000000027 +:1039A0000000000000000000000000000000000017 +:1039B0000000000000000000000000000000000007 +:1039C00000000000000000000000000000000000F7 +:1039D00000000000000000000000000000000000E7 :1039E00000000000000000000000000000000000D7 -:1039F000000000000000000000073F3F3F3F3F3F46 -:103A00003F3F0F000000003F3F3F3F3F3F3F3F3FF2 -:103A100001000000000001070F1F1F3F3F3F3E3E17 -:103A20003E3E3F3F1F1F0E00303E3F3F3F3F3F1F88 -:103A300001000000000000033F3F3F3F3F3F3C00CC -:103A40000003070F1F3F3F3F3F3E3E3F3F3F1F1ECC -:103A5000080000030F1F3F3F3F3F3F3E3F3F1C1802 -:103A6000000000000000000000070F1F1F3F3F3F45 -:103A70003F3E3E3F3F3F3F1F1F0F07030000000038 -:103A8000070F1F3F3F3F3F3E3F3F3F1C00000F1FC0 -:103A90003F3F3F3F3F3E3F1F1F3F3F3F3F3F3F00B6 -:103AA000000000070F1F3F3F3F3F3F3E3F1F1F3FAC -:103AB0003F3F3F3F3F000000003F3F3F3F3F3F3F12 -:103AC0000000000003070F1F3F3F3F3F3E3E3F3FC8 -:103AD0003F1F1F0F03000000000000000000000057 +:1039F00000000000000000000000000000000000C7 +:103A000000000000000000000000000000000000B6 +:103A100000000000000000000000000000000000A6 +:103A20000000000000000000000000000000000096 +:103A30000000000000000000000000000000000086 +:103A40000000000000000000000000000000000076 +:103A50000000000000000000000000000000000066 +:103A60000000000000000000000000000000000056 +:103A70000000000000000000000000000000000046 +:103A80000000000000000000000000000000000036 +:103A90000000000000000000000000000000000026 +:103AA0000000000000000000000000000000000016 +:103AB0000000000000000000000000000000000006 +:103AC00000000000000000000000000000000000F6 +:103AD00000000000000000000000000000000000E6 :103AE00000000000000000000000000000000000D6 :103AF00000000000000000000000000000000000C6 :103B000000000000000000000000000000000000B5 @@ -1011,32 +1011,168 @@ :103F100000000000000000000000000000000000A1 :103F20000000000000000000000000000000000091 :103F30000000000000000000000000000000000081 -:103F40000000000000000000000000000000000071 -:103F50000000000000000000000000000000000061 +:103F40000000000000008080808080800000000071 +:103F500000C0E0E0E0E0C0C00000000000000000A1 :103F60000000000000000000000000000000000051 :103F70000000000000000000000000000000000041 -:103F80000000000000000000000000000000000031 -:103F90000000000000000000000000000000000021 -:103FA0000000000000000000000000000000000011 -:103FB0000000000000000000000000000000000001 -:103FC00000000000000000000000000000000000F1 -:103FD00000000000000000000000000000000000E1 -:103FE00000000000000000000000000000000000D1 -:103FF00000000000000000000000000000000000C1 -:1040000000000000000000000000000000000000B0 -:1040100000000000000000000000000000000000A0 +:103F800000000000000000007EFEFEFEFEFEFE00BF +:103F9000000080FEFEFEFEFEFEFEFC00000000FCB7 +:103FA000FEFEFEFEFE3E00000000000000008080DD +:103FB0008080808000000000000000000000000001 +:103FC00080F8FEFEFEFEFEFEFEFEF0800000000019 +:103FD00000000000000000000080808080808000E1 +:103FE0000000000000F8F8F8F8F8F8F80000000009 +:103FF000000000000000000000000000E0F0F8FCFD +:10400000FCFEFE7E7E3E3E7E7EFEFCFC78300000A6 +:104010000000F8F8F8F8F8F8F800000000000000D8 :104020000000000000000000000000000000000090 -:104030000000000000000000000000000000000080 -:104040000000000000000000000000000000000070 -:104050000000000000000000000000000000000060 -:104060000000000000000000000000000000000050 +:104030000000000000000000000080808080800000 +:10404000FFFFFFFFFFFFFF000000030F1F1F1F1FE9 +:104050000F0F0000000000000000008080808080C2 +:104060008080000000000000000000000000000050 :104070000000000000000000000000000000000040 -:104080000000000000000000000000000000000030 -:104090000000000000000000000000000000000020 -:1040A0000000000000000000000000000000000010 -:1040B0000000000000000000000000000000000000 -:1040C000E04000080000002008000000C0010008D7 -:1040D000E840000808000020802B0000DC010008F8 -:0840E0000100000000127A004B +:104080000000003FFFFFFFFFFFFC00C0FFFFFFFF3E +:104090007FFFFFFFFFFF8000FEFFFFFFFFFF0F001E +:1040A0000000F0F8FEFEFFFF7F1F0F0F1FFFFFFF56 +:1040B000FEFCF8C000000000C0FCFFFFFFFF7F0710 +:1040C0001FFFFFFFFFFFF88000000000C0F0FCFEB4 +:1040D000FFFFFF7F1F1F1F1F3F3F3F0E041F1FFFDC +:1040E000FFFFFFFFFFFF1F1F1F1F0000000000005A +:1040F0000000000000001F7FFFFFFFFFFFFCF8F83B +:10410000F0F0E0E0C1C08000001F1F1FFFFFFFFFB5 +:10411000FFFFFF1F1F1F0F000000FFFFFFFFFFFF3C +:1041200000000000FFFFFFFFFFFFFF000000C0F8DE +:10413000FCFEFFFFFF7F1F1F1F3FFFFFFFFFFFFF73 +:10414000FF00000000FFFFFFFFFFFFFF000000C0B7 +:10415000F8FCFEFFFFFF3F1F1F1F3FFFFFFFFEFC9E +:10416000F8E0000000000000000000000000000077 +:1041700000000000000000000000000000000FFF31 +:10418000FFFFFFFFFCFFFFFFFF1F0001FFFFFFFF1F +:10419000FFFEFFFFFFFFFF070000001EFFFFFFFF06 +:1041A000FFFFDF1F1F1F1F1F1F9F9F1F1F1F0000DD +:1041B000E0FEFFFFFFFFFFFFFCFCFCFDFFFFFFFF3A +:1041C000FFFFFCC00000FFFFFFFFFFFFFF800000BC +:1041D000000000800000000000FFFFFFFFFFFFFF66 +:1041E00000000000000000000000000000000000CF +:1041F00080C0C0800101030303070FFFFFFFFFFF23 +:10420000FFFF70000000FFFFFFFFFFFFFF00000047 +:1042100000000000FFFFFFFFFFFF00000080FFFF26 +:10422000FFFFFFFFFF000000FFFFFFFFFFFFFF801A +:1042300000000000FFFFFFFFFFFFFF00000000FF86 +:10424000FFFFFFFFFFFF000000FFFFFFFFFFFFFF7B +:104250008000000000FFFFFFFFFFFFFF00000000E5 +:10426000000000000000000000000000000000004E +:10427000000000000000000000073F3F3F3F3F3FBD +:104280003F3F0F000000003F3F3F3F3F3F3F3F3F6A +:1042900001000000000001070F1F1F3F3F3F3E3E8F +:1042A0003E3E3F3F1F1F0E00303E3F3F3F3F3F1F00 +:1042B00001000000000000033F3F3F3F3F3F3C0044 +:1042C0000003070F1F3F3F3F3F3E3E3F3F3F1F1E44 +:1042D000080000030F1F3F3F3F3F3F3E3F3F1C187A +:1042E000000000000000000000070F1F1F3F3F3FBD +:1042F0003F3E3E3F3F3F3F1F1F0F070300000000B0 +:10430000070F1F3F3F3F3F3E3F3F3F1C00000F1F37 +:104310003F3F3F3F3F3E3F1F1F3F3F3F3F3F3F002D +:10432000000000070F1F3F3F3F3F3F3E3F1F1F3F23 +:104330003F3F3F3F3F000000003F3F3F3F3F3F3F89 +:104340000000000003070F1F3F3F3F3F3E3E3F3F3F +:104350003F1F1F0F030000000000000000000000CE +:10436000000000000000000000000000000000004D +:10437000000000000000000000000000000000003D +:10438000000000000000000000000000000000002D +:10439000000000000000000000000000000000001D +:1043A000000000000000000000000000000000000D +:1043B00000000000000000000000000000000000FD +:1043C00000000000000000000000000000000000ED +:1043D00000000000000000000000000000000000DD +:1043E00000000000000000000000000000000000CD +:1043F00000000000000000000000000000000000BD +:1044000000000000000000000000000000000000AC +:10441000000000000000000000000000000000009C +:10442000000000000000000000000000000000008C +:10443000000000000000000000000000000000007C +:10444000000000000000000000000000000000006C +:10445000000000000000000000000000000000005C +:10446000000000000000000000000000000000004C +:10447000000000000000000000000000000000003C +:10448000000000000000000000000000000000002C +:10449000000000000000000000000000000000001C +:1044A000000000000000000000000000000000000C +:1044B00000000000000000000000000000000000FC +:1044C00000000000000000000000000000000000EC +:1044D00000000000000000000000000000000000DC +:1044E00000000000000000000000000000000000CC +:1044F00000000000000000000000000000000000BC +:1045000000000000000000000000000000000000AB +:10451000000000000000000000000000000000009B +:10452000000000000000000000000000000000008B +:10453000000000000000000000000000000000007B +:10454000000000000000000000000000000000006B +:10455000000000000000000000000000000000005B +:10456000000000000000000000000000000000004B +:10457000000000000000000000000000000000003B +:10458000000000000000000000000000000000002B +:10459000000000000000000000000000000000001B +:1045A000000000000000000000000000000000000B +:1045B00000000000000000000000000000000000FB +:1045C00000000000000000000000000000000000EB +:1045D00000000000000000000000000000000000DB +:1045E00000000000000000000000000000000000CB +:1045F00000000000000000000000000000000000BB +:1046000000000000000000000000000000000000AA +:10461000000000000000000000000000000000009A +:10462000000000000000000000000000000000008A +:10463000000000000000000000000000000000007A +:10464000000000000000000000000000000000006A +:10465000000000000000000000000000000000005A +:10466000000000000000000000000000000000004A +:10467000000000000000000000000000000000003A +:10468000000000000000000000000000000000002A +:10469000000000000000000000000000000000001A +:1046A000000000000000000000000000000000000A +:1046B00000000000000000000000000000000000FA +:1046C00000000000000000000000000000000000EA +:1046D00000000000000000000000000000000000DA +:1046E00000000000000000000000000000000000CA +:1046F00000000000000000000000000000000000BA +:1047000000000000000000000000000000000000A9 +:104710000000000000000000000000000000000099 +:104720000000000000000000000000000000000089 +:104730000000000000000000000000000000000079 +:104740000000000000000000000000000000000069 +:104750000000000000000000000000000000000059 +:104760000000000000000000000000000000000049 +:104770000000000000000000000000000000000039 +:104780000000000000000000000000000000000029 +:104790000000000000000000000000000000000019 +:1047A0000000000000000000000000000000000009 +:1047B00000000000000000000000000000000000F9 +:1047C00000000000000000000000000000000000E9 +:1047D00000000000000000000000000000000000D9 +:1047E00000000000000000000000000000000000C9 +:1047F00000000000000000000000000000000000B9 +:1048000000000000000000000000000000000000A8 +:104810000000000000000000000000000000000098 +:104820000000000000000000000000000000000088 +:104830000000000000000000000000000000000078 +:104840000000000000000000000000000000000068 +:104850000000000000000000000000000000000058 +:104860000000000000000000000000000000000048 +:104870000000000000000000000000000000000038 +:104880000000000000000000000000000000000028 +:104890000000000000000000000000000000000018 +:1048A0000000000000000000000000000000000008 +:1048B00000000000000000000000000000000000F8 +:1048C00000000000000000000000000000000000E8 +:1048D00000000000000000000000000000000000D8 +:1048E00000000000000000000000000000000000C8 +:1048F00000000000000000000000000000000000B8 +:1049000000000000000000000000000000000000A7 +:104910000000000000000000000000000000000097 +:104920000000000000000000000000000000000087 +:104930000000000000000000000000000000000077 +:10494000604900080000002008000000C0010008C5 +:104950006849000808000020802B0000DC010008E6 +:084960000100000000127A00C2 :040000050800018569 :00000001FF diff --git a/Example/EpaperModuleTest_AT32F403A/Src/main.c b/Example/EpaperModuleTest_AT32F403A/Src/main.c index 9522aa1..90e036e 100644 --- a/Example/EpaperModuleTest_AT32F403A/Src/main.c +++ b/Example/EpaperModuleTest_AT32F403A/Src/main.c @@ -20,7 +20,7 @@ #include // define for White Black Red Epaper Module -#define EPD_BWR +//#define EPD_BWR uint8_t image_bw[EPD_W_BUFF_SIZE * EPD_H]; #ifdef EPD_BWR @@ -96,9 +96,15 @@ int main(void) epd_paint_newimage(image_bw, EPD_W, EPD_H, EPD_ROTATE_180, EPD_COLOR_WHITE); epd_paint_selectimage(image_bw); + + #ifdef EPD_154 + epd_paint_clear(EPD_COLOR_WHITE); + epd_paint_showPicture((EPD_H - 200) / 2,(EPD_W - 64) / 2,200,64,gImage_5,EPD_COLOR_WHITE); + #else epd_paint_clear(EPD_COLOR_WHITE); epd_paint_showPicture((EPD_H - 250) / 2, (EPD_W - 122) / 2, 250, 122, gImage_4, EPD_COLOR_WHITE); - + #endif + epd_displayBW(image_bw); epd_enter_deepsleepmode(EPD_DEEPSLEEP_MODE1); @@ -108,20 +114,28 @@ int main(void) epd_paint_selectimage(image_bw); epd_paint_clear(EPD_COLOR_WHITE); +#ifdef EPD_154 + epd_paint_showString(10, 0, (uint8_t *)&"1.54 Inch", EPD_FONT_SIZE24x12, EPD_COLOR_BLACK); + epd_paint_showString(10, 23, (uint8_t *)&"Epaper Module", EPD_FONT_SIZE24x12, EPD_COLOR_BLACK); + epd_paint_showString(10, 48, (uint8_t *)&"Designed By WeAct Studio", EPD_FONT_SIZE12x6, EPD_COLOR_BLACK); + epd_paint_showString(10, 60, (uint8_t *)&"with 200 x 200 resolution", EPD_FONT_SIZE12x6, EPD_COLOR_BLACK); + epd_paint_showPicture((EPD_H - 200) / 2,130,200,64,gImage_5,EPD_COLOR_WHITE); +#endif #ifdef EPD_213 epd_paint_showString(10, 0, (uint8_t *)&"2.13 Epaper Module", EPD_FONT_SIZE24x12, EPD_COLOR_BLACK); epd_paint_showString(10, 50, (uint8_t *)&"with 250 x 122 resolution", EPD_FONT_SIZE16x8, EPD_COLOR_BLACK); + epd_paint_showString(10, 29, (uint8_t *)&"Designed By WeAct Studio", EPD_FONT_SIZE16x8, EPD_COLOR_BLACK); #endif #ifdef EPD_29 epd_paint_showString(10, 0, (uint8_t *)&"2.9 Epaper Module", EPD_FONT_SIZE24x12, EPD_COLOR_BLACK); epd_paint_showString(10, 50, (uint8_t *)&"with 296 x 128 resolution", EPD_FONT_SIZE16x8, EPD_COLOR_BLACK); -#endif epd_paint_showString(10, 29, (uint8_t *)&"Designed By WeAct Studio", EPD_FONT_SIZE16x8, EPD_COLOR_BLACK); - -#if 0 +#endif + +#if 1 epd_paint_showString(10,100,(uint8_t *)&"AT32F403ACGU7 Example",EPD_FONT_SIZE16x8,EPD_COLOR_BLACK); #else - epd_paint_drawRectangle(10, 103, EPD_H - 10, 116, EPD_COLOR_BLACK, 1); + epd_paint_drawRectangle(10, EPD_W-20, EPD_H - 10, EPD_W-6, EPD_COLOR_BLACK, 1); #endif sprintf((char *)&text, ">> Partial Mode"); @@ -149,7 +163,7 @@ int main(void) epd_update(); #endif - + epd_enter_deepsleepmode(EPD_DEEPSLEEP_MODE1); while (1) diff --git a/Example/EpaperModuleTest_Arduino_ESP32/EpaperModuleTest_Arduino_ESP32.ino b/Example/EpaperModuleTest_Arduino_ESP32/EpaperModuleTest_Arduino_ESP32.ino index 66394f4..0c2b308 100644 --- a/Example/EpaperModuleTest_Arduino_ESP32/EpaperModuleTest_Arduino_ESP32.ino +++ b/Example/EpaperModuleTest_Arduino_ESP32/EpaperModuleTest_Arduino_ESP32.ino @@ -7,15 +7,18 @@ #include #include -// ESP32 SS=5,SCL(SCK)=18,SDA(MOSI)=23,BUSY=15,RST=2,DC=0 +// ESP32 CS(SS)=5,SCL(SCK)=18,SDA(MOSI)=23,BUSY=15,RES(RST)=2,DC=0 + +// 1.54'' EPD Module +//GxEPD2_BW display(GxEPD2_154_D67(/*CS=5*/ 5, /*DC=*/ 0, /*RES=*/ 2, /*BUSY=*/ 15)); // GDEH0154D67 200x200, SSD1681 // 2.13'' EPD Module -GxEPD2_BW display(GxEPD2_213_BN(/*CS=5*/ 5, /*DC=*/ 0, /*RST=*/ 2, /*BUSY=*/ 15)); // DEPG0213BN 122x250, SSD1680 -//GxEPD2_3C display(GxEPD2_213_Z98c(/*CS=5*/ 5, /*DC=*/ 0, /*RST=*/ 2, /*BUSY=*/ 15)); // GDEY0213Z98 122x250, SSD1680 +GxEPD2_BW display(GxEPD2_213_BN(/*CS=5*/ 5, /*DC=*/ 0, /*RES=*/ 2, /*BUSY=*/ 15)); // DEPG0213BN 122x250, SSD1680 +//GxEPD2_3C display(GxEPD2_213_Z98c(/*CS=5*/ 5, /*DC=*/ 0, /*RES=*/ 2, /*BUSY=*/ 15)); // GDEY0213Z98 122x250, SSD1680 // 2.9'' EPD Module -//GxEPD2_BW display(GxEPD2_290_BS(/*CS=5*/ 5, /*DC=*/ 0, /*RST=*/ 2, /*BUSY=*/ 15)); // DEPG0290BS 128x296, SSD1680 -//GxEPD2_3C display(GxEPD2_290_C90c(/*CS=5*/ 5, /*DC=*/ 0, /*RST=*/ 2, /*BUSY=*/ 15)); // GDEM029C90 128x296, SSD1680 +//GxEPD2_BW display(GxEPD2_290_BS(/*CS=5*/ 5, /*DC=*/ 0, /*RES=*/ 2, /*BUSY=*/ 15)); // DEPG0290BS 128x296, SSD1680 +//GxEPD2_3C display(GxEPD2_290_C90c(/*CS=5*/ 5, /*DC=*/ 0, /*RES=*/ 2, /*BUSY=*/ 15)); // GDEM029C90 128x296, SSD1680 void setup() { diff --git a/Example/EpaperModuleTest_Arduino_ESP32C3/EpaperModuleTest_Arduino_ESP32C3.ino b/Example/EpaperModuleTest_Arduino_ESP32C3/EpaperModuleTest_Arduino_ESP32C3.ino index f92f031..0da05e1 100644 --- a/Example/EpaperModuleTest_Arduino_ESP32C3/EpaperModuleTest_Arduino_ESP32C3.ino +++ b/Example/EpaperModuleTest_Arduino_ESP32C3/EpaperModuleTest_Arduino_ESP32C3.ino @@ -7,15 +7,18 @@ #include #include -// ESP32-C3 SS=7,SCL(SCK)=4,SDA(MOSI)=6,BUSY=3,RST=2,DC=1 +// ESP32-C3 CS(SS)=7,SCL(SCK)=4,SDA(MOSI)=6,BUSY=3,RES(RST)=2,DC=1 + +// 1.54'' EPD Module +//GxEPD2_BW display(GxEPD2_154_D67(/*CS=5*/ SS, /*DC=*/ 1, /*RES=*/ 2, /*BUSY=*/ 3)); // GDEH0154D67 200x200, SSD1681 // 2.13'' EPD Module -GxEPD2_BW display(GxEPD2_213_BN(/*CS=5*/ SS, /*DC=*/ 1, /*RST=*/ 2, /*BUSY=*/ 3)); // DEPG0213BN 122x250, SSD1680 -//GxEPD2_3C display(GxEPD2_213_Z98c(/*CS=5*/ SS, /*DC=*/ 1, /*RST=*/ 2, /*BUSY=*/ 3)); // GDEY0213Z98 122x250, SSD1680 +GxEPD2_BW display(GxEPD2_213_BN(/*CS=5*/ SS, /*DC=*/ 1, /*RES=*/ 2, /*BUSY=*/ 3)); // DEPG0213BN 122x250, SSD1680 +//GxEPD2_3C display(GxEPD2_213_Z98c(/*CS=5*/ SS, /*DC=*/ 1, /*RES=*/ 2, /*BUSY=*/ 3)); // GDEY0213Z98 122x250, SSD1680 // 2.9'' EPD Module -//GxEPD2_BW display(GxEPD2_290_BS(/*CS=5*/ SS, /*DC=*/ 1, /*RST=*/ 2, /*BUSY=*/ 3)); // DEPG0290BS 128x296, SSD1680 -//GxEPD2_3C display(GxEPD2_290_C90c(/*CS=5*/ SS, /*DC=*/ 1, /*RST=*/ 2, /*BUSY=*/ 3)); // GDEM029C90 128x296, SSD1680 +//GxEPD2_BW display(GxEPD2_290_BS(/*CS=5*/ SS, /*DC=*/ 1, /*RES=*/ 2, /*BUSY=*/ 3)); // DEPG0290BS 128x296, SSD1680 +//GxEPD2_3C display(GxEPD2_290_C90c(/*CS=5*/ SS, /*DC=*/ 1, /*RES=*/ 2, /*BUSY=*/ 3)); // GDEM029C90 128x296, SSD1680 void setup() { diff --git a/Example/EpaperModuleTest_Arduino_ESP8266/EpaperModuleTest_Arduino_ESP8266.ino b/Example/EpaperModuleTest_Arduino_ESP8266/EpaperModuleTest_Arduino_ESP8266.ino index e0dafb4..c8cb04d 100644 --- a/Example/EpaperModuleTest_Arduino_ESP8266/EpaperModuleTest_Arduino_ESP8266.ino +++ b/Example/EpaperModuleTest_Arduino_ESP8266/EpaperModuleTest_Arduino_ESP8266.ino @@ -7,15 +7,18 @@ #include #include -// ESP8266 SS=15,SCL(SCK)=14,SDA(MOSI)=13,BUSY=16,RST=5,DC=4 +// ESP8266 CS(SS)=15,SCL(SCK)=14,SDA(MOSI)=13,BUSY=16,RES(RST)=5,DC=4 + +// 1.54'' EPD Module +//GxEPD2_BW display(GxEPD2_154_D67(/*CS=5*/ 15, /*DC=*/ 4, /*RES=*/ 5, /*BUSY=*/ 16)); // GDEH0154D67 200x200, SSD1681 // 2.13'' EPD Module -GxEPD2_BW display(GxEPD2_213_BN(/*CS=5*/ 15, /*DC=*/ 4, /*RST=*/ 5, /*BUSY=*/ 16)); // DEPG0213BN 122x250, SSD1680 -//GxEPD2_3C display(GxEPD2_213_Z98c(/*CS=5*/ 15, /*DC=*/ 4, /*RST=*/ 5, /*BUSY=*/ 16)); // GDEY0213Z98 122x250, SSD1680 +GxEPD2_BW display(GxEPD2_213_BN(/*CS=5*/ 15, /*DC=*/ 4, /*RES=*/ 5, /*BUSY=*/ 16)); // DEPG0213BN 122x250, SSD1680 +//GxEPD2_3C display(GxEPD2_213_Z98c(/*CS=5*/ 15, /*DC=*/ 4, /*RES=*/ 5, /*BUSY=*/ 16)); // GDEY0213Z98 122x250, SSD1680 // 2.9'' EPD Module -//GxEPD2_BW display(GxEPD2_290_BS(/*CS=5*/ 15, /*DC=*/ 4, /*RST=*/ 5, /*BUSY=*/ 16)); // DEPG0290BS 128x296, SSD1680 -//GxEPD2_3C display(GxEPD2_290_C90c(/*CS=5*/ 15, /*DC=*/ 4, /*RST=*/ 5, /*BUSY=*/ 16)); // GDEM029C90 128x296, SSD1680 +//GxEPD2_BW display(GxEPD2_290_BS(/*CS=5*/ 15, /*DC=*/ 4, /*RES=*/ 5, /*BUSY=*/ 16)); // DEPG0290BS 128x296, SSD1680 +//GxEPD2_3C display(GxEPD2_290_C90c(/*CS=5*/ 15, /*DC=*/ 4, /*RES=*/ 5, /*BUSY=*/ 16)); // GDEM029C90 128x296, SSD1680 void setup() { diff --git a/Example/EpaperModuleTest_CH32F103/Epaper/bmp.h b/Example/EpaperModuleTest_CH32F103/Epaper/bmp.h index 2a0040a..bd22f80 100644 --- a/Example/EpaperModuleTest_CH32F103/Epaper/bmp.h +++ b/Example/EpaperModuleTest_CH32F103/Epaper/bmp.h @@ -528,6 +528,109 @@ const unsigned char gImage_4[4000]={ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, }; +const unsigned char gImage_5[1600]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xE0,0xE0,0xE0,0xE0,0xC0,0x00,0x00,0x00,0x00, +0x00,0x80,0xE0,0xE0,0xE0,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xE0,0xE0, +0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0xE0,0xE0,0xE0,0xE0,0xC0,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0xE0,0xE0,0xF0,0xF0,0xF0,0xF0, +0xF0,0xF0,0xE0,0xE0,0xC0,0xC0,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xC0,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0xF8,0xF8,0xF8,0xF8,0xF8,0x00,0x00,0x00,0xF8,0xF8,0xF8,0xF8,0xF8,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07, +0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,0xF8,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0xFE, +0xE0,0x00,0x00,0x80,0xFC,0xFF,0xFF,0xFF,0x3F,0x01,0x00,0xC0,0xF0,0xF8,0xF8,0xFC, +0x7C,0x3C,0x3C,0x3C,0x7C,0xFC,0xF8,0xF8,0xF0,0xC0,0x00,0x00,0x00,0x80,0xF0,0xFE, +0xFF,0xFF,0x3F,0x07,0x3F,0xFF,0xFF,0xFE,0xF0,0x80,0x00,0x00,0x00,0x00,0xC0,0xE0, +0xF0,0xF8,0xF8,0xFC,0x7C,0x3C,0x3C,0x7C,0x7C,0x7C,0x78,0x38,0x78,0x7C,0xFF,0xFF, +0xFF,0xFF,0xFF,0x7C,0x7C,0x7C,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F, +0xFF,0xFF,0xFF,0xFF,0xF1,0xE1,0xC0,0xC0,0xC1,0x81,0x83,0x03,0x03,0x01,0x00,0x78, +0x78,0xFC,0xFF,0xFF,0xFF,0xFF,0x7C,0x7C,0x7C,0x7C,0x00,0x00,0xFC,0xFC,0xFC,0xFC, +0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0xFC,0xFC,0xFC,0x00,0x00,0x00,0xC0,0xF0, +0xF8,0xF8,0xFC,0xFC,0x7C,0x3C,0x3C,0x7C,0x78,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, +0x00,0xFC,0xFC,0xFC,0xFC,0xFC,0x00,0x00,0x80,0xE0,0xF0,0xF8,0xF8,0xFC,0x7C,0x3C, +0x3C,0x3C,0x7C,0xFC,0xF8,0xF8,0xF0,0xE0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xFF,0xFE,0xF0,0xFF, +0xFF,0xFF,0x1F,0x01,0x00,0x07,0x7F,0xFF,0xFF,0xFE,0xE0,0xFF,0xFF,0xFF,0xFF,0x07, +0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0x9E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1F,0x1F, +0x1F,0x1F,0x00,0xE0,0xFC,0xFF,0xFF,0xFF,0x3F,0x3D,0x3C,0x3C,0x3C,0x3F,0x3F,0xFF, +0xFF,0xFF,0xFC,0xE0,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xC1,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x81,0x01,0x03,0x03,0x07,0x07,0x0F, +0x0F,0x1F,0xFF,0xFF,0xFF,0xFE,0xF8,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, +0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF, +0xFF,0xFF,0xFF,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xC3,0x00,0x00,0x00,0x00,0x00, +0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, +0xFF,0xFF,0xFF,0xFF,0xFF,0x81,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0xFF,0xFF,0xFF, +0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x03,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x01,0x00,0x00,0x00,0x00,0x00,0x07, +0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0x0F,0x0F,0x1F, +0x1F,0x1E,0x1E,0x1E,0x1E,0x1E,0x1F,0x1F,0x0E,0x18,0x1F,0x1F,0x1F,0x1F,0x07,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0F,0x1F,0x1F,0x1F,0x1F,0x18,0x03,0x07, +0x0F,0x0F,0x1F,0x1F,0x1E,0x1E,0x1E,0x1E,0x1F,0x1F,0x0F,0x0E,0x00,0x00,0x03,0x0F, +0x1F,0x1F,0x1F,0x1E,0x1E,0x1E,0x1E,0x18,0x00,0x00,0x00,0x00,0x00,0x02,0x07,0x0F, +0x0F,0x1F,0x1F,0x1F,0x1E,0x1E,0x1E,0x1E,0x1E,0x1F,0x1F,0x0F,0x0F,0x07,0x01,0x00, +0x00,0x01,0x0F,0x1F,0x1F,0x1F,0x1F,0x1E,0x1E,0x1E,0x1C,0x00,0x03,0x0F,0x1F,0x1F, +0x1F,0x1F,0x1E,0x1E,0x1E,0x1F,0x0F,0x1F,0x1F,0x1F,0x1F,0x00,0x00,0x00,0x03,0x07, +0x0F,0x1F,0x1F,0x1F,0x1E,0x1E,0x1E,0x1E,0x1F,0x0F,0x1F,0x1F,0x1F,0x1F,0x00,0x00, +0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x00,0x00,0x00,0x03,0x07,0x0F,0x1F,0x1F,0x1F,0x1E, +0x1E,0x1E,0x1F,0x1F,0x1F,0x0F,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +}; + #ifdef __cplusplus } #endif diff --git a/Example/EpaperModuleTest_CH32F103/Epaper/epaper.c b/Example/EpaperModuleTest_CH32F103/Epaper/epaper.c index c73f513..7c8a477 100644 --- a/Example/EpaperModuleTest_CH32F103/Epaper/epaper.c +++ b/Example/EpaperModuleTest_CH32F103/Epaper/epaper.c @@ -24,7 +24,7 @@ EPD_PAINT EPD_Paint; static uint8_t _hibernating = 1; -static const unsigned char ut_partial[] = +static const unsigned char lut_partial[] = { 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @@ -213,17 +213,36 @@ uint8_t epd_init(void) epd_write_reg(0x12); // SWRESET + epd_delay(10); + if (epd_wait_busy()) return 1; epd_write_reg(0x01); // Driver output control +#if defined(EPD_29) || defined(EPD_213) epd_write_data(0x27); epd_write_data(0x01); epd_write_data(0x01); +#else + epd_write_data(0xC7); + epd_write_data(0x00); + epd_write_data(0x01); + #endif epd_write_reg(0x11); // data entry mode epd_write_data(0x01); +#ifdef EPD_154 + epd_write_reg(0x44); // set Ram-X address start/end position + epd_write_data(0x00); + epd_write_data(0x18); + + epd_write_reg(0x45); // set Ram-Y address start/end position + epd_write_data(0xC7); + epd_write_data(0x00); + epd_write_data(0x00); + epd_write_data(0x00); + #else epd_write_reg(0x44); // set Ram-X address start/end position epd_write_data(0x00); epd_write_data(0x0F); // 0x0F-->(15+1)*8=128 @@ -233,24 +252,23 @@ uint8_t epd_init(void) epd_write_data(0x01); epd_write_data(0x00); epd_write_data(0x00); +#endif epd_write_reg(0x3C); // BorderWavefrom epd_write_data(0x05); +#if defined(EPD_29) || defined(EPD_213) epd_write_reg(0x21); // Display update control epd_write_data(0x00); epd_write_data(0x80); +#endif epd_write_reg(0x18); // Read built-in temperature sensor epd_write_data(0x80); - epd_write_reg(0x4E); // set RAM x address count to 0; - epd_write_data(0x00); - epd_write_reg(0x4F); // set RAM y address count to 0x127; - epd_write_data(0x27); - epd_write_data(0x01); + epd_setpos(0,0); - if (epd_wait_busy()) + if (epd_power_on()) return 1; return 0; @@ -261,25 +279,46 @@ uint8_t epd_init_partial(void) if (epd_init()) return 1; +#if defined(EPD_29) || defined(EPD_213) epd_write_reg(0x32); epd_cs_reset(); - for (int j = 0; j < sizeof(ut_partial); j++) + for (int j = 0; j < sizeof(lut_partial); j++) { - _epd_write_data(ut_partial[j]); + _epd_write_data(lut_partial[j]); } _epd_write_data_over(); epd_cs_set(); +#endif return 0; } void epd_enter_deepsleepmode(uint8_t mode) { + epd_power_off(); epd_write_reg(0x10); epd_write_data(mode); _hibernating = 1; } +uint8_t epd_power_on(void) +{ + epd_write_reg(0x22); // Display Update Control + epd_write_data(0xf8); + epd_write_reg(0x20); // Activate Display Update Sequence + + return epd_wait_busy(); +} + +uint8_t epd_power_off(void) +{ + epd_write_reg(0x22); // Display Update Control + epd_write_data(0x83); + epd_write_reg(0x20); // Activate Display Update Sequence + + return epd_wait_busy(); +} + void epd_init_internalTempSensor(void) { epd_write_reg(0x18); @@ -293,7 +332,11 @@ void epd_init_internalTempSensor(void) void epd_update(void) { epd_write_reg(0x22); // Display Update Control +#ifdef EPD_154 + epd_write_data(0xF4); + #else epd_write_data(0xF7); +#endif epd_write_reg(0x20); // Activate Display Update Sequence epd_wait_busy(); @@ -302,7 +345,11 @@ void epd_update(void) void epd_update_partial(void) { epd_write_reg(0x22); // Display Update Control +#ifdef EPD_154 + epd_write_data(0xFC); + #else epd_write_data(0xCC); +#endif epd_write_reg(0x20); // Activate Display Update Sequence epd_wait_busy(); @@ -315,7 +362,11 @@ void epd_setpos(uint16_t x, uint16_t y) _x = x / 8; +#ifdef EPD_154 + _y = 199 - y; + #else _y = 295 - y; +#endif epd_write_reg(0x4E); // set RAM x address count to 0; epd_write_data(_x); @@ -677,10 +728,14 @@ void epd_paint_showString(uint16_t x, uint16_t y, uint8_t *chr, uint16_t size1, if (size1 == 8) { x += 6; + if(x > EPD_H-6) + break; } else { x += size1 / 2; + if(x > EPD_H-size1 / 2) + break; } } } diff --git a/Example/EpaperModuleTest_CH32F103/Epaper/epaper.h b/Example/EpaperModuleTest_CH32F103/Epaper/epaper.h index 8dbe8dd..4cc7786 100644 --- a/Example/EpaperModuleTest_CH32F103/Epaper/epaper.h +++ b/Example/EpaperModuleTest_CH32F103/Epaper/epaper.h @@ -10,8 +10,9 @@ extern "C" //#define EPD_29 //#define EPD_213 +//#define EPD_154 -#if (!defined EPD_29) && (!defined EPD_213) +#if (!defined EPD_29) && (!defined EPD_213) && (!defined EPD_154) #error EPD Type Undefine #endif @@ -25,6 +26,12 @@ extern "C" #define EPD_H 250 #endif +#ifdef EPD_154 +#define EPD_W 200 +#define EPD_H 200 +#endif + + #define EPD_OK 0 #define EPD_ERROR 1 @@ -64,9 +71,12 @@ extern "C" uint8_t epd_init(void); uint8_t epd_init_partial(void); void epd_enter_deepsleepmode(uint8_t mode); + uint8_t epd_power_on(void); + uint8_t epd_power_off(void); void epd_init_internalTempSensor(void); void epd_update(void); void epd_update_partial(void); + void epd_setpos(uint16_t x, uint16_t y); void epd_display(uint8_t *Image1, uint8_t *Image2); void epd_displayBW(uint8_t *Image); void epd_displayBW_partial(uint8_t *Image); diff --git a/Example/EpaperModuleTest_CH32F103/Src/main.c b/Example/EpaperModuleTest_CH32F103/Src/main.c index 8d622a7..12203da 100644 --- a/Example/EpaperModuleTest_CH32F103/Src/main.c +++ b/Example/EpaperModuleTest_CH32F103/Src/main.c @@ -92,7 +92,7 @@ int main(void) sprintf((char *)&text, ">> Hello World."); epd_paint_showString(10, 71, text, EPD_FONT_SIZE24x12, EPD_COLOR_RED); -#if 0 +#if 1 epd_paint_showString(10,100,(uint8_t *)&"CH32F103C8T6 Example",EPD_FONT_SIZE16x8,EPD_COLOR_RED); #else epd_paint_drawRectangle(10, 103, EPD_H - 10, 116, EPD_COLOR_RED, 1); @@ -103,8 +103,14 @@ int main(void) epd_paint_newimage(image_bw, EPD_W, EPD_H, EPD_ROTATE_180, EPD_COLOR_WHITE); epd_paint_selectimage(image_bw); + + #ifdef EPD_154 + epd_paint_clear(EPD_COLOR_WHITE); + epd_paint_showPicture((EPD_H - 200) / 2,(EPD_W - 64) / 2,200,64,gImage_5,EPD_COLOR_WHITE); + #else epd_paint_clear(EPD_COLOR_WHITE); epd_paint_showPicture((EPD_H - 250) / 2, (EPD_W - 122) / 2, 250, 122, gImage_4, EPD_COLOR_WHITE); +#endif epd_displayBW(image_bw); epd_enter_deepsleepmode(EPD_DEEPSLEEP_MODE1); @@ -115,17 +121,25 @@ int main(void) epd_paint_selectimage(image_bw); epd_paint_clear(EPD_COLOR_WHITE); +#ifdef EPD_154 + epd_paint_showString(10, 0, (uint8_t *)&"1.54 Inch", EPD_FONT_SIZE24x12, EPD_COLOR_BLACK); + epd_paint_showString(10, 23, (uint8_t *)&"Epaper Module", EPD_FONT_SIZE24x12, EPD_COLOR_BLACK); + epd_paint_showString(10, 48, (uint8_t *)&"Designed By WeAct Studio", EPD_FONT_SIZE12x6, EPD_COLOR_BLACK); + epd_paint_showString(10, 60, (uint8_t *)&"with 200 x 200 resolution", EPD_FONT_SIZE12x6, EPD_COLOR_BLACK); + epd_paint_showPicture((EPD_H - 200) / 2,130,200,64,gImage_5,EPD_COLOR_WHITE); +#endif #ifdef EPD_213 epd_paint_showString(10, 0, (uint8_t *)&"2.13 Epaper Module", EPD_FONT_SIZE24x12, EPD_COLOR_BLACK); epd_paint_showString(10, 50, (uint8_t *)&"with 250 x 122 resolution", EPD_FONT_SIZE16x8, EPD_COLOR_BLACK); + epd_paint_showString(10, 29, (uint8_t *)&"Designed By WeAct Studio", EPD_FONT_SIZE16x8, EPD_COLOR_BLACK); #endif #ifdef EPD_29 epd_paint_showString(10, 0, (uint8_t *)&"2.9 Epaper Module", EPD_FONT_SIZE24x12, EPD_COLOR_BLACK); epd_paint_showString(10, 50, (uint8_t *)&"with 296 x 128 resolution", EPD_FONT_SIZE16x8, EPD_COLOR_BLACK); -#endif epd_paint_showString(10, 29, (uint8_t *)&"Designed By WeAct Studio", EPD_FONT_SIZE16x8, EPD_COLOR_BLACK); +#endif -#if 0 +#if 1 epd_paint_showString(10,100,(uint8_t *)&"CH32F103C8T6 Example",EPD_FONT_SIZE16x8,EPD_COLOR_BLACK); #else epd_paint_drawRectangle(10, 103, EPD_H - 10, 116, EPD_COLOR_BLACK, 1); diff --git a/Example/EpaperModuleTest_CH32V103/User/Epaper/bmp.h b/Example/EpaperModuleTest_CH32V103/User/Epaper/bmp.h index 2a0040a..bd22f80 100644 --- a/Example/EpaperModuleTest_CH32V103/User/Epaper/bmp.h +++ b/Example/EpaperModuleTest_CH32V103/User/Epaper/bmp.h @@ -528,6 +528,109 @@ const unsigned char gImage_4[4000]={ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, }; +const unsigned char gImage_5[1600]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xE0,0xE0,0xE0,0xE0,0xC0,0x00,0x00,0x00,0x00, +0x00,0x80,0xE0,0xE0,0xE0,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xE0,0xE0, +0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0xE0,0xE0,0xE0,0xE0,0xC0,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0xE0,0xE0,0xF0,0xF0,0xF0,0xF0, +0xF0,0xF0,0xE0,0xE0,0xC0,0xC0,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xC0,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0xF8,0xF8,0xF8,0xF8,0xF8,0x00,0x00,0x00,0xF8,0xF8,0xF8,0xF8,0xF8,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07, +0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,0xF8,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0xFE, +0xE0,0x00,0x00,0x80,0xFC,0xFF,0xFF,0xFF,0x3F,0x01,0x00,0xC0,0xF0,0xF8,0xF8,0xFC, +0x7C,0x3C,0x3C,0x3C,0x7C,0xFC,0xF8,0xF8,0xF0,0xC0,0x00,0x00,0x00,0x80,0xF0,0xFE, +0xFF,0xFF,0x3F,0x07,0x3F,0xFF,0xFF,0xFE,0xF0,0x80,0x00,0x00,0x00,0x00,0xC0,0xE0, +0xF0,0xF8,0xF8,0xFC,0x7C,0x3C,0x3C,0x7C,0x7C,0x7C,0x78,0x38,0x78,0x7C,0xFF,0xFF, +0xFF,0xFF,0xFF,0x7C,0x7C,0x7C,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F, +0xFF,0xFF,0xFF,0xFF,0xF1,0xE1,0xC0,0xC0,0xC1,0x81,0x83,0x03,0x03,0x01,0x00,0x78, +0x78,0xFC,0xFF,0xFF,0xFF,0xFF,0x7C,0x7C,0x7C,0x7C,0x00,0x00,0xFC,0xFC,0xFC,0xFC, +0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0xFC,0xFC,0xFC,0x00,0x00,0x00,0xC0,0xF0, +0xF8,0xF8,0xFC,0xFC,0x7C,0x3C,0x3C,0x7C,0x78,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, +0x00,0xFC,0xFC,0xFC,0xFC,0xFC,0x00,0x00,0x80,0xE0,0xF0,0xF8,0xF8,0xFC,0x7C,0x3C, +0x3C,0x3C,0x7C,0xFC,0xF8,0xF8,0xF0,0xE0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xFF,0xFE,0xF0,0xFF, +0xFF,0xFF,0x1F,0x01,0x00,0x07,0x7F,0xFF,0xFF,0xFE,0xE0,0xFF,0xFF,0xFF,0xFF,0x07, +0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0x9E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1F,0x1F, +0x1F,0x1F,0x00,0xE0,0xFC,0xFF,0xFF,0xFF,0x3F,0x3D,0x3C,0x3C,0x3C,0x3F,0x3F,0xFF, +0xFF,0xFF,0xFC,0xE0,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xC1,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x81,0x01,0x03,0x03,0x07,0x07,0x0F, +0x0F,0x1F,0xFF,0xFF,0xFF,0xFE,0xF8,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, +0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF, +0xFF,0xFF,0xFF,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xC3,0x00,0x00,0x00,0x00,0x00, +0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, +0xFF,0xFF,0xFF,0xFF,0xFF,0x81,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0xFF,0xFF,0xFF, +0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x03,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x01,0x00,0x00,0x00,0x00,0x00,0x07, +0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0x0F,0x0F,0x1F, +0x1F,0x1E,0x1E,0x1E,0x1E,0x1E,0x1F,0x1F,0x0E,0x18,0x1F,0x1F,0x1F,0x1F,0x07,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0F,0x1F,0x1F,0x1F,0x1F,0x18,0x03,0x07, +0x0F,0x0F,0x1F,0x1F,0x1E,0x1E,0x1E,0x1E,0x1F,0x1F,0x0F,0x0E,0x00,0x00,0x03,0x0F, +0x1F,0x1F,0x1F,0x1E,0x1E,0x1E,0x1E,0x18,0x00,0x00,0x00,0x00,0x00,0x02,0x07,0x0F, +0x0F,0x1F,0x1F,0x1F,0x1E,0x1E,0x1E,0x1E,0x1E,0x1F,0x1F,0x0F,0x0F,0x07,0x01,0x00, +0x00,0x01,0x0F,0x1F,0x1F,0x1F,0x1F,0x1E,0x1E,0x1E,0x1C,0x00,0x03,0x0F,0x1F,0x1F, +0x1F,0x1F,0x1E,0x1E,0x1E,0x1F,0x0F,0x1F,0x1F,0x1F,0x1F,0x00,0x00,0x00,0x03,0x07, +0x0F,0x1F,0x1F,0x1F,0x1E,0x1E,0x1E,0x1E,0x1F,0x0F,0x1F,0x1F,0x1F,0x1F,0x00,0x00, +0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x00,0x00,0x00,0x03,0x07,0x0F,0x1F,0x1F,0x1F,0x1E, +0x1E,0x1E,0x1F,0x1F,0x1F,0x0F,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +}; + #ifdef __cplusplus } #endif diff --git a/Example/EpaperModuleTest_CH32V103/User/Epaper/epaper.c b/Example/EpaperModuleTest_CH32V103/User/Epaper/epaper.c index c73f513..cc5012c 100644 --- a/Example/EpaperModuleTest_CH32V103/User/Epaper/epaper.c +++ b/Example/EpaperModuleTest_CH32V103/User/Epaper/epaper.c @@ -24,7 +24,7 @@ EPD_PAINT EPD_Paint; static uint8_t _hibernating = 1; -static const unsigned char ut_partial[] = +static const unsigned char lut_partial[] = { 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @@ -213,17 +213,36 @@ uint8_t epd_init(void) epd_write_reg(0x12); // SWRESET + epd_delay(10); + if (epd_wait_busy()) return 1; epd_write_reg(0x01); // Driver output control +#if defined(EPD_29) || defined(EPD_213) epd_write_data(0x27); epd_write_data(0x01); epd_write_data(0x01); +#else + epd_write_data(0xC7); + epd_write_data(0x00); + epd_write_data(0x01); + #endif epd_write_reg(0x11); // data entry mode epd_write_data(0x01); +#ifdef EPD_154 + epd_write_reg(0x44); // set Ram-X address start/end position + epd_write_data(0x00); + epd_write_data(0x18); + + epd_write_reg(0x45); // set Ram-Y address start/end position + epd_write_data(0xC7); + epd_write_data(0x00); + epd_write_data(0x00); + epd_write_data(0x00); + #else epd_write_reg(0x44); // set Ram-X address start/end position epd_write_data(0x00); epd_write_data(0x0F); // 0x0F-->(15+1)*8=128 @@ -233,24 +252,23 @@ uint8_t epd_init(void) epd_write_data(0x01); epd_write_data(0x00); epd_write_data(0x00); +#endif epd_write_reg(0x3C); // BorderWavefrom epd_write_data(0x05); +#if defined(EPD_29) || defined(EPD_213) epd_write_reg(0x21); // Display update control epd_write_data(0x00); epd_write_data(0x80); +#endif epd_write_reg(0x18); // Read built-in temperature sensor epd_write_data(0x80); - epd_write_reg(0x4E); // set RAM x address count to 0; - epd_write_data(0x00); - epd_write_reg(0x4F); // set RAM y address count to 0x127; - epd_write_data(0x27); - epd_write_data(0x01); + epd_setpos(0,0); - if (epd_wait_busy()) + if (epd_power_on()) return 1; return 0; @@ -261,25 +279,46 @@ uint8_t epd_init_partial(void) if (epd_init()) return 1; +#if defined(EPD_29) || defined(EPD_213) epd_write_reg(0x32); epd_cs_reset(); - for (int j = 0; j < sizeof(ut_partial); j++) + for (int j = 0; j < sizeof(lut_partial); j++) { - _epd_write_data(ut_partial[j]); + _epd_write_data(lut_partial[j]); } _epd_write_data_over(); epd_cs_set(); +#endif return 0; } void epd_enter_deepsleepmode(uint8_t mode) { + epd_power_off(); epd_write_reg(0x10); epd_write_data(mode); _hibernating = 1; } +uint8_t epd_power_on(void) +{ + epd_write_reg(0x22); // Display Update Control + epd_write_data(0xf8); + epd_write_reg(0x20); // Activate Display Update Sequence + + return epd_wait_busy(); +} + +uint8_t epd_power_off(void) +{ + epd_write_reg(0x22); // Display Update Control + epd_write_data(0x83); + epd_write_reg(0x20); // Activate Display Update Sequence + + return epd_wait_busy(); +} + void epd_init_internalTempSensor(void) { epd_write_reg(0x18); @@ -293,7 +332,11 @@ void epd_init_internalTempSensor(void) void epd_update(void) { epd_write_reg(0x22); // Display Update Control +#ifdef EPD_154 + epd_write_data(0xF4); + #else epd_write_data(0xF7); +#endif epd_write_reg(0x20); // Activate Display Update Sequence epd_wait_busy(); @@ -302,7 +345,11 @@ void epd_update(void) void epd_update_partial(void) { epd_write_reg(0x22); // Display Update Control +#ifdef EPD_154 + epd_write_data(0xFC); + #else epd_write_data(0xCC); +#endif epd_write_reg(0x20); // Activate Display Update Sequence epd_wait_busy(); @@ -315,7 +362,11 @@ void epd_setpos(uint16_t x, uint16_t y) _x = x / 8; +#ifdef EPD_154 + _y = 199 - y; + #else _y = 295 - y; +#endif epd_write_reg(0x4E); // set RAM x address count to 0; epd_write_data(_x); @@ -677,10 +728,14 @@ void epd_paint_showString(uint16_t x, uint16_t y, uint8_t *chr, uint16_t size1, if (size1 == 8) { x += 6; + if(x > EPD_H-6) + break; } else { x += size1 / 2; + if(x > EPD_H-size1 / 2) + break; } } } diff --git a/Example/EpaperModuleTest_CH32V103/User/Epaper/epaper.h b/Example/EpaperModuleTest_CH32V103/User/Epaper/epaper.h index ae75666..be64e0f 100644 --- a/Example/EpaperModuleTest_CH32V103/User/Epaper/epaper.h +++ b/Example/EpaperModuleTest_CH32V103/User/Epaper/epaper.h @@ -10,8 +10,9 @@ extern "C" //#define EPD_29 //#define EPD_213 +//#define EPD_154 -#if (!defined EPD_29) && (!defined EPD_213) +#if (!defined EPD_29) && (!defined EPD_213) && (!defined EPD_154) #error EPD Type Undefine #endif @@ -25,6 +26,12 @@ extern "C" #define EPD_H 250 #endif +#ifdef EPD_154 +#define EPD_W 200 +#define EPD_H 200 +#endif + + #define EPD_OK 0 #define EPD_ERROR 1 @@ -64,9 +71,12 @@ extern "C" uint8_t epd_init(void); uint8_t epd_init_partial(void); void epd_enter_deepsleepmode(uint8_t mode); + uint8_t epd_power_on(void); + uint8_t epd_power_off(void); void epd_init_internalTempSensor(void); void epd_update(void); void epd_update_partial(void); + void epd_setpos(uint16_t x, uint16_t y); void epd_display(uint8_t *Image1, uint8_t *Image2); void epd_displayBW(uint8_t *Image); void epd_displayBW_partial(uint8_t *Image); diff --git a/Example/EpaperModuleTest_CH32V103/User/main.c b/Example/EpaperModuleTest_CH32V103/User/main.c index 4365862..39f8ad1 100644 --- a/Example/EpaperModuleTest_CH32V103/User/main.c +++ b/Example/EpaperModuleTest_CH32V103/User/main.c @@ -92,7 +92,7 @@ int main(void) sprintf((char *)&text, ">> Hello World."); epd_paint_showString(10, 71, text, EPD_FONT_SIZE24x12, EPD_COLOR_RED); -#if 0 +#if 1 epd_paint_showString(10,100,(uint8_t *)&"CH32V103C8T6 Example",EPD_FONT_SIZE16x8,EPD_COLOR_RED); #else epd_paint_drawRectangle(10, 103, EPD_H - 10, 116, EPD_COLOR_RED, 1); @@ -103,8 +103,14 @@ int main(void) epd_paint_newimage(image_bw, EPD_W, EPD_H, EPD_ROTATE_180, EPD_COLOR_WHITE); epd_paint_selectimage(image_bw); + + #ifdef EPD_154 + epd_paint_clear(EPD_COLOR_WHITE); + epd_paint_showPicture((EPD_H - 200) / 2,(EPD_W - 64) / 2,200,64,gImage_5,EPD_COLOR_WHITE); + #else epd_paint_clear(EPD_COLOR_WHITE); epd_paint_showPicture((EPD_H - 250) / 2, (EPD_W - 122) / 2, 250, 122, gImage_4, EPD_COLOR_WHITE); +#endif epd_displayBW(image_bw); epd_enter_deepsleepmode(EPD_DEEPSLEEP_MODE1); @@ -115,17 +121,25 @@ int main(void) epd_paint_selectimage(image_bw); epd_paint_clear(EPD_COLOR_WHITE); +#ifdef EPD_154 + epd_paint_showString(10, 0, (uint8_t *)&"1.54 Inch", EPD_FONT_SIZE24x12, EPD_COLOR_BLACK); + epd_paint_showString(10, 23, (uint8_t *)&"Epaper Module", EPD_FONT_SIZE24x12, EPD_COLOR_BLACK); + epd_paint_showString(10, 48, (uint8_t *)&"Designed By WeAct Studio", EPD_FONT_SIZE12x6, EPD_COLOR_BLACK); + epd_paint_showString(10, 60, (uint8_t *)&"with 200 x 200 resolution", EPD_FONT_SIZE12x6, EPD_COLOR_BLACK); + epd_paint_showPicture((EPD_H - 200) / 2,130,200,64,gImage_5,EPD_COLOR_WHITE); +#endif #ifdef EPD_213 epd_paint_showString(10, 0, (uint8_t *)&"2.13 Epaper Module", EPD_FONT_SIZE24x12, EPD_COLOR_BLACK); epd_paint_showString(10, 50, (uint8_t *)&"with 250 x 122 resolution", EPD_FONT_SIZE16x8, EPD_COLOR_BLACK); +epd_paint_showString(10, 29, (uint8_t *)&"Designed By WeAct Studio", EPD_FONT_SIZE16x8, EPD_COLOR_BLACK); #endif #ifdef EPD_29 epd_paint_showString(10, 0, (uint8_t *)&"2.9 Epaper Module", EPD_FONT_SIZE24x12, EPD_COLOR_BLACK); epd_paint_showString(10, 50, (uint8_t *)&"with 296 x 128 resolution", EPD_FONT_SIZE16x8, EPD_COLOR_BLACK); -#endif epd_paint_showString(10, 29, (uint8_t *)&"Designed By WeAct Studio", EPD_FONT_SIZE16x8, EPD_COLOR_BLACK); +#endif -#if 0 +#if 1 epd_paint_showString(10,100,(uint8_t *)&"CH32V103C8T6 Example",EPD_FONT_SIZE16x8,EPD_COLOR_BLACK); #else epd_paint_drawRectangle(10, 103, EPD_H - 10, 116, EPD_COLOR_BLACK, 1); diff --git a/Example/EpaperModuleTest_GD32F103/Epaper/bmp.h b/Example/EpaperModuleTest_GD32F103/Epaper/bmp.h index 2a0040a..bd22f80 100644 --- a/Example/EpaperModuleTest_GD32F103/Epaper/bmp.h +++ b/Example/EpaperModuleTest_GD32F103/Epaper/bmp.h @@ -528,6 +528,109 @@ const unsigned char gImage_4[4000]={ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, }; +const unsigned char gImage_5[1600]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xE0,0xE0,0xE0,0xE0,0xC0,0x00,0x00,0x00,0x00, +0x00,0x80,0xE0,0xE0,0xE0,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xE0,0xE0, +0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0xE0,0xE0,0xE0,0xE0,0xC0,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0xE0,0xE0,0xF0,0xF0,0xF0,0xF0, +0xF0,0xF0,0xE0,0xE0,0xC0,0xC0,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xC0,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0xF8,0xF8,0xF8,0xF8,0xF8,0x00,0x00,0x00,0xF8,0xF8,0xF8,0xF8,0xF8,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07, +0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,0xF8,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0xFE, +0xE0,0x00,0x00,0x80,0xFC,0xFF,0xFF,0xFF,0x3F,0x01,0x00,0xC0,0xF0,0xF8,0xF8,0xFC, +0x7C,0x3C,0x3C,0x3C,0x7C,0xFC,0xF8,0xF8,0xF0,0xC0,0x00,0x00,0x00,0x80,0xF0,0xFE, +0xFF,0xFF,0x3F,0x07,0x3F,0xFF,0xFF,0xFE,0xF0,0x80,0x00,0x00,0x00,0x00,0xC0,0xE0, +0xF0,0xF8,0xF8,0xFC,0x7C,0x3C,0x3C,0x7C,0x7C,0x7C,0x78,0x38,0x78,0x7C,0xFF,0xFF, +0xFF,0xFF,0xFF,0x7C,0x7C,0x7C,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F, +0xFF,0xFF,0xFF,0xFF,0xF1,0xE1,0xC0,0xC0,0xC1,0x81,0x83,0x03,0x03,0x01,0x00,0x78, +0x78,0xFC,0xFF,0xFF,0xFF,0xFF,0x7C,0x7C,0x7C,0x7C,0x00,0x00,0xFC,0xFC,0xFC,0xFC, +0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0xFC,0xFC,0xFC,0x00,0x00,0x00,0xC0,0xF0, +0xF8,0xF8,0xFC,0xFC,0x7C,0x3C,0x3C,0x7C,0x78,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, +0x00,0xFC,0xFC,0xFC,0xFC,0xFC,0x00,0x00,0x80,0xE0,0xF0,0xF8,0xF8,0xFC,0x7C,0x3C, +0x3C,0x3C,0x7C,0xFC,0xF8,0xF8,0xF0,0xE0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xFF,0xFE,0xF0,0xFF, +0xFF,0xFF,0x1F,0x01,0x00,0x07,0x7F,0xFF,0xFF,0xFE,0xE0,0xFF,0xFF,0xFF,0xFF,0x07, +0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0x9E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1F,0x1F, +0x1F,0x1F,0x00,0xE0,0xFC,0xFF,0xFF,0xFF,0x3F,0x3D,0x3C,0x3C,0x3C,0x3F,0x3F,0xFF, +0xFF,0xFF,0xFC,0xE0,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xC1,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x81,0x01,0x03,0x03,0x07,0x07,0x0F, +0x0F,0x1F,0xFF,0xFF,0xFF,0xFE,0xF8,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, +0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF, +0xFF,0xFF,0xFF,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xC3,0x00,0x00,0x00,0x00,0x00, +0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, +0xFF,0xFF,0xFF,0xFF,0xFF,0x81,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0xFF,0xFF,0xFF, +0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x03,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x01,0x00,0x00,0x00,0x00,0x00,0x07, +0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0x0F,0x0F,0x1F, +0x1F,0x1E,0x1E,0x1E,0x1E,0x1E,0x1F,0x1F,0x0E,0x18,0x1F,0x1F,0x1F,0x1F,0x07,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0F,0x1F,0x1F,0x1F,0x1F,0x18,0x03,0x07, +0x0F,0x0F,0x1F,0x1F,0x1E,0x1E,0x1E,0x1E,0x1F,0x1F,0x0F,0x0E,0x00,0x00,0x03,0x0F, +0x1F,0x1F,0x1F,0x1E,0x1E,0x1E,0x1E,0x18,0x00,0x00,0x00,0x00,0x00,0x02,0x07,0x0F, +0x0F,0x1F,0x1F,0x1F,0x1E,0x1E,0x1E,0x1E,0x1E,0x1F,0x1F,0x0F,0x0F,0x07,0x01,0x00, +0x00,0x01,0x0F,0x1F,0x1F,0x1F,0x1F,0x1E,0x1E,0x1E,0x1C,0x00,0x03,0x0F,0x1F,0x1F, +0x1F,0x1F,0x1E,0x1E,0x1E,0x1F,0x0F,0x1F,0x1F,0x1F,0x1F,0x00,0x00,0x00,0x03,0x07, +0x0F,0x1F,0x1F,0x1F,0x1E,0x1E,0x1E,0x1E,0x1F,0x0F,0x1F,0x1F,0x1F,0x1F,0x00,0x00, +0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x00,0x00,0x00,0x03,0x07,0x0F,0x1F,0x1F,0x1F,0x1E, +0x1E,0x1E,0x1F,0x1F,0x1F,0x0F,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +}; + #ifdef __cplusplus } #endif diff --git a/Example/EpaperModuleTest_GD32F103/Epaper/epaper.c b/Example/EpaperModuleTest_GD32F103/Epaper/epaper.c index a53f523..13c5f17 100644 --- a/Example/EpaperModuleTest_GD32F103/Epaper/epaper.c +++ b/Example/EpaperModuleTest_GD32F103/Epaper/epaper.c @@ -24,7 +24,7 @@ EPD_PAINT EPD_Paint; static uint8_t _hibernating = 1; -static const unsigned char ut_partial[] = +static const unsigned char lut_partial[] = { 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @@ -203,17 +203,36 @@ uint8_t epd_init(void) epd_write_reg(0x12); // SWRESET + epd_delay(10); + if (epd_wait_busy()) return 1; epd_write_reg(0x01); // Driver output control +#if defined(EPD_29) || defined(EPD_213) epd_write_data(0x27); epd_write_data(0x01); epd_write_data(0x01); +#else + epd_write_data(0xC7); + epd_write_data(0x00); + epd_write_data(0x01); + #endif epd_write_reg(0x11); // data entry mode epd_write_data(0x01); +#ifdef EPD_154 + epd_write_reg(0x44); // set Ram-X address start/end position + epd_write_data(0x00); + epd_write_data(0x18); + + epd_write_reg(0x45); // set Ram-Y address start/end position + epd_write_data(0xC7); + epd_write_data(0x00); + epd_write_data(0x00); + epd_write_data(0x00); + #else epd_write_reg(0x44); // set Ram-X address start/end position epd_write_data(0x00); epd_write_data(0x0F); // 0x0F-->(15+1)*8=128 @@ -223,24 +242,23 @@ uint8_t epd_init(void) epd_write_data(0x01); epd_write_data(0x00); epd_write_data(0x00); +#endif epd_write_reg(0x3C); // BorderWavefrom epd_write_data(0x05); +#if defined(EPD_29) || defined(EPD_213) epd_write_reg(0x21); // Display update control epd_write_data(0x00); epd_write_data(0x80); +#endif epd_write_reg(0x18); // Read built-in temperature sensor epd_write_data(0x80); - epd_write_reg(0x4E); // set RAM x address count to 0; - epd_write_data(0x00); - epd_write_reg(0x4F); // set RAM y address count to 0x127; - epd_write_data(0x27); - epd_write_data(0x01); + epd_setpos(0,0); - if (epd_wait_busy()) + if (epd_power_on()) return 1; return 0; @@ -251,25 +269,46 @@ uint8_t epd_init_partial(void) if (epd_init()) return 1; +#if defined(EPD_29) || defined(EPD_213) epd_write_reg(0x32); epd_cs_reset(); - for (int j = 0; j < sizeof(ut_partial); j++) + for (int j = 0; j < sizeof(lut_partial); j++) { - _epd_write_data(ut_partial[j]); + _epd_write_data(lut_partial[j]); } _epd_write_data_over(); epd_cs_set(); +#endif return 0; } void epd_enter_deepsleepmode(uint8_t mode) { +epd_power_off(); epd_write_reg(0x10); epd_write_data(mode); _hibernating = 1; } +uint8_t epd_power_on(void) +{ + epd_write_reg(0x22); // Display Update Control + epd_write_data(0xf8); + epd_write_reg(0x20); // Activate Display Update Sequence + + return epd_wait_busy(); +} + +uint8_t epd_power_off(void) +{ + epd_write_reg(0x22); // Display Update Control + epd_write_data(0x83); + epd_write_reg(0x20); // Activate Display Update Sequence + + return epd_wait_busy(); +} + void epd_init_internalTempSensor(void) { epd_write_reg(0x18); @@ -283,7 +322,11 @@ void epd_init_internalTempSensor(void) void epd_update(void) { epd_write_reg(0x22); // Display Update Control +#ifdef EPD_154 + epd_write_data(0xF4); + #else epd_write_data(0xF7); +#endif epd_write_reg(0x20); // Activate Display Update Sequence epd_wait_busy(); @@ -292,7 +335,11 @@ void epd_update(void) void epd_update_partial(void) { epd_write_reg(0x22); // Display Update Control +#ifdef EPD_154 + epd_write_data(0xFC); + #else epd_write_data(0xCC); +#endif epd_write_reg(0x20); // Activate Display Update Sequence epd_wait_busy(); @@ -305,7 +352,11 @@ void epd_setpos(uint16_t x, uint16_t y) _x = x / 8; +#ifdef EPD_154 + _y = 199 - y; + #else _y = 295 - y; +#endif epd_write_reg(0x4E); // set RAM x address count to 0; epd_write_data(_x); @@ -667,10 +718,14 @@ void epd_paint_showString(uint16_t x, uint16_t y, uint8_t *chr, uint16_t size1, if (size1 == 8) { x += 6; + if(x > EPD_H-6) + break; } else { x += size1 / 2; + if(x > EPD_H-size1 / 2) + break; } } } diff --git a/Example/EpaperModuleTest_GD32F103/Epaper/epaper.h b/Example/EpaperModuleTest_GD32F103/Epaper/epaper.h index cc5b6c0..f9dbc60 100644 --- a/Example/EpaperModuleTest_GD32F103/Epaper/epaper.h +++ b/Example/EpaperModuleTest_GD32F103/Epaper/epaper.h @@ -10,8 +10,9 @@ extern "C" //#define EPD_29 //#define EPD_213 +//#define EPD_154 -#if (!defined EPD_29) && (!defined EPD_213) +#if (!defined EPD_29) && (!defined EPD_213) && (!defined EPD_154) #error EPD Type Undefine #endif @@ -25,6 +26,12 @@ extern "C" #define EPD_H 250 #endif +#ifdef EPD_154 +#define EPD_W 200 +#define EPD_H 200 +#endif + + #define EPD_OK 0 #define EPD_ERROR 1 @@ -64,9 +71,12 @@ extern "C" uint8_t epd_init(void); uint8_t epd_init_partial(void); void epd_enter_deepsleepmode(uint8_t mode); + uint8_t epd_power_on(void); + uint8_t epd_power_off(void); void epd_init_internalTempSensor(void); void epd_update(void); void epd_update_partial(void); + void epd_setpos(uint16_t x, uint16_t y); void epd_display(uint8_t *Image1, uint8_t *Image2); void epd_displayBW(uint8_t *Image); void epd_displayBW_partial(uint8_t *Image); diff --git a/Example/EpaperModuleTest_GD32F103/Src/main.c b/Example/EpaperModuleTest_GD32F103/Src/main.c index d225afd..c0bd4a2 100644 --- a/Example/EpaperModuleTest_GD32F103/Src/main.c +++ b/Example/EpaperModuleTest_GD32F103/Src/main.c @@ -103,8 +103,14 @@ int main(void) epd_paint_newimage(image_bw, EPD_W, EPD_H, EPD_ROTATE_180, EPD_COLOR_WHITE); epd_paint_selectimage(image_bw); + + #ifdef EPD_154 + epd_paint_clear(EPD_COLOR_WHITE); + epd_paint_showPicture((EPD_H - 200) / 2,(EPD_W - 64) / 2,200,64,gImage_5,EPD_COLOR_WHITE); + #else epd_paint_clear(EPD_COLOR_WHITE); epd_paint_showPicture((EPD_H - 250) / 2, (EPD_W - 122) / 2, 250, 122, gImage_4, EPD_COLOR_WHITE); +#endif epd_displayBW(image_bw); epd_enter_deepsleepmode(EPD_DEEPSLEEP_MODE1); @@ -115,17 +121,25 @@ int main(void) epd_paint_selectimage(image_bw); epd_paint_clear(EPD_COLOR_WHITE); +#ifdef EPD_154 + epd_paint_showString(10, 0, (uint8_t *)&"1.54 Inch", EPD_FONT_SIZE24x12, EPD_COLOR_BLACK); + epd_paint_showString(10, 23, (uint8_t *)&"Epaper Module", EPD_FONT_SIZE24x12, EPD_COLOR_BLACK); + epd_paint_showString(10, 48, (uint8_t *)&"Designed By WeAct Studio", EPD_FONT_SIZE12x6, EPD_COLOR_BLACK); + epd_paint_showString(10, 60, (uint8_t *)&"with 200 x 200 resolution", EPD_FONT_SIZE12x6, EPD_COLOR_BLACK); + epd_paint_showPicture((EPD_H - 200) / 2,130,200,64,gImage_5,EPD_COLOR_WHITE); +#endif #ifdef EPD_213 epd_paint_showString(10, 0, (uint8_t *)&"2.13 Epaper Module", EPD_FONT_SIZE24x12, EPD_COLOR_BLACK); epd_paint_showString(10, 50, (uint8_t *)&"with 250 x 122 resolution", EPD_FONT_SIZE16x8, EPD_COLOR_BLACK); +epd_paint_showString(10, 29, (uint8_t *)&"Designed By WeAct Studio", EPD_FONT_SIZE16x8, EPD_COLOR_BLACK); #endif #ifdef EPD_29 epd_paint_showString(10, 0, (uint8_t *)&"2.9 Epaper Module", EPD_FONT_SIZE24x12, EPD_COLOR_BLACK); epd_paint_showString(10, 50, (uint8_t *)&"with 296 x 128 resolution", EPD_FONT_SIZE16x8, EPD_COLOR_BLACK); +epd_paint_showString(10, 29, (uint8_t *)&"Designed By WeAct Studio", EPD_FONT_SIZE16x8, EPD_COLOR_BLACK); #endif - epd_paint_showString(10, 29, (uint8_t *)&"Designed By WeAct Studio", EPD_FONT_SIZE16x8, EPD_COLOR_BLACK); - -#if 0 + +#if 1 epd_paint_showString(10,100,(uint8_t *)&"GD32F103CBT6 Example",EPD_FONT_SIZE16x8,EPD_COLOR_BLACK); #else epd_paint_drawRectangle(10, 103, EPD_H - 10, 116, EPD_COLOR_BLACK, 1); diff --git a/Example/EpaperModuleTest_GD32F303/Epaper/bmp.h b/Example/EpaperModuleTest_GD32F303/Epaper/bmp.h index 2a0040a..bd22f80 100644 --- a/Example/EpaperModuleTest_GD32F303/Epaper/bmp.h +++ b/Example/EpaperModuleTest_GD32F303/Epaper/bmp.h @@ -528,6 +528,109 @@ const unsigned char gImage_4[4000]={ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, }; +const unsigned char gImage_5[1600]={ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,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,0xE0,0xE0,0xE0,0xE0,0xC0,0x00,0x00,0x00,0x00, +0x00,0x80,0xE0,0xE0,0xE0,0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0xE0,0xE0, +0xE0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xE0,0xE0,0xE0,0xE0,0xE0,0xC0,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0xE0,0xE0,0xE0,0xF0,0xF0,0xF0,0xF0, +0xF0,0xF0,0xE0,0xE0,0xC0,0xC0,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xC0,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0xF8,0xF8,0xF8,0xF8,0xF8,0x00,0x00,0x00,0xF8,0xF8,0xF8,0xF8,0xF8,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07, +0xFF,0xFF,0xFF,0xFF,0xF8,0x00,0x00,0x00,0xF8,0xFF,0xFF,0xFF,0x7F,0xFF,0xFF,0xFE, +0xE0,0x00,0x00,0x80,0xFC,0xFF,0xFF,0xFF,0x3F,0x01,0x00,0xC0,0xF0,0xF8,0xF8,0xFC, +0x7C,0x3C,0x3C,0x3C,0x7C,0xFC,0xF8,0xF8,0xF0,0xC0,0x00,0x00,0x00,0x80,0xF0,0xFE, +0xFF,0xFF,0x3F,0x07,0x3F,0xFF,0xFF,0xFE,0xF0,0x80,0x00,0x00,0x00,0x00,0xC0,0xE0, +0xF0,0xF8,0xF8,0xFC,0x7C,0x3C,0x3C,0x7C,0x7C,0x7C,0x78,0x38,0x78,0x7C,0xFF,0xFF, +0xFF,0xFF,0xFF,0x7C,0x7C,0x7C,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F, +0xFF,0xFF,0xFF,0xFF,0xF1,0xE1,0xC0,0xC0,0xC1,0x81,0x83,0x03,0x03,0x01,0x00,0x78, +0x78,0xFC,0xFF,0xFF,0xFF,0xFF,0x7C,0x7C,0x7C,0x7C,0x00,0x00,0xFC,0xFC,0xFC,0xFC, +0xFC,0x00,0x00,0x00,0x00,0x00,0xFC,0xFC,0xFC,0xFC,0xFC,0x00,0x00,0x00,0xC0,0xF0, +0xF8,0xF8,0xFC,0xFC,0x7C,0x3C,0x3C,0x7C,0x78,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, +0x00,0xFC,0xFC,0xFC,0xFC,0xFC,0x00,0x00,0x80,0xE0,0xF0,0xF8,0xF8,0xFC,0x7C,0x3C, +0x3C,0x3C,0x7C,0xFC,0xF8,0xF8,0xF0,0xE0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xFF,0xFE,0xF0,0xFF, +0xFF,0xFF,0x1F,0x01,0x00,0x07,0x7F,0xFF,0xFF,0xFE,0xE0,0xFF,0xFF,0xFF,0xFF,0x07, +0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0x9E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1F,0x1F, +0x1F,0x1F,0x00,0xE0,0xFC,0xFF,0xFF,0xFF,0x3F,0x3D,0x3C,0x3C,0x3C,0x3F,0x3F,0xFF, +0xFF,0xFF,0xFC,0xE0,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xC1,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x81,0x01,0x03,0x03,0x07,0x07,0x0F, +0x0F,0x1F,0xFF,0xFF,0xFF,0xFE,0xF8,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, +0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF, +0xFF,0xFF,0xFF,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xC3,0x00,0x00,0x00,0x00,0x00, +0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00, +0xFF,0xFF,0xFF,0xFF,0xFF,0x81,0x00,0x00,0x00,0x00,0x00,0x80,0xFF,0xFF,0xFF,0xFF, +0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x03,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x01,0x00,0x00,0x00,0x00,0x00,0x07, +0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x00,0x00,0x00,0x00,0x00,0x03,0x07,0x0F,0x0F,0x1F, +0x1F,0x1E,0x1E,0x1E,0x1E,0x1E,0x1F,0x1F,0x0E,0x18,0x1F,0x1F,0x1F,0x1F,0x07,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x0F,0x1F,0x1F,0x1F,0x1F,0x18,0x03,0x07, +0x0F,0x0F,0x1F,0x1F,0x1E,0x1E,0x1E,0x1E,0x1F,0x1F,0x0F,0x0E,0x00,0x00,0x03,0x0F, +0x1F,0x1F,0x1F,0x1E,0x1E,0x1E,0x1E,0x18,0x00,0x00,0x00,0x00,0x00,0x02,0x07,0x0F, +0x0F,0x1F,0x1F,0x1F,0x1E,0x1E,0x1E,0x1E,0x1E,0x1F,0x1F,0x0F,0x0F,0x07,0x01,0x00, +0x00,0x01,0x0F,0x1F,0x1F,0x1F,0x1F,0x1E,0x1E,0x1E,0x1C,0x00,0x03,0x0F,0x1F,0x1F, +0x1F,0x1F,0x1E,0x1E,0x1E,0x1F,0x0F,0x1F,0x1F,0x1F,0x1F,0x00,0x00,0x00,0x03,0x07, +0x0F,0x1F,0x1F,0x1F,0x1E,0x1E,0x1E,0x1E,0x1F,0x0F,0x1F,0x1F,0x1F,0x1F,0x00,0x00, +0x00,0x1F,0x1F,0x1F,0x1F,0x1F,0x00,0x00,0x00,0x03,0x07,0x0F,0x1F,0x1F,0x1F,0x1E, +0x1E,0x1E,0x1F,0x1F,0x1F,0x0F,0x07,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 +}; + #ifdef __cplusplus } #endif diff --git a/Example/EpaperModuleTest_GD32F303/Epaper/epaper.c b/Example/EpaperModuleTest_GD32F303/Epaper/epaper.c index aa2be21..3902730 100644 --- a/Example/EpaperModuleTest_GD32F303/Epaper/epaper.c +++ b/Example/EpaperModuleTest_GD32F303/Epaper/epaper.c @@ -24,7 +24,7 @@ EPD_PAINT EPD_Paint; static uint8_t _hibernating = 1; -static const unsigned char ut_partial[] = +static const unsigned char lut_partial[] = { 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @@ -203,17 +203,36 @@ uint8_t epd_init(void) epd_write_reg(0x12); // SWRESET + epd_delay(10); + if (epd_wait_busy()) return 1; epd_write_reg(0x01); // Driver output control +#if defined(EPD_29) || defined(EPD_213) epd_write_data(0x27); epd_write_data(0x01); epd_write_data(0x01); +#else + epd_write_data(0xC7); + epd_write_data(0x00); + epd_write_data(0x01); + #endif epd_write_reg(0x11); // data entry mode epd_write_data(0x01); +#ifdef EPD_154 + epd_write_reg(0x44); // set Ram-X address start/end position + epd_write_data(0x00); + epd_write_data(0x18); + + epd_write_reg(0x45); // set Ram-Y address start/end position + epd_write_data(0xC7); + epd_write_data(0x00); + epd_write_data(0x00); + epd_write_data(0x00); + #else epd_write_reg(0x44); // set Ram-X address start/end position epd_write_data(0x00); epd_write_data(0x0F); // 0x0F-->(15+1)*8=128 @@ -223,24 +242,23 @@ uint8_t epd_init(void) epd_write_data(0x01); epd_write_data(0x00); epd_write_data(0x00); +#endif epd_write_reg(0x3C); // BorderWavefrom epd_write_data(0x05); +#if defined(EPD_29) || defined(EPD_213) epd_write_reg(0x21); // Display update control epd_write_data(0x00); epd_write_data(0x80); +#endif epd_write_reg(0x18); // Read built-in temperature sensor epd_write_data(0x80); - epd_write_reg(0x4E); // set RAM x address count to 0; - epd_write_data(0x00); - epd_write_reg(0x4F); // set RAM y address count to 0x127; - epd_write_data(0x27); - epd_write_data(0x01); + epd_setpos(0,0); - if (epd_wait_busy()) + if (epd_power_on()) return 1; return 0; @@ -251,25 +269,46 @@ uint8_t epd_init_partial(void) if (epd_init()) return 1; +#if defined(EPD_29) || defined(EPD_213) epd_write_reg(0x32); epd_cs_reset(); - for (int j = 0; j < sizeof(ut_partial); j++) + for (int j = 0; j < sizeof(lut_partial); j++) { - _epd_write_data(ut_partial[j]); + _epd_write_data(lut_partial[j]); } _epd_write_data_over(); epd_cs_set(); +#endif return 0; } void epd_enter_deepsleepmode(uint8_t mode) { +epd_power_off(); epd_write_reg(0x10); epd_write_data(mode); _hibernating = 1; } +uint8_t epd_power_on(void) +{ + epd_write_reg(0x22); // Display Update Control + epd_write_data(0xf8); + epd_write_reg(0x20); // Activate Display Update Sequence + + return epd_wait_busy(); +} + +uint8_t epd_power_off(void) +{ + epd_write_reg(0x22); // Display Update Control + epd_write_data(0x83); + epd_write_reg(0x20); // Activate Display Update Sequence + + return epd_wait_busy(); +} + void epd_init_internalTempSensor(void) { epd_write_reg(0x18); @@ -283,7 +322,11 @@ void epd_init_internalTempSensor(void) void epd_update(void) { epd_write_reg(0x22); // Display Update Control +#ifdef EPD_154 + epd_write_data(0xF4); + #else epd_write_data(0xF7); +#endif epd_write_reg(0x20); // Activate Display Update Sequence epd_wait_busy(); @@ -292,7 +335,11 @@ void epd_update(void) void epd_update_partial(void) { epd_write_reg(0x22); // Display Update Control +#ifdef EPD_154 + epd_write_data(0xFC); + #else epd_write_data(0xCC); +#endif epd_write_reg(0x20); // Activate Display Update Sequence epd_wait_busy(); @@ -305,7 +352,11 @@ void epd_setpos(uint16_t x, uint16_t y) _x = x / 8; +#ifdef EPD_154 + _y = 199 - y; + #else _y = 295 - y; +#endif epd_write_reg(0x4E); // set RAM x address count to 0; epd_write_data(_x); @@ -667,10 +718,14 @@ void epd_paint_showString(uint16_t x, uint16_t y, uint8_t *chr, uint16_t size1, if (size1 == 8) { x += 6; + if(x > EPD_H-6) + break; } else { x += size1 / 2; + if(x > EPD_H-size1 / 2) + break; } } } diff --git a/Example/EpaperModuleTest_GD32F303/Epaper/epaper.h b/Example/EpaperModuleTest_GD32F303/Epaper/epaper.h index b0c2cf4..40eef6c 100644 --- a/Example/EpaperModuleTest_GD32F303/Epaper/epaper.h +++ b/Example/EpaperModuleTest_GD32F303/Epaper/epaper.h @@ -10,8 +10,9 @@ extern "C" //#define EPD_29 //#define EPD_213 +//#define EPD_154 -#if (!defined EPD_29) && (!defined EPD_213) +#if (!defined EPD_29) && (!defined EPD_213) && (!defined EPD_154) #error EPD Type Undefine #endif @@ -25,6 +26,12 @@ extern "C" #define EPD_H 250 #endif +#ifdef EPD_154 +#define EPD_W 200 +#define EPD_H 200 +#endif + + #define EPD_OK 0 #define EPD_ERROR 1 @@ -64,9 +71,12 @@ extern "C" uint8_t epd_init(void); uint8_t epd_init_partial(void); void epd_enter_deepsleepmode(uint8_t mode); + uint8_t epd_power_on(void); + uint8_t epd_power_off(void); void epd_init_internalTempSensor(void); void epd_update(void); void epd_update_partial(void); + void epd_setpos(uint16_t x, uint16_t y); void epd_display(uint8_t *Image1, uint8_t *Image2); void epd_displayBW(uint8_t *Image); void epd_displayBW_partial(uint8_t *Image); diff --git a/Example/EpaperModuleTest_GD32F303/Src/main.c b/Example/EpaperModuleTest_GD32F303/Src/main.c index 5c09545..a54d22d 100644 --- a/Example/EpaperModuleTest_GD32F303/Src/main.c +++ b/Example/EpaperModuleTest_GD32F303/Src/main.c @@ -118,7 +118,7 @@ int main(void) sprintf((char *)&text, ">> Hello World."); epd_paint_showString(10, 71, text, EPD_FONT_SIZE24x12, EPD_COLOR_RED); -#if 0 +#if 1 epd_paint_showString(10,100,(uint8_t *)&"GD32F303CCT6 Example",EPD_FONT_SIZE16x8,EPD_COLOR_RED); #else epd_paint_drawRectangle(10, 103, EPD_H - 10, 116, EPD_COLOR_RED, 1); @@ -129,8 +129,14 @@ int main(void) epd_paint_newimage(image_bw, EPD_W, EPD_H, EPD_ROTATE_180, EPD_COLOR_WHITE); epd_paint_selectimage(image_bw); + + #ifdef EPD_154 + epd_paint_clear(EPD_COLOR_WHITE); + epd_paint_showPicture((EPD_H - 200) / 2,(EPD_W - 64) / 2,200,64,gImage_5,EPD_COLOR_WHITE); + #else epd_paint_clear(EPD_COLOR_WHITE); epd_paint_showPicture((EPD_H - 250) / 2, (EPD_W - 122) / 2, 250, 122, gImage_4, EPD_COLOR_WHITE); +#endif epd_displayBW(image_bw); epd_enter_deepsleepmode(EPD_DEEPSLEEP_MODE1); @@ -141,17 +147,25 @@ int main(void) epd_paint_selectimage(image_bw); epd_paint_clear(EPD_COLOR_WHITE); +#ifdef EPD_154 + epd_paint_showString(10, 0, (uint8_t *)&"1.54 Inch", EPD_FONT_SIZE24x12, EPD_COLOR_BLACK); + epd_paint_showString(10, 23, (uint8_t *)&"Epaper Module", EPD_FONT_SIZE24x12, EPD_COLOR_BLACK); + epd_paint_showString(10, 48, (uint8_t *)&"Designed By WeAct Studio", EPD_FONT_SIZE12x6, EPD_COLOR_BLACK); + epd_paint_showString(10, 60, (uint8_t *)&"with 200 x 200 resolution", EPD_FONT_SIZE12x6, EPD_COLOR_BLACK); + epd_paint_showPicture((EPD_H - 200) / 2,130,200,64,gImage_5,EPD_COLOR_WHITE); +#endif #ifdef EPD_213 epd_paint_showString(10, 0, (uint8_t *)&"2.13 Epaper Module", EPD_FONT_SIZE24x12, EPD_COLOR_BLACK); epd_paint_showString(10, 50, (uint8_t *)&"with 250 x 122 resolution", EPD_FONT_SIZE16x8, EPD_COLOR_BLACK); +epd_paint_showString(10, 29, (uint8_t *)&"Designed By WeAct Studio", EPD_FONT_SIZE16x8, EPD_COLOR_BLACK); #endif #ifdef EPD_29 epd_paint_showString(10, 0, (uint8_t *)&"2.9 Epaper Module", EPD_FONT_SIZE24x12, EPD_COLOR_BLACK); epd_paint_showString(10, 50, (uint8_t *)&"with 296 x 128 resolution", EPD_FONT_SIZE16x8, EPD_COLOR_BLACK); -#endif epd_paint_showString(10, 29, (uint8_t *)&"Designed By WeAct Studio", EPD_FONT_SIZE16x8, EPD_COLOR_BLACK); +#endif -#if 0 +#if 1 epd_paint_showString(10,100,(uint8_t *)&"GD32F303CCT6 Example",EPD_FONT_SIZE16x8,EPD_COLOR_BLACK); #else epd_paint_drawRectangle(10, 103, EPD_H - 10, 116, EPD_COLOR_BLACK, 1); diff --git a/Hardware/WeAct-EpaperModule-1.54 Board Shape 外形.pdf b/Hardware/WeAct-EpaperModule-1.54 Board Shape 外形.pdf new file mode 100644 index 0000000..032d0fe Binary files /dev/null and b/Hardware/WeAct-EpaperModule-1.54 Board Shape 外形.pdf differ