Timer osztály – virtuális periodikus / egyszeri időzítő

A Timer osztály egy szoftveresen kezelt virtuális időzítőt valósít meg, amely egy Python visszahívást ütemez egyszer (egyszeri) vagy ismételten (periodikus) egy adott periódussal. Akkor használd, ha könnyűsúlyú, portok közötti módot szeretnél egy visszahívás ütemezett futtatására – hardver szintű funkciókhoz (PWM csatornák, bemeneti rögzítés, enkóder üzemmód, holtidő, megszakítási bemenet stb.) helyette a pyb.Timer osztályt használd.

Minden OpenMV porton elérhető.

Példa – periodikus 10 Hz-es visszahívás:

from machine import Timer

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

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

Példa – egy visszahívás egyszeri futtatása 2 másodperc múlva:

from machine import Timer

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

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

Konstruktorok

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

Létrehoz egy virtuális Timer objektumot. Az id értékének -1-nek kell lennie (az egyetlen támogatott érték). Bármely kulcsszavas argumentum továbbításra kerül az init() metódusnak, így az időzítő egyetlen hívással konfigurálható.

Metódusok

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

Inicializálja / újrainicializálja az időzítőt.

  • A mode a ONE_SHOT (egyszeri elsütés, majd leállás) vagy a PERIODIC (ismételt elsütés) közül választ.

  • A period a periódus ezredmásodpercben.

  • A callback akkor hívódik meg, amikor az időzítő elsül. Egyetlen argumentumként a Timer példányt kapja meg.

deinit() None

Leállítja az időzítőt, és törli a függőben lévő visszahívást.

Konstansok

ONE_SHOT: int

Add át a mode paraméternek, hogy az időzítő egyszer süljön el, majd leálljon.

PERIODIC: int

Add át a mode paraméternek, hogy az időzítő ismételten süljön el period időközönként.