Skip to content

Commit 0b36d91

Browse files
committed
add:add the wake-up initialization path.
1 parent de63e93 commit 0b36d91

File tree

6 files changed

+169
-7
lines changed

6 files changed

+169
-7
lines changed

Extensions/EPaper.cpp

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,20 @@ EPaper::EPaper() : _sleep(false), _entemp(true), _temp(16.00), _humi(50.00), _gr
55
//createPalette(cmap, 16);
66
}
77

8-
void EPaper::begin(uint8_t tc)
8+
void EPaper::begin(uint8_t wake)
99
{
1010
setBitmapColor(1, 0);
1111
setTextFont(1);
1212
setTextColor(TFT_BLACK, TFT_WHITE, true);
13-
init(tc);
13+
if(wake)
14+
{
15+
initFromSleep();
16+
}
17+
else
18+
{
19+
init();
20+
EPD_WAKEUP();
21+
}
1422
// fillSprite(1);
1523
// #ifdef EPD_HORIZONTAL_MIRROR
1624
// EPD_PUSH_OLD_COLORS_FLIP(_width, _height, _img8);
@@ -22,7 +30,7 @@ void EPaper::begin(uint8_t tc)
2230
// EPD_PUSH_NEW_COLORS(_width, _height, _img8);
2331
// #endif
2432
// EPD_UPDATE();
25-
EPD_WAKEUP();
33+
2634
}
2735

2836
void EPaper::drawBufferPixel(int32_t x, int32_t y, uint32_t color, uint8_t bpp)

Extensions/EPaper.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ class EPaper : public TFT_eSprite
55
public:
66
explicit EPaper();
77

8-
void begin(uint8_t tc = TAB_COLOUR);
8+
void begin(uint8_t wake = 0);
99
void drawBufferPixel(int32_t x, int32_t y, uint32_t color, uint8_t bpp);
1010
void update();
1111
void update(uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint16_t *data);

Extensions/Tcon.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -433,9 +433,9 @@ void TFT_eSPI::hostTconInit()
433433

434434
void TFT_eSPI::hostTconInitFast()
435435
{
436-
setTconVcom(1400);
436+
//setTconVcom(1400);
437437
_gulImgBufAddr = 0XBE78 | (0X003D << 16);
438-
tconWriteReg(I80CPCR, 0x0001);
438+
//tconWriteReg(I80CPCR, 0x0001);
439439
}
440440

441441
void TFT_eSPI::setTconWindowsData(TWord x1, TWord y1, TWord x2, TWord y2)

TFT_Drivers/ED103TC2_Init_Wake.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#ifdef TFT_BUSY
2+
pinMode(TFT_BUSY, INPUT);
3+
#endif
4+
#ifdef TFT_ENABLE
5+
pinMode(TFT_ENABLE, OUTPUT);
6+
digitalWrite(TFT_ENABLE, HIGH);
7+
#endif
8+
#ifdef ITE_ENABLE
9+
pinMode(ITE_ENABLE, OUTPUT);
10+
digitalWrite(ITE_ENABLE, HIGH);
11+
#endif
12+
hostTconInitFast();

TFT_eSPI.cpp

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -611,7 +611,149 @@ void TFT_eSPI::begin(uint8_t tc)
611611
init(tc);
612612
}
613613

