From 41647556c1e4e7c4303967e513b7d4e7e87a1313 Mon Sep 17 00:00:00 2001 From: Daniel Thompson Date: Sun, 23 Feb 2020 20:19:37 +0000 Subject: [PATCH] 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. --- wasp/boards/simulator/watch.py | 9 ++++++--- wasp/clock.py | 3 ++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/wasp/boards/simulator/watch.py b/wasp/boards/simulator/watch.py index 6e7fcee..9c45902 100644 --- a/wasp/boards/simulator/watch.py +++ b/wasp/boards/simulator/watch.py @@ -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) diff --git a/wasp/clock.py b/wasp/clock.py index 97919c9..68dc52f 100644 --- a/wasp/clock.py +++ b/wasp/clock.py @@ -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