class Timer – virtueller periodischer / Einmal-Timer

Die Klasse Timer implementiert einen softwareverwalteten virtuellen Timer, der einen Python-Callback entweder einmal (Einmal) oder wiederholt (periodisch) in einem gegebenen Intervall einplant. Verwenden Sie sie, wenn Sie eine leichtgewichtige, portübergreifende Möglichkeit wünschen, einen Callback nach Zeitplan auszuführen – für Funktionen auf Hardwareebene (PWM-Kanäle, Input Capture, Encoder-Modus, Totzeit, Break-Eingang usw.) verwenden Sie stattdessen pyb.Timer.

Auf jedem OpenMV-Port verfügbar.

Beispiel – periodischer Callback mit 10 Hz:

from machine import Timer

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

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

Beispiel – einen Callback einmalig nach 2 Sekunden ausführen:

from machine import Timer

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

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

Konstruktoren

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

Erzeugt einen virtuellen Timer. id muss -1 sein (der einzige unterstützte Wert). Alle Schlüsselwortargumente werden an init() weitergeleitet, sodass der Timer in einem einzigen Aufruf konfiguriert werden kann.

Methoden

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

Initialisiert / reinitialisiert den Timer.

  • mode wählt ONE_SHOT (einmal auslösen und stoppen) oder PERIODIC (wiederholt auslösen).

  • period ist die Periode in Millisekunden.

  • callback wird aufgerufen, wenn der Timer auslöst. Er erhält die Timer-Instanz als einziges Argument.

deinit() None

Stoppt den Timer und bricht jeden ausstehenden Callback ab.

Konstanten

ONE_SHOT: int

An mode übergeben, damit der Timer einmal auslöst und dann stoppt.

PERIODIC: int

An mode übergeben, damit der Timer wiederholt in period-Intervallen auslöst.