třída Timer – virtuální periodický / jednorázový časovač

Třída Timer implementuje softwarově spravovaný virtuální časovač, který naplánuje Python callback buď jednou (jednorázově), nebo opakovaně (periodicky) v dané periodě. Použijte jej, když chcete odlehčený způsob přenositelný napříč porty pro spouštění callbacku podle plánu – pro funkce na hardwarové úrovni (kanály PWM, vstupní záchyt, režim enkodéru, mrtvý čas, vstup break atd.) použijte místo toho pyb.Timer.

Dostupné na každém portu OpenMV.

Příklad – periodický callback o frekvenci 10 Hz:

from machine import Timer

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

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

Příklad – spuštění callbacku jednou po 2 sekundách:

from machine import Timer

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

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

Konstruktory

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

Vytvoří virtuální Timer. id musí být -1 (jediná podporovaná hodnota). Jakékoli klíčové argumenty jsou předány metodě init(), takže lze časovač nakonfigurovat v jediném volání.

Metody

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

Inicializuje / znovu inicializuje časovač.

  • mode vybírá ONE_SHOT (spustí se jednou a zastaví) nebo PERIODIC (spouští se opakovaně).

  • period je perioda v milisekundách.

  • callback je vyvolán při spuštění časovače. Obdrží instanci Timer jako svůj jediný argument.

deinit() None

Zastaví časovač a zruší jakýkoli čekající callback.

Konstanty

ONE_SHOT: int

Předejte do mode, aby se časovač spustil jednou a poté zastavil.

PERIODIC: int

Předejte do mode, aby se časovač spouštěl opakovaně v intervalech period.