From 99f6a13540da0d4ad5a1291343068e0220f8b219 Mon Sep 17 00:00:00 2001 From: SSYYL <1032789891@qq.com> Date: Mon, 19 Jul 2021 18:39:06 +0800 Subject: [PATCH] Get rid of the superfluous ';' --- Arduino/epd7in5_V2/epd7in5_V2.cpp | 10 +- .../c/lib/e-Paper/EPD_7in5_V2.c | 10 +- .../python/lib/waveshare_epd/epd1in54_V2.py | 30 ++-- .../python/lib/waveshare_epd/epd2in9_V2.py | 148 +++++++++++------- .../python/lib/waveshare_epd/epd7in5_V2.py | 127 +++++++++++++-- .../STM32-F103ZET6/User/e-Paper/EPD_7in5_V2.c | 10 +- 6 files changed, 236 insertions(+), 99 deletions(-) diff --git a/Arduino/epd7in5_V2/epd7in5_V2.cpp b/Arduino/epd7in5_V2/epd7in5_V2.cpp index fdb1a92..c129e90 100644 --- a/Arduino/epd7in5_V2/epd7in5_V2.cpp +++ b/Arduino/epd7in5_V2/epd7in5_V2.cpp @@ -263,23 +263,23 @@ void Epd::SetLut_by_host(unsigned char* lut_vcom, unsigned char* lut_ww, unsign unsigned char count; SendCommand(0x20); //VCOM - for(count=0; count<60; count++) + for(count=0; count<42; count++) SendData(lut_vcom[count]); SendCommand(0x21); //LUTBW - for(count=0; count<60; count++) + for(count=0; count<42; count++) SendData(lut_ww[count]); SendCommand(0x22); //LUTBW - for(count=0; count<60; count++) + for(count=0; count<42; count++) SendData(lut_bw[count]); SendCommand(0x23); //LUTWB - for(count=0; count<60; count++) + for(count=0; count<42; count++) SendData(lut_wb[count]); SendCommand(0x24); //LUTBB - for(count=0; count<60; count++) + for(count=0; count<42; count++) SendData(lut_bb[count]); } diff --git a/RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_7in5_V2.c b/RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_7in5_V2.c index b8cbf2e..ffb1770 100644 --- a/RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_7in5_V2.c +++ b/RaspberryPi_JetsonNano/c/lib/e-Paper/EPD_7in5_V2.c @@ -145,23 +145,23 @@ static void EPD_7IN5_V2_LUT(UBYTE* lut_vcom, UBYTE* lut_ww, UBYTE* lut_bw, UBYT UBYTE count; EPD_SendCommand(0x20); //VCOM - for(count=0; count<60; count++) + for(count=0; count<42; count++) EPD_SendData(lut_vcom[count]); EPD_SendCommand(0x21); //LUTBW - for(count=0; count<60; count++) + for(count=0; count<42; count++) EPD_SendData(lut_ww[count]); EPD_SendCommand(0x22); //LUTBW - for(count=0; count<60; count++) + for(count=0; count<42; count++) EPD_SendData(lut_bw[count]); EPD_SendCommand(0x23); //LUTWB - for(count=0; count<60; count++) + for(count=0; count<42; count++) EPD_SendData(lut_wb[count]); EPD_SendCommand(0x24); //LUTBB - for(count=0; count<60; count++) + for(count=0; count<42; count++) EPD_SendData(lut_bb[count]); } diff --git a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd1in54_V2.py b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd1in54_V2.py index f28d6ba..8b5213a 100644 --- a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd1in54_V2.py +++ b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd1in54_V2.py @@ -174,31 +174,31 @@ class EPD: self.send_data(lut[158]) def SetWindows(self, Xstart, Ystart, Xend, Yend): - self.send_command(0x44); # SET_RAM_X_ADDRESS_START_END_POSITION - self.send_data((Xstart>>3) & 0xFF); - self.send_data((Xend>>3) & 0xFF); + self.send_command(0x44) # SET_RAM_X_ADDRESS_START_END_POSITION + self.send_data((Xstart>>3) & 0xFF) + self.send_data((Xend>>3) & 0xFF) - self.send_command(0x45); # SET_RAM_Y_ADDRESS_START_END_POSITION - self.send_data(Ystart & 0xFF); - self.send_data((Ystart >> 8) & 0xFF); - self.send_data(Yend & 0xFF); - self.send_data((Yend >> 8) & 0xFF); + self.send_command(0x45) # SET_RAM_Y_ADDRESS_START_END_POSITION + self.send_data(Ystart & 0xFF) + self.send_data((Ystart >> 8) & 0xFF) + self.send_data(Yend & 0xFF) + self.send_data((Yend >> 8) & 0xFF) def SetCursor(self, Xstart, Ystart): - self.send_command(0x4E); # SET_RAM_X_ADDRESS_COUNTER - self.send_data(Xstart & 0xFF); + self.send_command(0x4E) # SET_RAM_X_ADDRESS_COUNTER + self.send_data(Xstart & 0xFF) - self.send_command(0x4F); # SET_RAM_Y_ADDRESS_COUNTER - self.send_data(Ystart & 0xFF); - self.send_data((Ystart >> 8) & 0xFF); + self.send_command(0x4F) # SET_RAM_Y_ADDRESS_COUNTER + self.send_data(Ystart & 0xFF) + self.send_data((Ystart >> 8) & 0xFF) def init(self, isPartial): if (epdconfig.module_init() != 0): return -1 if(isPartial): - logging.debug("full refresh") + logging.debug("partial refresh") self.reset() self.ReadBusy() @@ -225,7 +225,7 @@ class EPD: self.ReadBusy() else: - logging.debug("partial refresh") + logging.debug("full refresh") # EPD hardware init start self.reset() diff --git a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.py b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.py index 0735861..67dcdcd 100644 --- a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.py +++ b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd2in9_V2.py @@ -44,25 +44,47 @@ class EPD: self.height = EPD_HEIGHT WF_PARTIAL_2IN9 = [ - 0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x80,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x40,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0A,0x0,0x0,0x0,0x0,0x0,0x2, - 0x1,0x0,0x0,0x0,0x0,0x0,0x0, - 0x1,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x0,0x0,0x0,0x0,0x0,0x0,0x0, - 0x22,0x22,0x22,0x22,0x22,0x22,0x0,0x0,0x0, - 0x22,0x17,0x41,0xB0,0x32,0x36, + 0x0,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x80,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x40,0x40,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x80,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0A,0x0,0x0,0x0,0x0,0x0,0x2, + 0x1,0x0,0x0,0x0,0x0,0x0,0x0, + 0x1,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x0,0x0,0x0,0x0,0x0,0x0,0x0, + 0x22,0x22,0x22,0x22,0x22,0x22,0x0,0x0,0x0, + 0x22,0x17,0x41,0xB0,0x32,0x36, + ] + + WS_20_30 = [ + 0x80, 0x66, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, + 0x10, 0x66, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, + 0x80, 0x66, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, + 0x10, 0x66, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x14, 0x8, 0x0, 0x0, 0x0, 0x0, 0x2, + 0xA, 0xA, 0x0, 0xA, 0xA, 0x0, 0x1, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x14, 0x8, 0x0, 0x1, 0x0, 0x0, 0x1, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x44, 0x44, 0x44, 0x44, 0x44, 0x44, 0x0, 0x0, 0x0, + 0x22, 0x17, 0x41, 0x0, 0x32, 0x36 ] # Hardware reset @@ -94,7 +116,7 @@ class EPD: def TurnOnDisplay(self): self.send_command(0x22) # DISPLAY_UPDATE_CONTROL_2 - self.send_data(0xF7) + self.send_data(0xc7) self.send_command(0x20) # MASTER_ACTIVATION self.ReadBusy() @@ -104,12 +126,25 @@ class EPD: self.send_command(0x20) # MASTER_ACTIVATION self.ReadBusy() - def SendLut(self): + def lut(self, lut): self.send_command(0x32) for i in range(0, 153): - self.send_data(self.WF_PARTIAL_2IN9[i]) + self.send_data(lut[i]) self.ReadBusy() + def SetLut(self, lut): + self.lut(lut) + self.send_command(0x3f) + self.send_data(lut[153]) + self.send_command(0x03); # gate voltage + self.send_data(lut[154]) + self.send_command(0x04); # source voltage + self.send_data(lut[155]) # VSH + self.send_data(lut[156]) # VSH2 + self.send_data(lut[157]) # VSL + self.send_command(0x2c); # VCOM + self.send_data(lut[158]) + def SetWindow(self, x_start, y_start, x_end, y_end): self.send_command(0x44) # SET_RAM_X_ADDRESS_START_END_POSITION # x point must be the multiple of 8 or the last 3 bits will be ignored @@ -129,7 +164,6 @@ class EPD: self.send_command(0x4F) # SET_RAM_Y_ADDRESS_COUNTER self.send_data(y & 0xFF) self.send_data((y >> 8) & 0xFF) - self.ReadBusy() def init(self): if (epdconfig.module_init() != 0): @@ -137,26 +171,28 @@ class EPD: # EPD hardware init start self.reset() - self.ReadBusy(); - self.send_command(0x12); #SWRESET - self.ReadBusy(); + self.ReadBusy() + self.send_command(0x12) #SWRESET + self.ReadBusy() - self.send_command(0x01); #Driver output control - self.send_data(0x27); - self.send_data(0x01); - self.send_data(0x00); + self.send_command(0x01) #Driver output control + self.send_data(0x27) + self.send_data(0x01) + self.send_data(0x00) - self.send_command(0x11); #data entry mode - self.send_data(0x03); + self.send_command(0x11) #data entry mode + self.send_data(0x03) - self.SetWindow(0, 0, self.width-1, self.height-1); + self.SetWindow(0, 0, self.width-1, self.height-1) - self.send_command(0x21); # Display update control - self.send_data(0x00); - self.send_data(0x80); + self.send_command(0x21) # Display update control + self.send_data(0x00) + self.send_data(0x80) - self.SetCursor(0, 0); - self.ReadBusy(); + self.SetCursor(0, 0) + self.ReadBusy() + + self.SetLut(self.WS_20_30) # EPD hardware init end return 0 @@ -218,26 +254,26 @@ class EPD: epdconfig.digital_write(self.reset_pin, 1) epdconfig.delay_ms(2) - self.SendLut(); - self.send_command(0x37); - self.send_data(0x00); - self.send_data(0x00); - self.send_data(0x00); - self.send_data(0x00); - self.send_data(0x00); - self.send_data(0x40); - self.send_data(0x00); - self.send_data(0x00); - self.send_data(0x00); - self.send_data(0x00); + self.SetLut(self.WF_PARTIAL_2IN9) + self.send_command(0x37) + self.send_data(0x00) + self.send_data(0x00) + self.send_data(0x00) + self.send_data(0x00) + self.send_data(0x00) + self.send_data(0x40) + self.send_data(0x00) + self.send_data(0x00) + self.send_data(0x00) + self.send_data(0x00) - self.send_command(0x3C); #BorderWavefrom - self.send_data(0x80); + self.send_command(0x3C) #BorderWavefrom + self.send_data(0x80) - self.send_command(0x22); - self.send_data(0xC0); - self.send_command(0x20); - self.ReadBusy(); + self.send_command(0x22) + self.send_data(0xC0) + self.send_command(0x20) + self.ReadBusy() self.SetWindow(0, 0, self.width - 1, self.height - 1) self.SetCursor(0, 0) diff --git a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd7in5_V2.py b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd7in5_V2.py index 5f6b17c..61cc243 100644 --- a/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd7in5_V2.py +++ b/RaspberryPi_JetsonNano/python/lib/waveshare_epd/epd7in5_V2.py @@ -44,14 +44,68 @@ class EPD: self.width = EPD_WIDTH self.height = EPD_HEIGHT + Voltage_Frame_7IN5_V2 = [ + 0x6, 0x3F, 0x3F, 0x11, 0x24, 0x7, 0x17, + ] + + LUT_VCOM_7IN5_V2 = [ + 0x0, 0xF, 0xF, 0x0, 0x0, 0x1, + 0x0, 0xF, 0x1, 0xF, 0x1, 0x2, + 0x0, 0xF, 0xF, 0x0, 0x0, 0x1, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + ] + + LUT_WW_7IN5_V2 = [ + 0x10, 0xF, 0xF, 0x0, 0x0, 0x1, + 0x84, 0xF, 0x1, 0xF, 0x1, 0x2, + 0x20, 0xF, 0xF, 0x0, 0x0, 0x1, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + ] + + LUT_BW_7IN5_V2 = [ + 0x10, 0xF, 0xF, 0x0, 0x0, 0x1, + 0x84, 0xF, 0x1, 0xF, 0x1, 0x2, + 0x20, 0xF, 0xF, 0x0, 0x0, 0x1, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + ] + + LUT_WB_7IN5_V2 = [ + 0x80, 0xF, 0xF, 0x0, 0x0, 0x1, + 0x84, 0xF, 0x1, 0xF, 0x1, 0x2, + 0x40, 0xF, 0xF, 0x0, 0x0, 0x1, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + ] + + LUT_BB_7IN5_V2 = [ + 0x80, 0xF, 0xF, 0x0, 0x0, 0x1, + 0x84, 0xF, 0x1, 0xF, 0x1, 0x2, + 0x40, 0xF, 0xF, 0x0, 0x0, 0x1, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + ] + # Hardware reset def reset(self): epdconfig.digital_write(self.reset_pin, 1) - epdconfig.delay_ms(200) + epdconfig.delay_ms(20) epdconfig.digital_write(self.reset_pin, 0) epdconfig.delay_ms(2) epdconfig.digital_write(self.reset_pin, 1) - epdconfig.delay_ms(200) + epdconfig.delay_ms(20) def send_command(self, command): epdconfig.digital_write(self.dc_pin, 0) @@ -78,33 +132,73 @@ class EPD: while(busy == 0): self.send_command(0x71) busy = epdconfig.digital_read(self.busy_pin) - epdconfig.delay_ms(200) + epdconfig.delay_ms(20) logging.debug("e-Paper busy release") + def SetLut(self, lut_vcom, lut_ww, lut_bw, lut_wb, lut_bb): + self.send_command(0x20) + for count in range(0, 42): + self.send_data(lut_vcom[count]) + + self.send_command(0x21) + for count in range(0, 42): + self.send_data(lut_ww[count]) + + self.send_command(0x22) + for count in range(0, 42): + self.send_data(lut_bw[count]) + + self.send_command(0x23) + for count in range(0, 42): + self.send_data(lut_wb[count]) + + self.send_command(0x24) + for count in range(0, 42): + self.send_data(lut_bb[count]) + def init(self): if (epdconfig.module_init() != 0): return -1 # EPD hardware init start self.reset() - self.send_command(0x06) # btst - self.send_data(0x17) - self.send_data(0x17) - self.send_data(0x28) # If an exception is displayed, try using 0x38 + # self.send_command(0x06) # btst + # self.send_data(0x17) + # self.send_data(0x17) + # self.send_data(0x28) # If an exception is displayed, try using 0x38 + # self.send_data(0x17) + + # self.send_command(0x01) #POWER SETTING + # self.send_data(0x07) + # self.send_data(0x07) #VGH=20V,VGL=-20V + # self.send_data(0x3f) #VDH=15V + # self.send_data(0x3f) #VDL=-15V + + self.send_command(0x01) # power setting + self.send_data(0x17) # 1-0=11: internal power + self.send_data(self.Voltage_Frame_7IN5_V2[6]) # VGH&VGL + self.send_data(self.Voltage_Frame_7IN5_V2[1]) # VSH + self.send_data(self.Voltage_Frame_7IN5_V2[2]) # VSL + self.send_data(self.Voltage_Frame_7IN5_V2[3]) # VSHR + + self.send_command(0x82) # VCOM DC Setting + self.send_data(self.Voltage_Frame_7IN5_V2[4]) # VCOM + + self.send_command(0x06) # Booster Setting + self.send_data(0x27) + self.send_data(0x27) + self.send_data(0x2F) self.send_data(0x17) - self.send_command(0x01) #POWER SETTING - self.send_data(0x07) - self.send_data(0x07) #VGH=20V,VGL=-20V - self.send_data(0x3f) #VDH=15V - self.send_data(0x3f) #VDL=-15V + self.send_command(0x30) # OSC Setting + self.send_data(self.Voltage_Frame_7IN5_V2[0]) # 2-0=100: N=4 5-3=111: M=7 3C=50Hz 3A=100HZ self.send_command(0x04) #POWER ON epdconfig.delay_ms(100) self.ReadBusy() self.send_command(0X00) #PANNEL SETTING - self.send_data(0x1F) #KW-3f KWR-2F BWROTP 0f BWOTP 1f + self.send_data(0x3F) #KW-3f KWR-2F BWROTP 0f BWOTP 1f self.send_command(0x61) #tres self.send_data(0x03) #source 800 @@ -122,6 +216,13 @@ class EPD: self.send_command(0X60) #TCON SETTING self.send_data(0x22) + self.send_command(0x65) # Resolution setting + self.send_data(0x00) + self.send_data(0x00) # 800*480 + self.send_data(0x00) + self.send_data(0x00) + + self.SetLut(self.LUT_VCOM_7IN5_V2, self.LUT_WW_7IN5_V2, self.LUT_BW_7IN5_V2, self.LUT_WB_7IN5_V2, self.LUT_BB_7IN5_V2) # EPD hardware init end return 0 diff --git a/STM32/STM32-F103ZET6/User/e-Paper/EPD_7in5_V2.c b/STM32/STM32-F103ZET6/User/e-Paper/EPD_7in5_V2.c index fc3da19..5407d00 100644 --- a/STM32/STM32-F103ZET6/User/e-Paper/EPD_7in5_V2.c +++ b/STM32/STM32-F103ZET6/User/e-Paper/EPD_7in5_V2.c @@ -148,23 +148,23 @@ static void EPD_7IN5_V2_LUT(UBYTE* lut_vcom, UBYTE* lut_ww, UBYTE* lut_bw, UBYT UBYTE count; EPD_SendCommand(0x20); //VCOM - for(count=0; count<60; count++) + for(count=0; count<42; count++) EPD_SendData(lut_vcom[count]); EPD_SendCommand(0x21); //LUTBW - for(count=0; count<60; count++) + for(count=0; count<42; count++) EPD_SendData(lut_ww[count]); EPD_SendCommand(0x22); //LUTBW - for(count=0; count<60; count++) + for(count=0; count<42; count++) EPD_SendData(lut_bw[count]); EPD_SendCommand(0x23); //LUTWB - for(count=0; count<60; count++) + for(count=0; count<42; count++) EPD_SendData(lut_wb[count]); EPD_SendCommand(0x24); //LUTBB - for(count=0; count<60; count++) + for(count=0; count<42; count++) EPD_SendData(lut_bb[count]); }