class Timer – virtuele periodieke / one-shot timer

De klasse Timer implementeert een softwarematig beheerde virtuele timer die een Python-callback plant, ofwel eenmalig (one-shot) ofwel herhaaldelijk (periodiek) met een gegeven periode. Gebruik het wanneer je een lichtgewicht, port-overschrijdende manier wilt om een callback volgens een schema uit te voeren – gebruik voor hardware-niveau functies (PWM-kanalen, input capture, encodermodus, dead-time, break-input, enz.) in plaats daarvan pyb.Timer.

Beschikbaar op elke OpenMV-port.

Voorbeeld – periodieke callback van 10 Hz:

from machine import Timer

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

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

Voorbeeld – een callback eenmalig uitvoeren na 2 seconden:

from machine import Timer

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

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

Constructors

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

Construeert een virtuele Timer. id moet -1 zijn (de enige ondersteunde waarde). Eventuele sleutelwoordargumenten worden doorgestuurd naar init() zodat de timer in één aanroep kan worden geconfigureerd.

Methods

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

Initialiseert / herinitialiseert de timer.

  • mode selecteert ONE_SHOT (eenmaal afgaan en stoppen) of PERIODIC (herhaaldelijk afgaan).

  • period is de periode in milliseconden.

  • callback wordt aangeroepen wanneer de timer afgaat. Het ontvangt de Timer-instantie als enige argument.

deinit() None

Stopt de timer en annuleert eventuele openstaande callback.

Constants

ONE_SHOT: int

Geef dit door aan mode zodat de timer eenmaal afgaat en dan stopt.

PERIODIC: int

Geef dit door aan mode zodat de timer herhaaldelijk afgaat met intervallen van period.