class Timer -- 仮想的な周期/ワンショットタイマー

Timer クラスは、Python のコールバックを指定した周期で 1 回だけ(ワンショット)または繰り返し(周期的)スケジュールする、ソフトウェア管理の仮想タイマーを実装します。スケジュールに従ってコールバックを実行する軽量でポート間互換な方法が必要な場合に使用します。ハードウェアレベルの機能(PWM チャネル、入力キャプチャ、エンコーダモード、デッドタイム、ブレーク入力など)には、代わりに pyb.Timer を使用してください。

すべての OpenMV ポートで利用可能です。

例 -- 周期的な 10 Hz コールバック:

from machine import Timer

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

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

例 -- 2 秒後にコールバックを 1 回実行:

from machine import Timer

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

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

コンストラクタ

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

仮想 Timer を構築します。id-1(サポートされている唯一の値)でなければなりません。キーワード引数はすべて init() に転送されるため、1 回の呼び出しでタイマーを構成できます。

メソッド

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

タイマーを初期化/再初期化します。

  • modeONE_SHOT(1 回発火して停止)または PERIODIC(繰り返し発火)を選択します。

  • period はミリ秒単位の周期です。

  • callback はタイマーが発火したときに呼び出されます。唯一の引数として Timer インスタンスを受け取ります。

deinit() None

タイマーを停止し、保留中のコールバックをキャンセルします。

定数

ONE_SHOT: int

タイマーが 1 回発火してから停止するように mode に渡します。

PERIODIC: int

タイマーが period 間隔で繰り返し発火するように mode に渡します。