From 854735a89de94a8e6b82b288482d0f7fb09d5f47 Mon Sep 17 00:00:00 2001 From: Stefan Haun <tux@netz39.de> Date: Sat, 24 Aug 2019 13:34:12 +0200 Subject: [PATCH] Make theme buttons responsive again --- preload/main.py | 46 +++++++++++++++++++++++++++++----------------- 1 file changed, 29 insertions(+), 17 deletions(-) diff --git a/preload/main.py b/preload/main.py index 53051b6a..0f5a0fd8 100644 --- a/preload/main.py +++ b/preload/main.py @@ -180,31 +180,43 @@ class Clock: def loop(self): colored = False button_pressed = False + update_counter = 0 + new_theme = self.theme while True: try: - with display.open() as disp: + if update_counter == 0: + update_counter = 10 - self.updateClock(disp) - if self.run_once: - break + with display.open() as disp: + # update the display + self.updateClock(disp) - # check for button presses - v = buttons.read(buttons.BOTTOM_LEFT | buttons.BOTTOM_RIGHT) - if v == 0: - button_pressed = False + # check theme + if new_theme != self.theme: + self.setTheme(new_theme) + self.writeConfig() - if not button_pressed and v & buttons.BOTTOM_LEFT != 0: - button_pressed = True - self.setTheme(self.theme - 1) - self.writeConfig() - elif not button_pressed and v & buttons.BOTTOM_RIGHT != 0: - button_pressed = True - self.setTheme(self.theme + 1) - self.writeConfig() + update_counter = update_counter - 1 - utime.sleep_ms(250) + if self.run_once: + break + + # check for button presses + v = buttons.read(buttons.BOTTOM_LEFT | buttons.BOTTOM_RIGHT) + if v == 0: + button_pressed = False + + if not button_pressed and v & buttons.BOTTOM_LEFT != 0: + button_pressed = True + new_theme = self.theme - 1 + elif not button_pressed and v & buttons.BOTTOM_RIGHT != 0: + button_pressed = True + new_theme = self.theme + 1 + + utime.sleep_ms(25) except OSError: + # leds.set(1, (255, 0, 0)) pass except KeyboardInterrupt: -- GitLab