@@ -40,15 +40,14 @@ SystemTask::SystemTask(Drivers::SpiMaster &spi, Drivers::St7789 &lcd,
4040 Drivers::TwiMaster& twiMaster, Drivers::Cst816S &touchPanel,
4141 Components::LittleVgl &lvgl,
4242 Controllers::Battery &batteryController, Controllers::Ble &bleController,
43- Controllers::DateTime &dateTimeController,
4443 Pinetime::Controllers::MotorController& motorController,
4544 Pinetime::Drivers::Hrs3300& heartRateSensor,
4645 Pinetime::Drivers::Bma421& motionSensor,
4746 Controllers::Settings &settingsController) :
4847 spi{spi}, lcd{lcd}, spiNorFlash{spiNorFlash},
4948 twiMaster{twiMaster}, touchPanel{touchPanel}, lvgl{lvgl}, batteryController{batteryController},
5049 heartRateController{*this },
51- bleController{bleController}, dateTimeController{dateTimeController },
50+ bleController{bleController}, dateTimeController{* this },
5251 watchdog{}, watchdogView{watchdog},
5352 motorController{motorController}, heartRateSensor{heartRateSensor}, motionSensor{motionSensor},
5453 settingsController{settingsController},
@@ -210,6 +209,11 @@ void SystemTask::Work() {
210209 isSleeping = true ;
211210 isGoingToSleep = false ;
212211 break ;
212+ case Messages::OnNewDay:
213+ // We might be sleeping (with TWI device disabled.
214+ // Remember we'll have to reset the counter next time we're awake
215+ stepCounterMustBeReset = true ;
216+ break ;
213217 default : break ;
214218 }
215219 }
@@ -239,6 +243,12 @@ void SystemTask::UpdateMotion() {
239243
240244 if (isSleeping)
241245 twiMaster.Wakeup ();
246+
247+ if (stepCounterMustBeReset) {
248+ motionSensor.ResetStepCounter ();
249+ stepCounterMustBeReset = false ;
250+ }
251+
242252 auto motionValues = motionSensor.Process ();
243253 if (isSleeping)
244254 twiMaster.Sleep ();
0 commit comments