1
0
Fork 0

clock: Reduce the update rate of the battery meter

In addition to the fix (which is simple) we also modify the button handling
of the simulator because, rather by acident, it relies on the bugs in the
battery meter redraw to ensure the simulator stays active.
This commit is contained in:
Daniel Thompson 2020-02-23 20:19:37 +00:00
parent 3ba356f6c4
commit 41647556c1
2 changed files with 8 additions and 4 deletions

View file

@ -9,6 +9,8 @@ from machine import SPI
from drivers.st7789 import ST7789_SPI
from drivers.vibrator import Vibrator
button = Pin('BUTTON', Pin.IN, quiet=True)
class Backlight(object):
def __init__(self, level=1):
self.set(level)
@ -16,6 +18,8 @@ class Backlight(object):
def set(self, level):
print(f'BACKLIGHT: {level}')
button.value(bool(level))
class Display(ST7789_SPI):
def __init__(self):
spi = SPI(0)
@ -45,10 +49,10 @@ class Battery(object):
def voltage_mv(self):
if self.voltage > 4:
self.step = -0.005
self.step = -0.01
self.powered = False
elif self.voltage < 3.4:
self.step = 0.01
self.step = 0.04
self.powered = True
self.voltage += self.step
@ -89,5 +93,4 @@ backlight = Backlight()
battery = Battery()
rtc = RTC()
vibrator = Vibrator(Pin('MOTOR', Pin.OUT, value=0), active_low=True)
button = Pin('BUTTON', Pin.IN, quiet=True)

View file

@ -36,8 +36,9 @@ class ClockApp(object):
def update(self, watch):
now = watch.rtc.get_localtime()
if now[3] == self.on_screen[3] and now[4] == self.on_screen[4]:
if now[5] % 2 == 0:
if now[5] != self.on_screen[5]:
self.meter.update()
self.on_screen = now
return False
display = watch.display