You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

76 lines
2.3 KiB

#include "config.h"
TTGOClass *ttgo;
char buf[128];
bool irq = false;
void setup()
{
Serial.begin(115200);
ttgo = TTGOClass::getWatch();
ttgo->begin();
ttgo->openBL();
ttgo->tft->fillScreen(TFT_BLACK);
ttgo->tft->setTextFont(2);
ttgo->tft->setTextColor(TFT_WHITE, TFT_BLACK);
ttgo->tft->drawString("T-Watch Touch Test", 62, 90);
pinMode(AXP202_INT, INPUT_PULLUP);
attachInterrupt(AXP202_INT, [] {
irq = true;
}, FALLING);
//!Clear IRQ unprocessed first
ttgo->power->enableIRQ(AXP202_PEK_SHORTPRESS_IRQ, true);
ttgo->power->clearIRQ();
pinMode(TOUCH_INT, INPUT);
}
void loop()
{
int16_t x, y;
if (digitalRead(TOUCH_INT) == LOW) {
Serial.println("PRESSED");
if (ttgo->getTouch(x, y)) {
sprintf(buf, "x:%03d y:%03d", x, y);
ttgo->tft->drawString(buf, 80, 118);
}
}
if (irq) {
irq = false;
ttgo->power->readIRQ();
if (ttgo->power->isPEKShortPressIRQ()) {
// Clean power chip irq status
ttgo->power->clearIRQ();
// Set touchscreen sleep
ttgo->displaySleep();
/*
In TWatch2019/ Twatch2020V1, touch reset is not connected to ESP32,
so it cannot be used. Set the touch to sleep,
otherwise it will not be able to wake up.
Only by turning off the power and powering on the touch again will the touch be working mode
// ttgo->displayOff();
*/
ttgo->powerOff();
//Set all channel power off
ttgo->power->setPowerOutPut(AXP202_LDO3, false);
ttgo->power->setPowerOutPut(AXP202_LDO4, false);
ttgo->power->setPowerOutPut(AXP202_LDO2, false);
ttgo->power->setPowerOutPut(AXP202_EXTEN, false);
ttgo->power->setPowerOutPut(AXP202_DCDC2, false);
// TOUCH SCREEN Wakeup source
esp_sleep_enable_ext1_wakeup(GPIO_SEL_38, ESP_EXT1_WAKEUP_ALL_LOW);
// PEK KEY Wakeup source
// esp_sleep_enable_ext1_wakeup(GPIO_SEL_35, ESP_EXT1_WAKEUP_ALL_LOW);
esp_deep_sleep_start();
}
ttgo->power->clearIRQ();
}
}