Skip to content

Angeleno-Tech/nonblocking_timer

 
 

Repository files navigation

Documentation Status Discord Build Status

Introduction

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.

Dependencies

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.

Usage Example

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)

Contributing

Contributions are welcome! Please read our Code of Conduct before contributing to help this project stay welcoming.

About

Non-blocking timer class for CircuitPython, using time.monotonic()

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%