'''
import micropython
from machine import Pin
import time
micropython.alloc_emergency_exception_buf(100)
class Foo(object):
def __init__(self, timer, led):
self.led = led
timer.callback(self.cb)
def cb(self, tim):
self.led.toggle()
red = Foo(pyb.Timer(4, freq=1), pyb.LED(1))
green = Foo(pyb.Timer(2, freq=0.8), pyb.LED(2))
'''
# Class Blink LED
from machine import Pin
from time import ticks_ms
class Blinker:
def __init__(self, pinLED, timeLedOn, timeLedOff):
self._pinLED = Pin(pinLED, Pin.OUT) #Pin(pinLED, mode=Pin.IN, pull=Pin.PULL_DOWN)
self._timeLedOn = timeLedOn
self._timeLedOff = timeLedOff
self._ledState = False
self._nextChangeTime = 0
def toggle(self):
currentTime = ticks_ms()
#print('currentTime {}'.format(currentTime))
#print('nextChangeTime {}'.format(self._nextChangeTime))
#print('ledState {}'.format(self._ledState))
if currentTime >= self._nextChangeTime:
if self._ledState == True:
self._ledState = False
self._nextChangeTime = currentTime + self._timeLedOff
else:
self._ledState = True
self._nextChangeTime = currentTime + self._timeLedOn
self._pinLED.value(self._ledState)
led1 = Blinker(2, 1000, 1000)
led2 = Blinker(4, 200, 200)
while True:
led1.toggle()
led2.toggle()