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
デイニシャライズ。設定したタイマーを廃棄し無効化する。