MATLAB timer - eiichiromomma/CVMLAB GitHub Wiki
MATLAB) timer object
(一定間隔で処理を繰り返す
Mathworksのリファレンスは分かりにくいのでメモ。
使い方
概要
t = timer(設定)
start(t)
の形式になる。
設定項目
設定する項目の主なものは以下の通り
- TimerFcn: 繰り返す処理。@+コールバック関数名と書く。引数を与える場合は {@コールバック関数名, 引数}とする。
- TasksToExecute: TimerFcnを繰り返す回数。リファレンスだとTasksExecutedとゴッチャになってる。
- ExecutionMode: 定期的に繰り返す場合はfixedDelay。
- Period: 繰り返す間隔で0.001秒以上。
コールバック関数
必ず引数を2つ入れる。最初のはオブジェクトそのもの(ここではtimerオブジェクトになる)、2つ目はイベントになる。処理自体に何らかの引数を与えたい場合は3つ目以降に記す。
カウント
コールバック中のカウントはtimerオブジェクトのTasksExecutedを使う。
例:引数無しの場合
以下をmyCallback.mとしてパスの通ったフォルダに保存
function myCallback(obj, event)
datestr(now, 'HH:MM:SS.FFF')
disp(obj.TasksExecuted)
コマンドウィンドウ上で、上記コールバックを2.3秒間隔で実行する
t=timer('Period', 2.3,'TasksToExecute',10, 'TimerFcn', @myCallback, 'ExecutionMode', 'fixedDelay')
例:引数ありの場合
上の例と同様にmyCallback2.mとして保存
function myCallback2(obj, event, arg1)
disp(arg1)
datestr(now, 'HH:MM:SS.FFF')
disp(obj.TasksExecuted)
コマンドウィンドウ上で、同じく2.3秒間隔で実行
t=timer('Period', 2.3,'TasksToExecute',10, 'TimerFcn', {@myCallback2, 'Test'}, 'ExecutionMode', 'fixedDelay')