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: fb18705b9b
("manager/rtc: Experimental power saving technique")
Signed-off-by: Daniel Thompson <daniel@redfelineninja.org.uk>
This commit is contained in:
parent
33ff7dc91e
commit
f221e2f8a4
3 changed files with 9 additions and 4 deletions
|
@ -4,6 +4,7 @@
|
||||||
"""Generic lithium ion battery driver
|
"""Generic lithium ion battery driver
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
"""
|
"""
|
||||||
|
import micropython
|
||||||
from machine import Pin, ADC
|
from machine import Pin, ADC
|
||||||
|
|
||||||
class Battery(object):
|
class Battery(object):
|
||||||
|
@ -26,6 +27,7 @@ class Battery(object):
|
||||||
self._charging = charging
|
self._charging = charging
|
||||||
self._power = power
|
self._power = power
|
||||||
|
|
||||||
|
@micropython.native
|
||||||
def charging(self):
|
def charging(self):
|
||||||
"""Get the charging state of the battery.
|
"""Get the charging state of the battery.
|
||||||
|
|
||||||
|
|
|
@ -62,11 +62,11 @@ class RTC(object):
|
||||||
self.lastcount += split
|
self.lastcount += split
|
||||||
self.lastcount &= (1 << 24) - 1
|
self.lastcount &= (1 << 24) - 1
|
||||||
uptime = self._uptime
|
uptime = self._uptime
|
||||||
self._uptime += split
|
uptime += split
|
||||||
machine.mem32[0x200039c8] = self._uptime * 125
|
machine.mem32[0x200039c8] = uptime * 125
|
||||||
|
self._uptime = uptime
|
||||||
|
|
||||||
# Has the seconds count changed
|
return True
|
||||||
return bool((self._uptime ^ uptime) & 0x08)
|
|
||||||
|
|
||||||
def set_localtime(self, t):
|
def set_localtime(self, t):
|
||||||
"""Set the current wall time.
|
"""Set the current wall time.
|
||||||
|
@ -117,6 +117,7 @@ class RTC(object):
|
||||||
"""Provide the current uptime in seconds."""
|
"""Provide the current uptime in seconds."""
|
||||||
return self._uptime // 8
|
return self._uptime // 8
|
||||||
|
|
||||||
|
@micropython.native
|
||||||
def get_uptime_ms(self):
|
def get_uptime_ms(self):
|
||||||
"""Return the current uptime in milliseconds."""
|
"""Return the current uptime in milliseconds."""
|
||||||
return self._uptime * 125
|
return self._uptime * 125
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import array
|
import array
|
||||||
|
import micropython
|
||||||
import time
|
import time
|
||||||
from machine import Pin
|
from machine import Pin
|
||||||
from watch import rtc
|
from watch import rtc
|
||||||
|
@ -45,6 +46,7 @@ class TouchButton:
|
||||||
if self.schedule:
|
if self.schedule:
|
||||||
self.schedule(self)
|
self.schedule(self)
|
||||||
|
|
||||||
|
@micropython.native
|
||||||
def get_event(self):
|
def get_event(self):
|
||||||
"""Receive a touch event.
|
"""Receive a touch event.
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue