class Timer – virtuaalinen jaksollinen / kertalaukaiseva ajastin

Timer -luokka toteuttaa ohjelmiston hallinnoiman virtuaalisen ajastimen, joka ajoittaa Python-takaisinkutsun joko kerran (kertalaukaisu) tai toistuvasti (jaksollinen) annetulla jaksolla. Käytä sitä, kun haluat kevyen porttien välisen tavan ajaa takaisinkutsu aikataulun mukaan – laitteistotason ominaisuuksia varten (PWM-kanavat, sisääntulon kaappaus, enkooderitila, kuollut aika, katkaisutulo jne.) käytä sen sijaan pyb.Timer.

Käytettävissä jokaisessa OpenMV-portissa.

Esimerkki – jaksollinen 10 Hz:n takaisinkutsu:

from machine import Timer

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

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

Esimerkki – aja takaisinkutsu kerran 2 sekunnin kuluttua:

from machine import Timer

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

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

Rakentajat

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

Rakentaa virtuaalisen Timer:n. id -arvon on oltava -1 (ainoa tuettu arvo). Mahdolliset avainsana-argumentit välitetään metodille init(), jotta ajastin voidaan konfiguroida yhdellä kutsulla.

Metodit

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

Alustaa / alustaa uudelleen ajastimen.

  • mode valitsee ONE_SHOT (laukaise kerran ja pysähdy) tai PERIODIC (laukaise toistuvasti).

  • period on jakso millisekunteina.

  • callback kutsutaan, kun ajastin laukeaa. Se saa Timer -instanssin ainoana argumenttinaan.

deinit() None

Pysäyttää ajastimen ja peruuttaa kaikki vireillä olevat takaisinkutsut.

Vakiot

ONE_SHOT: int

Anna parametrille mode, jotta ajastin laukeaa kerran ja sitten pysähtyy.

PERIODIC: int

Anna parametrille mode, jotta ajastin laukeaa toistuvasti period -välein.