タイマーコンポーネントの解説
![]() |
【Timer】 このフォルダにはタイマー・カウンター設定用コンポーネントが用意されています。 |
【イベントカウンター】
クロック入力ピンのエッジを検出してカウントアップするカウンターです。8ビット・16ビット・32ビットの三種類が有ります。
カウンターがオーバーフローすると割込みを発生させる事が出来ます。カウンタ初期値を設定する事が出来ます。
【フリーカウンター】
カウンタの値に基づいて時間を計測します。Period(期間)で設定された時間が経過するとカウンターをインクリメントします。例えばPeriodを100mSに設定するとカウンターが10になった時が1秒です。
プログラムとは別に時間を計測するので、時間計測中もプログラムを実行する事が出来ます。
ボタンをクリックすると下図のようにTimmingウィンドーが表示されます。左側のInit,valueに設定したい期間を入力します。Unitは単位です。uSからsecまたは周波数として設定できます。
設定可能な期間については右側の表に表示されています。FromからTillまでの範囲はStepに表示された時間の精度で設定する事が出来ます。下図の場合512uSから1020uSの範囲で4uSの精度で設定しています。1mS/4uS=250となりますからモジュロー値は250、プリスケーラ値は64、クロックは16MHzとなります。右表のClock
pathタブをクリックすると見る事が出来ます。下図にマウスを合わせるとClock pathを表示します。
リロードまたはモジュロデバイスが選択されている場合、このプロパティをyesに設定する必要があります。フリーランニングデバイスが選択されている場合、プロパティは無視されます。
【プログラマブルパルスジェネレータ】
このコンポーネントは以下のプロパティーを設定する事で任意の周波数とパルス幅を設定できるパルスジェネレータとなります。
【PWM(Pulse Width Modulation)パルス幅変調】
周期とパルス幅を自由に設定して出力する事が出来ます。
【リアルタイム割込み共有】
ソフトウェアでリアルタイム割込みで定期的に割込みを発生させる事が出来ます。タイマー割込みと一緒に利用するようです。
【タイマー割込み】
リアルタイム割込み共有と組み合わせて定期的な割込みを発生させる事も出来るコンポーネントです。
Event.cにTI1_OnInterrupt()関数が自動生成されるのでWrite your code here ...の次の行から割込み処理を記述して利用します。時間制度はリアルタイム割込み共有で設定されます。
【タイマー出力】
IOポートにパルス(50%)を直接出力するコンポーネントです。
【ウォッチドッグタイマー】
プログラムの暴走を防止するためのタイマーです。定期的にウォッチドックカウンターをクリアして使用します。ウォッチドックカウンターがオーバーフローするとWatchDog actionで設定された処理を実行します。