|
 |
あるイベントを定周期(例えば10ms毎)に発生させてシミュレーションしたいのですが、どうすればいいのでしょうか? |
 |
現在シミュレータでは、定周期に割り込みを発生させる機能はありませんが、μITRONのシステムコールを使用すれば、定周期のプログラムを動作させることができます。
この場合の説明を以下に示します。
(1)定周期に実行する関数を作成します。
関数が実行されたらイベントを発生するcyctime関数を作成します。この関数をハンドラに登録します。(周期ハンドラに登録している)
例えば、以下のように関数設計書(.fnc)を作成します。

(2)定周期監視プログラムでOSシステムコールを使用し、定周期の制御をします。
act_cyc( 定周期ハンドラNo, 0 ) ---> 定周期起動を停止
act_cyc( 定周期ハンドラNo, 1 ) ---> 定周期起動を実行
※ 定周期ハンドラNoは(5)で登録したNo)
例えば、以下のようなSTMになります。
●定周期を制御するSTM

(3)OSを登録します。
[ シミュレーション ]-[ OS設定 ]-[ OS選択 ]を選択し、μITRON2.0-customを選びます。
(4)システムコールを登録する
[ シミュレーション ]-[ OS設定 ]-[ OSカスタマイズ ]を選択し、[ システムコール
]のページを開きます。「 時間管理-周期ハンドラ 」の「 周期ハンドラ活性制御 」でシステムコールを使用するにチェックします。
(5)周期ハンドラを登録します。
[ シミュレーション ]-[ OS設定 ]-[ OS資源登録 ]を選択し「 周期ハンドラ 」のページを開きます。ここで以下の設定を行います。
| 名称 |
自由に記述。(Cのシンボルとして使用できる文字) |
| タスク、ハンドラ |
関数を登録したタスクかハンドラを選択 |
| 開始関数 |
定周期に実行する関数です。 |
| 状態 |
OFFの場合は動作しません。(4)のシステムコールで動作させます。
ONの場合、起動時に定周期が実行されます。停止もする必要がないのであれば、(4)の定義は必要ありません。 |
| 時間 |
定周期の時間を設定します。単位はmsecです。 |
|
このようにして定周期の設定を行います。 |
|
|
|