クラス Timer -- ハードウェアタイマーの制御

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

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

注釈

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

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

コンストラクタ

class machine.Timer(id, ...)

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

初期化パラメータについては init を参照してください。

メソッド

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

タイマー操作モード。