class Timer -- ハードウェアタイマーの制御

ハードウェアタイマーは、一定周期とイベントのタイミングで処理します。タイマーはおそらく MCU や SoC で最も柔軟で様々な種類のあるハードウェアであり、モデルごとに大きく異なります。MicroPython の Timer クラスは、指定した周期で(または少し経過後に1回だけ)コールバックを実行するベースライン操作を定義します。特定のボードがより標準的でない動作を定義できます(したがって他のボードへの移植性はありません)。

Timer のコールバックに関する 重要な制約 の議論を見てください。

注釈

irq ハンドラ(割り込み)内でメモリを割り当てることはできず、そのためにハンドラ内で発生した例外には多くの情報を持ちません。この制限を回避する方法については micropython.alloc_emergency_exception_buf() を参照してください。

WiPy ボードを使用している場合、このクラスの代わりに machine.TimerWiPy を参照してください。

コンストラクタ

class machine.Timer(id, ...)

指定した id の新しいタイマーオブジェクトを構築します。id が -1 の場合は、(ボードでサポートしていれば)仮想タイマーを構築します。

メソッド

Timer.init(*, mode=Timer.PERIODIC, period=-1, callback=None)

タイマーを初期化します。たとえば次のように使います:

tim.init(period=100)                         # 100ms 周期で定期的に
tim.init(mode=Timer.ONE_SHOT, period=1000)   # 1000ms 後に一度だけ

キーワード引数:

  • mode は次のいずれかになります。
    • Timer.ONE_SHOT - タイマーは、設定したチャネルの周期が経過した後に1回だけ実行します。
    • Timer.PERIODIC - タイマーは、チャネルの設定した周期で定期的に実行します。
Timer.deinit()

タイマーを初期化解除します。タイマーを停止し、タイマーのペリフェラルを無効にします。

定数

Timer.ONE_SHOT
Timer.PERIODIC

タイマー操作モード。