Main Content

waitfor

目的の実行レートを達成するためにコードの実行を一時停止

説明

waitfor(rate) は、コードが目的の実行レートに達するまで実行を一時停止します。この関数では、waitfor の呼び出し間のコード実行にかかる時間が考慮されます。

numMisses = waitfor(rate) は、呼び出し間のコード実行で実行されなかった反復回数を返します。

すべて折りたたむ

1 Hz で実行する rate オブジェクトを作成します。

r = rateControl(1);

内部の rateControl オブジェクトを使用してループを開始し、ループの実行を制御します。ループ実行前にオブジェクトをリセットしてタイマーをリセットします。反復と経過時間を出力します。

reset(r)
for i = 1:10
	time = r.TotalElapsedTime;
	fprintf('Iteration: %d - Time Elapsed: %f\n',i,time)
	waitfor(r);
end
Iteration: 1 - Time Elapsed: 0.006653
Iteration: 2 - Time Elapsed: 1.001940
Iteration: 3 - Time Elapsed: 2.001203
Iteration: 4 - Time Elapsed: 3.001142
Iteration: 5 - Time Elapsed: 4.001713
Iteration: 6 - Time Elapsed: 5.000554
Iteration: 7 - Time Elapsed: 6.000951
Iteration: 8 - Time Elapsed: 7.000873
Iteration: 9 - Time Elapsed: 8.000297
Iteration: 10 - Time Elapsed: 9.001137

各反復は 1 秒間隔で実行されます。

入力引数

すべて折りたたむ

Rate オブジェクト。ハンドルとして指定します。このオブジェクトには、目的のレートについての情報や、実行に関するその他の情報が格納されています。詳細については、rateControl (Navigation Toolbox) を参照してください。

出力引数

すべて折りたたむ

実行されなかったタスクの数。スカラーとして返されます。waitfor は、LastPeriod の時間に基づいて、Rate オブジェクトでタスクが実行されなかった回数を返します。たとえば、目的のレートが 1 Hz で最後の周期が 3.2 秒だった場合、numMisses は 3 を返します。

バージョン履歴

R2016a で導入

参考

| (Navigation Toolbox)