TEMPORITZADORS
TEMPORITZADORS
Un dels principals problemes de treballar amb programes seqüencials amb esperes (sleep) és que es bloqueja l'execució del programa i, per tant, no podem executar dues tasques alhora.
Una de les possibles solucions és utilitzar un temporitzador que "dispari" un esdeveniment cada cert temps sense bloquejar l'execució de la resta de tasques. Això es fa amb la classe Timer (no confondre amb el mòdul time). Un cop creat l'objecte temporitzador l'haurem d'inicialitzar .init() i especificar cada quant temps (period) haurà de realitzar les tasques d'una determinada funció (callback).
from machine import Pin, Timerled= Pin(23, Pin.OUT)tim = Timer(-1) # Creem un objecte temporitzador (-1???estat = False # variable que definirà l'estat del leddef canvi(t): # Per definició aquesta funció ha de tenir un argument, és l'objecte Timer que dispara la funció global estat # Per poder utilitzar la variable global "estat" en un entorn local estat = not estat led.value(estat)tim.init (period=500, callback=canvi) # Executa la funció canvi cada 500 msAlguns exemples de temporitzadors sense Timer: