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.