diff options
Diffstat (limited to 'wasp/drivers/nrf_rtc.py')
| -rw-r--r-- | wasp/drivers/nrf_rtc.py | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/wasp/drivers/nrf_rtc.py b/wasp/drivers/nrf_rtc.py index 63a2a51..0ff2c1f 100644 --- a/wasp/drivers/nrf_rtc.py +++ b/wasp/drivers/nrf_rtc.py @@ -3,6 +3,7 @@ """ Real Time Clock based on the nRF-family low power counter """ +import machine import time #class Stim(object): @@ -20,8 +21,17 @@ class RTC(object): def __init__(self, counter): self.counter = counter - self._uptime = 0 - self.set_localtime((2020, 3, 1, 3, 0, 0, 0, 0)) + + if machine.mem32[0x200039c0] == 0x1abe11ed and \ + machine.mem32[0x200039dc] == 0x10adab1e: + self.lastcount = self.counter.counter() + self.offset = machine.mem32[0x200039c4] + self._uptime = machine.mem32[0x200039c8] // 125 + else: + machine.mem32[0x200039c0] = 0x1abe11ed + machine.mem32[0x200039dc] = 0x10adab1e + self._uptime = 0 + self.set_localtime((2020, 3, 1, 3, 0, 0, 0, 0)) def update(self): newcount = self.counter.counter() @@ -34,6 +44,7 @@ class RTC(object): self.lastcount += split self.lastcount &= (1 << 24) - 1 self._uptime += split + machine.mem32[0x200039c8] = self._uptime * 125 return True @@ -52,6 +63,7 @@ class RTC(object): lt = time.mktime(t) self.offset = lt - (self._uptime >> 3) + machine.mem32[0x200039c4] = self.offset def get_localtime(self): self.update() |
