nonblockingtimer is a class to simplify the use of time.monotonic() when working with CircuitPython. It keeps track of the time interval bookkeeping so you can simply set a timer (or many), without using time.sleep(), and still respond to events when your timer(s) is/are sleeping.
This driver depends on:
Please ensure all dependencies are available on the CircuitPython filesystem. This is easily achieved by downloading the Adafruit library and driver bundle.
class BlinkDemo(NonBlockingTimer):
def __init__(self):
super(BlinkDemo, self).__init__(0.1)
self.led = digitalio.DigitalInOut(board.D13)
self.led.direction = digitalio.Direction.OUTPUT
self.value = True
def stop(self):
self.led.value = False
def next(self):
if (super(BlinkDemo, self).next()):
self.led.value = not (self.led.value)
blinkdemo.BlinkDemo()
while True:
blinkDemo.next()
# This is the only place you should use time.sleep: to set the overall
# "sampling rate" of your program.
time.sleep(0.001)Contributions are welcome! Please read our Code of Conduct before contributing to help this project stay welcoming.