import pyRTOS
from machine import Pin
LEDr = Pin(1, mode=Pin.OUT)
LEDv = Pin(5, mode=Pin.OUT)
LEDaz = Pin(8, mode=Pin.OUT)
LEDam = Pin(10, mode=Pin.OUT)
contador = 1
mutex = pyRTOS.Mutex()
def LED_1(self):
while True:
yield [mutex.lock(self)]
LEDr.on()
yield [pyRTOS.timeout(0.5)]
LEDr.off()
yield [pyRTOS.timeout(0.5)]
mutex.unlock()
def LED_2(self):
while True:
yield [mutex.lock(self)]
LEDv.on()
yield [pyRTOS.timeout(0.5)]
LEDv.off()
yield [pyRTOS.timeout(0.5)]
mutex.unlock()
def LED_3(self):
while True:
yield [mutex.lock(self)]
LEDaz.on()
yield [pyRTOS.timeout(0.5)]
LEDaz.off()
yield [pyRTOS.timeout(0.5)]
mutex.unlock()
def LED_4(self):
while True:
yield [mutex.lock(self)]
LEDam.on()
yield [pyRTOS.timeout(0.5)]
LEDam.off()
yield [pyRTOS.timeout(0.5)]
mutex.unlock()
# def cont(self):
# while True:
# contador += 1
# if (contador > 4):
# contador = 1
# yield [colita.send(contador)]
# def PASO(self):
# yield [colita.recv(contador)]
# if (contador == 1):
# mutex.lock(LED_1)
# elif (contador == 2):
# mutex.lock(LED_2)
# elif (contador == 3):
# mutex.lock(LED_3)
# elif (contador == 4):
# mutex.lock(LED_4)
# yield [pyRTOS.timeout(1)]
pyRTOS.add_task(pyRTOS.Task(LED_1, name="tarea_1", mailbox=True, priority 0))
pyRTOS.add_task(pyRTOS.Task(LED_2, name="tarea_2", mailbox=True, priority 1))
pyRTOS.add_task(pyRTOS.Task(LED_3, name="tarea_3", mailbox=True, priority 2))
pyRTOS.add_task(pyRTOS.Task(LED_4, name="tarea_4", mailbox=True, priority 3))
# pyRTOS.add_task(pyRTOS.Task(cont, name="contador", mailbox=True, priority = 2))
# pyRTOS.add_task(pyRTOS.Task(PASO, name="Las Paso", mailbox=True, priority = 1))
pyRTOS.add_service_routine(lambda: print("ODIO RTOS"))
pyRTOS.start()