class Timer – minuteur virtuel périodique / à coup unique

La classe Timer implémente un minuteur virtuel géré par logiciel qui programme une fonction de rappel Python soit une seule fois (à coup unique), soit de manière répétée (périodique) selon une période donnée. Utilisez-la lorsque vous voulez un moyen léger et portable entre ports d’exécuter une fonction de rappel selon un échéancier – pour les fonctionnalités au niveau matériel (canaux PWM, capture d’entrée, mode encodeur, temps mort, entrée de coupure, etc.), utilisez plutôt pyb.Timer.

Disponible sur tous les ports OpenMV.

Exemple – fonction de rappel périodique à 10 Hz

from machine import Timer

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

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

Exemple – exécuter une fonction de rappel une seule fois après 2 secondes

from machine import Timer

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

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

Constructeurs

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

Construit un Timer virtuel. id doit valoir -1 (la seule valeur prise en charge). Tous les arguments nommés sont transmis à init() afin que le minuteur puisse être configuré en un seul appel.

Méthodes

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

Initialise / réinitialise le minuteur.

  • mode sélectionne ONE_SHOT (se déclenche une fois puis s’arrête) ou PERIODIC (se déclenche de manière répétée).

  • period est la période en millisecondes.

  • callback est invoquée lorsque le minuteur se déclenche. Elle reçoit l’instance Timer comme unique argument.

deinit() None

Arrête le minuteur et annule toute fonction de rappel en attente.

Constantes

ONE_SHOT: int

À passer à mode pour que le minuteur se déclenche une seule fois puis s’arrête.

PERIODIC: int

À passer à mode pour que le minuteur se déclenche de manière répétée à intervalles de period.