From f7e40b1b5879242b4ce59854dbbadb44fe5f75e4 Mon Sep 17 00:00:00 2001 From: JF Date: Sat, 22 Aug 2020 17:59:59 +0200 Subject: Re-implement sleep/wakeup for touch panel, display, NOR Flash, SPI and TWI. --- src/SystemTask/SystemTask.cpp | 15 +++++++++++++++ src/SystemTask/SystemTask.h | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) (limited to 'src/SystemTask') diff --git a/src/SystemTask/SystemTask.cpp b/src/SystemTask/SystemTask.cpp index 1ee8e918..b515d1ab 100644 --- a/src/SystemTask/SystemTask.cpp +++ b/src/SystemTask/SystemTask.cpp @@ -145,6 +145,14 @@ void SystemTask::Work() { case Messages::OnButtonEvent: ReloadIdleTimer(); break; + case Messages::OnDisplayTaskSleeping: + spiNorFlash.Sleep(); + lcd.Sleep(); + touchPanel.Sleep(); + + spi.Sleep(); + twiMaster.Sleep(); + break; default: break; } } @@ -185,6 +193,13 @@ void SystemTask::OnButtonPushed() { void SystemTask::GoToRunning() { PushMessage(Messages::GoToRunning); + spi.Wakeup(); + twiMaster.Wakeup(); + + spiNorFlash.Wakeup(); + lcd.Wakeup(); + touchPanel.Wakeup(); + displayApp->PushMessage(Applications::DisplayApp::Messages::GoToRunning); displayApp->PushMessage(Applications::DisplayApp::Messages::UpdateBatteryLevel); } diff --git a/src/SystemTask/SystemTask.h b/src/SystemTask/SystemTask.h index 3e53baed..3812ea91 100644 --- a/src/SystemTask/SystemTask.h +++ b/src/SystemTask/SystemTask.h @@ -18,7 +18,7 @@ namespace Pinetime { class SystemTask { public: enum class Messages {GoToSleep, GoToRunning, OnNewTime, OnNewNotification, BleConnected, - BleFirmwareUpdateStarted, BleFirmwareUpdateFinished, OnTouchEvent, OnButtonEvent + BleFirmwareUpdateStarted, BleFirmwareUpdateFinished, OnTouchEvent, OnButtonEvent, OnDisplayTaskSleeping }; SystemTask(Drivers::SpiMaster &spi, Drivers::St7789 &lcd, -- cgit v1.2.3