614+
void TFT_eSPI::initFromSleep(uint8_t tc)
615+
{
614616

617+
if (!_booted) return;
618+
_booted = false;
619+
620+
initBus();
621+
622+
spi.begin(TFT_SCLK, TFT_MISO, TFT_MOSI, -1);
623+
624+
lockTransaction = false;
625+
inTransaction = false;
626+
locked = true;
627+
628+
INIT_TFT_DATA_BUS;
629+
630+
#if defined(TFT_CS)
631+
if (TFT_CS >= 0) {
632+
pinMode(TFT_CS, OUTPUT);
633+
digitalWrite(TFT_CS, HIGH);
634+
}
635+
#endif
636+
637+
#if defined(TFT_DC)
638+
if (TFT_DC >= 0) {
639+
pinMode(TFT_DC, OUTPUT);
640+
digitalWrite(TFT_DC, HIGH);
641+
}
642+
#endif
643+
644+
#ifdef TFT_RST
645+
if (TFT_RST >= 0) {
646+
pinMode(TFT_RST, OUTPUT);
647+
}
648+
#else
649+
writecommand(TFT_SWRST);
650+
#endif
651+
652+
tc = tc; // Suppress warning
653+
654+
#if defined (ILI9341_DRIVER) || defined(ILI9341_2_DRIVER) || defined (ILI9342_DRIVER)
655+
#include "TFT_Drivers/ILI9341_Init.h"
656+
657+
#elif defined (ST7735_DRIVER)
658+
tabcolor = tc;
659+
#include "TFT_Drivers/ST7735_Init.h"
660+
661+
#elif defined (ILI9163_DRIVER)
662+
#include "TFT_Drivers/ILI9163_Init.h"
663+
664+
#elif defined (S6D02A1_DRIVER)
665+
#include "TFT_Drivers/S6D02A1_Init.h"
666+
667+
#elif defined (ST7796_DRIVER)
668+
#include "TFT_Drivers/ST7796_Init.h"
669+
670+
#elif defined (ILI9486_DRIVER)
671+
#include "TFT_Drivers/ILI9486_Init.h"
672+
673+
#elif defined (ILI9481_DRIVER)
674+
#include "TFT_Drivers/ILI9481_Init.h"
675+
676+
#elif defined (ILI9488_DRIVER)
677+
#include "TFT_Drivers/ILI9488_Init.h"
678+
679+
#elif defined (HX8357D_DRIVER)
680+
#include "TFT_Drivers/HX8357D_Init.h"
681+
682+
#elif defined (ST7789_DRIVER)
683+
#include "TFT_Drivers/ST7789_Init.h"
684+
685+
#elif defined (R61581_DRIVER)
686+
#include "TFT_Drivers/R61581_Init.h"
687+
688+
#elif defined (RM68140_DRIVER)
689+
#include "TFT_Drivers/RM68140_Init.h"
690+
691+
#elif defined (ST7789_2_DRIVER)
692+
#include "TFT_Drivers/ST7789_2_Init.h"
693+
694+
#elif defined (SSD1351_DRIVER)
695+
#include "TFT_Drivers/SSD1351_Init.h"
696+
697+
#elif defined (SSD1963_DRIVER)
698+
#include "TFT_Drivers/SSD1963_Init.h"
699+
700+
#elif defined (GC9A01_DRIVER)
701+
#include "TFT_Drivers/GC9A01_Init.h"
702+
703+
#elif defined (ILI9225_DRIVER)
704+
#include "TFT_Drivers/ILI9225_Init.h"
705+
706+
#elif defined (RM68120_DRIVER)
707+
#include "TFT_Drivers/RM68120_Init.h"
708+
709+
#elif defined (HX8357B_DRIVER)
710+
#include "TFT_Drivers/HX8357B_Init.h"
711+
712+
#elif defined (HX8357C_DRIVER)
713+
#include "TFT_Drivers/HX8357C_Init.h"
714+
715+
#elif defined (UC8179_DRIVER)
716+
#include "TFT_Drivers/UC8179_Init.h"
717+
718+
#elif defined (SSD1680_DRIVER)
719+
#include "TFT_Drivers/SSD1680_Init.h"
720+
721+
#elif defined (SSD1681_DRIVER)
722+
#include "TFT_Drivers/SSD1681_Init.h"
723+
724+
#elif defined (SSD1683_DRIVER)
725+
#include "TFT_Drivers/SSD1683_Init.h"
726+
727+
#elif defined (SSD1677_DRIVER)
728+
#include "TFT_Drivers/SSD1677_Init.h"
729+
730+
#elif defined (JD79686B_DRIVER)
731+
#include "TFT_Drivers/JD79686B_Init.h"
732+
733+
#elif defined (ED2208_DRIVER)
734+
#include "TFT_Drivers/ED2208_Init.h"
735+
736+
#elif defined (ED103TC2_DRIVER)
737+
#include "TFT_Drivers/ED103TC2_Init_Wake.h"
738+
739+
#elif defined (T133A01_DRIVER)
740+
#include "TFT_Drivers/T133A01_Init.h"
741+
742+
#elif defined (JD79667_DRIVER)
743+
#include "TFT_Drivers/JD79667_Init.h"
744+
745+
#elif defined (JD79676_DRIVER)
746+
#include "TFT_Drivers/JD79676_Init.h"
747+
748+
#endif
749+
750+
#if defined (TFT_BL) && defined (TFT_BACKLIGHT_ON)
751+
if (TFT_BL >= 0) {
752+
pinMode(TFT_BL, OUTPUT);
753+
digitalWrite(TFT_BL, TFT_BACKLIGHT_ON);
754+
}
755+
#endif
756+
}
615757
/***************************************************************************************
616758
** Function name: init (tc is tab colour for ST7735 displays only)
617759
** Description: Reset, then initialise the TFT display registers

TFT_eSPI.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -534,7 +534,7 @@ class TFT_eSPI : public Print
534534

535535
// init() and begin() are equivalent, begin() included for backwards compatibility
536536
// Sketch defined tab colour option is for ST7735 displays only
537-
void init(uint8_t tc = TAB_COLOUR), begin(uint8_t tc = TAB_COLOUR);
537+
void init(uint8_t tc = TAB_COLOUR), initFromSleep(uint8_t tc = TAB_COLOUR), begin(uint8_t tc = TAB_COLOUR) ;
538538

539539
// These are virtual so the TFT_eSprite class can override them with sprite specific functions
540540
virtual void drawPixel(int32_t x, int32_t y, uint32_t color),

0 commit comments

Comments
 (0)