diff options
| author | Daniel Thompson <daniel@redfelineninja.org.uk> | 2020-02-23 20:19:37 (GMT) |
|---|---|---|
| committer | Daniel Thompson <daniel@redfelineninja.org.uk> | 2020-02-23 20:19:37 (GMT) |
| commit | 41647556c1e4e7c4303967e513b7d4e7e87a1313 (patch) | |
| tree | 90623ed5cc81a9a1d4113f29fc106287f06c7d28 | |
| parent | 3ba356f6c4a1b823444dd45138f46976ab252f66 (diff) | |
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.
| -rw-r--r-- | wasp/boards/simulator/watch.py | 9 | ||||
| -rw-r--r-- | 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 |
