'''
https://provisional.binefa.com/index.php/Recull_de_pr%C3%A0ctiques_de_2n_de_DAM._Curs_2023-2024#fr-mw-1.29_Presa_de_contacte_amb_MicroWorkers_i_FreeRTOS
Jordi Binefa - 20240216
'''
from microWorkers import MicroWorkers
from time import sleep
from machine import Pin
btn = Pin(35,Pin.IN) # Botó connectat a l'entrada I35 del Wokwi i la placa IoT-02
ledIntern = Pin(2,Pin.OUT) # led intern a Wokwi i led groc a la placa IoT-02 és el 19
def jobLeds(jobName, jobArg) :
while True:
ledIntern.value(1) # Encés
sleep(0.5)
ledIntern.value(0) # Apagat
sleep(0.5)
def jobButtons(jobName, jobArg) :
currentBtn = btn()
lastBtn = currentBtn
cmpt = 0
while True:
currentBtn = btn()
if currentBtn != lastBtn:
sleep(0.05) # per a evitar rebots del botó
cmpt += 1
lastBtn = currentBtn
if currentBtn == 1:
print("%d) Botó no premut. "%cmpt)
else:
print("%d) Botó premut. "%cmpt)
print("Exemple d'ús de MicroWorkers emprant MicroPython")
workers = MicroWorkers(workersCount=2)
workers.AddJob('Tasca del led', jobLeds, arg=None, onFinished=None)
workers.AddJob('Tasca del botó' , jobButtons, arg=None, onFinished=None)
while workers.IsWorking :
sleep(0.100)