machine.Timerクラスの日本語リファレンス情報です。

概要

ハードウェアタイマーは、タスクのトリガーやタスクの定期的な実行に使える機能です。
一定時間が経過したら割り込み処理を入れるコールバック関数として利用できます。
ソフトウェアタイマーよりも正確に実行できます。

K210 SoCには3個のタイマーがあり、各タイマーごとに4系統を設定できます。
なおMaixpyのTimerクラスはハードウェアに依存するため機能のため、K210 SoCを使っていないマイコンボードには移植できません。

コンストラクタ

class machine.Timer(id, channel, mode=Timer.MODE_ONE_SHOT, period=1000, unit=Timer.UNIT_MS, callback=None, arg=None, start=True, priority=1, div=0)

パラメータ

  • id: Timer ID, [Timer.TIMER0 ~ Timer.TIMER2]
  • channel: Timer チャンネル, [Timer.CHANNEL0 ~ Timer.CHANNEL3]
  • mode: タイマーモード, [MODE_ONE_SHOT, MODE_PERIODIC, MODE_PWM]
    • MODE_ONE_SHOT: 1回かぎりのタイマー
    • MODE_PERIODIC: 周期的に繰り返すタイマー
    • MODE_PWM: PWM機能に使うタイマー
  • period: タイマー周期。周期ごとにコールバック関数が呼び出されます (0, ~)
  • unit: タイマー周期の単位。デフォルトはミリ秒。[Timer.UNIT_S, Timer.UNIT_MS, Timer.UNIT_US, Timer.UNIT_NS]
  • callback: コールバック関数に渡すパラメータ。Timerとargが引数として渡されます。
  • arg: コールバック関数に渡す2つめの引数。
  • start: タイマーを即座に開始するか。Falseに設定した場合、start()関数で開始します。
  • priority: 割り込み優先度、1が最優先。[1,7]
  • div: 分周器。デフォルトは0。[0,255]
    • clk_timer(タイマークロック周波数) = clk_pll0(PLL0の周波数) / 2^(div+1)
    • clk_timer*period(unit:s) の設定範囲は1以上2^32未満

メソッド

init

コンストラクタと同様です。

callback_arg

コールバック関数に渡された引数を返す。

callback

コールバック関数を設定する

period

タイマー周期の設定および取得

from machine import Timer
def on_timer(timer):
    print("time up:",timer)
    print("param:",timer.callback_arg())
tim = Timer(Timer.TIMER0, Timer.CHANNEL0, mode=Timer.MODE_ONE_SHOT, period=3000, callback=on_timer, arg="hoge")
tim.period(5000)
tim.callback(on_timer)

start, stop, restart

タイマーのスタート、ストップ、リスタート

deinit/del

デイニシャライズ。設定したタイマーを廃棄し無効化する。

公式リファレンス