diff options
| author | Daniel Thompson <daniel@redfelineninja.org.uk> | 2021-06-19 07:22:20 (GMT) |
|---|---|---|
| committer | Daniel Thompson <daniel@redfelineninja.org.uk> | 2021-06-19 07:22:20 (GMT) |
| commit | f221e2f8a4e52f0d14e7d59ceddf65785195129a (patch) | |
| tree | 03ff97f097f40ae0f20b4eac2cb686aa791f1300 /wasp/drivers/nrf_rtc.py | |
| parent | 33ff7dc91e33f503f9855e01b4255fe43b548516 (diff) | |
rtc: Undo the once-per-second wake up
So... waking up once per second turns out to be a dumb idea because it
regresses the stop watch and HRS tools (which now also only wake up once
per second).
Undo this change but sprinkle a few more micropython.native decorations
on methods used on the wakeup path to minimise power.
Fixes: fb18705b9b9cc ("manager/rtc: Experimental power saving technique")
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
Diffstat (limited to 'wasp/drivers/nrf_rtc.py')
| -rw-r--r-- | wasp/drivers/nrf_rtc.py | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/wasp/drivers/nrf_rtc.py b/wasp/drivers/nrf_rtc.py index 38263c8..274bbad 100644 --- a/wasp/drivers/nrf_rtc.py +++ b/wasp/drivers/nrf_rtc.py @@ -62,11 +62,11 @@ class RTC(object): self.lastcount += split self.lastcount &= (1 << 24) - 1 uptime = self._uptime - self._uptime += split - machine.mem32[0x200039c8] = self._uptime * 125 + uptime += split + machine.mem32[0x200039c8] = uptime * 125 + self._uptime = uptime - # Has the seconds count changed - return bool((self._uptime ^ uptime) & 0x08) + return True def set_localtime(self, t): """Set the current wall time. @@ -117,6 +117,7 @@ class RTC(object): """Provide the current uptime in seconds.""" return self._uptime // 8 + @micropython.native def get_uptime_ms(self): """Return the current uptime in milliseconds.""" return self._uptime * 125 |
