class Timer – virtuell periodisk/engångstimer

Klassen Timer implementerar en mjukvaruhanterad virtuell timer som schemalägger ett Python-återanrop antingen en gång (engång) eller upprepat (periodiskt) med en given period. Använd den när du vill ha ett lättviktigt, portöverskridande sätt att köra ett återanrop enligt ett schema – för funktioner på hårdvarunivå (PWM-kanaler, ingångsinfångning, enkoderläge, dödtid, brytingång osv.) använd pyb.Timer i stället.

Tillgänglig på alla OpenMV-portar.

Exempel – periodiskt 10 Hz-återanrop:

from machine import Timer

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

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

Exempel – kör ett återanrop en gång efter 2 sekunder:

from machine import Timer

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

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

Konstruktorer

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

Konstruera en virtuell Timer. id måste vara -1 (det enda värdet som stöds). Eventuella nyckelordsargument vidarebefordras till init() så att timern kan konfigureras i ett enda anrop.

Metoder

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

Initiera/återinitiera timern.

  • mode väljer ONE_SHOT (utlöses en gång och stoppar) eller PERIODIC (utlöses upprepat).

  • period är perioden i millisekunder.

  • callback anropas när timern utlöses. Den får Timer-instansen som sitt enda argument.

deinit() None

Stoppa timern och avbryt eventuellt väntande återanrop.

Konstanter

ONE_SHOT: int

Skicka till mode så att timern utlöses en gång och sedan stoppar.

PERIODIC: int

Skicka till mode så att timern utlöses upprepat med period-intervall.