class Timer – timer virtuale periodico / one-shot#

La classe Timer implementa un timer virtuale gestito via software che pianifica una callback Python una sola volta (one-shot) oppure ripetutamente (periodica) con un determinato periodo. Usala quando vuoi un modo leggero e multipiattaforma per eseguire una callback secondo una pianificazione – per le funzionalità a livello hardware (canali PWM, input capture, modalità encoder, dead-time, break input, ecc.) usa invece pyb.Timer.

Disponibile su ogni porta OpenMV.

Esempio – callback periodica a 10 Hz:

from machine import Timer

def tick(t):
    print("tick")

tim = Timer(-1)
tim.init(period=100, callback=tick)   # 100 ms = 10 Hz

Esempio – esegui una callback una sola volta dopo 2 secondi:

from machine import Timer

def fire(t):
    print("once")

Timer(-1).init(mode=Timer.ONE_SHOT, period=2000, callback=fire)

Costruttori#

class machine.Timer(id: int = -1, /, *, mode: int = PERIODIC, period: int = -1, callback: Callable[[Timer], None] | None = None)#

Costruisce un Timer virtuale. id deve essere -1 (l’unico valore supportato). Eventuali argomenti a parola chiave vengono inoltrati a init() così da poter configurare il timer in un’unica chiamata.

Metodi#

init(*, mode: int = PERIODIC, period: int = -1, callback: Callable[[Timer], None] | None = None) None#

Inizializza / reinizializza il timer.

  • mode seleziona ONE_SHOT (scatta una volta e si ferma) oppure PERIODIC (scatta ripetutamente).

  • period è il periodo in millisecondi.

  • callback viene invocata quando il timer scatta. Riceve l’istanza Timer come unico argomento.

deinit() None#

Ferma il timer e annulla qualsiasi callback in sospeso.

Costanti#

ONE_SHOT: int#

Passa a mode affinché il timer scatti una volta e poi si fermi.

PERIODIC: int#

Passa a mode affinché il timer scatti ripetutamente a intervalli di period.