import time
from machine import Pin
# === Configurar LEDs ===
led_verde = Pin(0, Pin.OUT)
led_rojo = Pin(1, Pin.OUT)
led_azul = Pin(2, Pin.OUT)
# === Inicializar tiempos anteriores ===
t_anterior_A = time.ticks_ms()
t_anterior_B = time.ticks_ms()
t_anterior_C = time.ticks_ms()
# === Periodos de cada tarea ===
PERIODO_A = 1000 # ms
PERIODO_B = 2000 # ms
PERIODO_C = 3000 # ms
# === Funciones de tarea ===
def tarea_A():
global t_anterior_A
actual = time.ticks_ms()
if time.ticks_diff(actual, t_anterior_A) >= PERIODO_A:
led_verde.toggle()
print("Tarea A ejecutada:", actual)
t_anterior_A = actual
def tarea_B():
global t_anterior_B
actual = time.ticks_ms()
if time.ticks_diff(actual, t_anterior_B) >= PERIODO_B:
led_rojo.toggle()
print("Tarea B ejecutada:", actual)
t_anterior_B = actual
def tarea_C():
global t_anterior_C
actual = time.ticks_ms()
if time.ticks_diff(actual, t_anterior_C) >= PERIODO_C:
led_azul.toggle()
print("Tarea C ejecutada:", actual)
t_anterior_C = actual
# === Bucle principal cooperativo ===
while True:
tarea_A()
tarea_B()
tarea_C()
time.sleep_ms(10) # Breve retardo para evitar CPU al 100%