From 171e6da189bf577ae3fdd7b6b032501a9efe934b Mon Sep 17 00:00:00 2001 From: Peter Hinch Date: Sat, 19 Oct 2024 14:34:31 +0100 Subject: [PATCH] primitives/encoder.py: Simplify code. --- gui/primitives/encoder.py | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/gui/primitives/encoder.py b/gui/primitives/encoder.py index 3f456c6..20d9563 100644 --- a/gui/primitives/encoder.py +++ b/gui/primitives/encoder.py @@ -16,16 +16,6 @@ from machine import Pin from select import poll, POLLIN -def ready(tsf, poller): - r = (tsf, POLLIN) - poller.register(*r) - - def is_rdy(): - return r in poller.ipoll(0) - - return is_rdy - - class Encoder: delay = 100 # Debounce/detent delay (ms) @@ -36,7 +26,6 @@ class Encoder: self._y = pin_y() self._v = 0 # Encoder value set by ISR self._tsf = asyncio.ThreadSafeFlag() - self._tsf_ready = ready(self._tsf, poll()) # Create a ready function trig = Pin.IRQ_RISING | Pin.IRQ_FALLING try: xirq = pin_x.irq(trigger=trig, handler=self._x_cb, hard=True) @@ -62,8 +51,7 @@ class Encoder: pv = 0 # Prior hardware value pcv = 0 # Prior divided value passed to callback while True: - if self._tsf_ready(): # Ensure ThreadSafeFlag is clear - await self._tsf.wait() + self._tsf.clear() await self._tsf.wait() # Wait for an edge await asyncio.sleep_ms(Encoder.delay) # Wait for motion/bounce to stop. hv = self._v # Sample hardware (atomic read).