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.