klasa Timer – wirtualny licznik czasu okresowy / jednorazowy

Klasa Timer implementuje zarządzany programowo wirtualny licznik czasu, który planuje wywołanie zwrotne Pythona jednorazowo (one-shot) lub wielokrotnie (okresowo) w zadanym okresie. Używaj jej, gdy potrzebujesz lekkiego, przenośnego między portami sposobu uruchamiania wywołania zwrotnego według harmonogramu – dla funkcji na poziomie sprzętowym (kanały PWM, przechwytywanie wejścia, tryb enkodera, czas martwy, wejście break itd.) używaj zamiast tego pyb.Timer.

Dostępne na każdym porcie OpenMV.

Przykład – okresowe wywołanie zwrotne 10 Hz:

from machine import Timer

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

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

Przykład – uruchomienie wywołania zwrotnego jednorazowo po 2 sekundach:

from machine import Timer

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

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

Konstruktory

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

Konstruuje wirtualny Timer. id musi wynosić -1 (jedyna obsługiwana wartość). Wszelkie argumenty nazwane są przekazywane do init(), dzięki czemu licznik czasu można skonfigurować w jednym wywołaniu.

Metody

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

Inicjalizuje / ponownie inicjalizuje licznik czasu.

  • mode wybiera ONE_SHOT (uruchom raz i zatrzymaj) lub PERIODIC (uruchamiaj wielokrotnie).

  • period to okres w milisekundach.

  • callback jest wywoływane, gdy licznik czasu zadziała. Otrzymuje instancję Timer jako swój jedyny argument.

deinit() None

Zatrzymuje licznik czasu i anuluje wszelkie oczekujące wywołania zwrotne.

Stałe

ONE_SHOT: int

Przekaż do mode, aby licznik czasu zadziałał raz, a następnie zatrzymał się.

PERIODIC: int

Przekaż do mode, aby licznik czasu działał wielokrotnie w odstępach period.