Re-implement sleep/wakeup for touch panel, display, NOR Flash, SPI and TWI.

This commit is contained in:
JF 2020-08-22 17:59:59 +02:00
parent ecbbeb6283
commit f7e40b1b58
11 changed files with 80 additions and 24 deletions

View file

@ -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);
}

View file

@ -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,