内容
機械の状態によって、指定したビットパターンでブザーを鳴動させたい事はないでしょうか? |
●PDF を表示 ●コードをダウンロード ● 登録モニ タをダウンロード |
◆ 初期化ルーチン![]() ・変数[Initial]がFの時は未初期化なので、サブルーチン0にジャンプします。 ・サブルーチン0を実行すると[Initial]はTとなり次スキャンからは初期化はパスされます。 ![]() ・サブルーチン番号0で変数の初期化を行います。 ・[@DM2] は実験用のフリーパターンのデバイスです。初期値をA6A6hex (1010 0110 1010 0110bin) としています。 ・[@DM0]はフリーパターン用の鳴動時間タイマーです。3000msecとしています。後から変更可能です。 ・[@DM4] はパターン読出し間隔タイマーです。確認のし易さから300msecに設定していますが、後から変更可能です。 |
◆ 実験用デバイス
![]() ・00004行からチェック用デバイスを記述しています。 ・[@EM2]の16ビット読出し時間より[@EM0]に設定された時間が短い場合、[@MR101]をONすると[@EM0]の時間でブザーを停止しま す。 [@MR101]がOFFの時は16bits読出し完了後停止します。 ・[@MR000] [@MR001] [@MR002]の何れかをONさせると動作を開始します。 ・[@MR002]のフリーパターンの場合は、[@DM0]の鳴動時間、[@DM2]の鳴動パターンを書きかえてください。 ・鳴動時間を0にすると[@MR104]のトリガがTの間、パターン鳴動を繰り返します。手動でOFFしてください。 ・パターン読出し間隔は[@DM4]で設定できます。 |
◆ タイマー制御![]() ・00011行目:[@MR104]のトリガの立上りで鳴動時間を[@T1]に代入します。その時、設定時間が0ならば[@MR108]をONして [@MR109]の 永久鳴動フラグをラッチし、[@MR100]の鳴動タイマーフラグをONします。(鳴動時間0設定の無限鳴動動作) ・設定時間が0ではない場合、[@MR100]の鳴動タイマーフラグはタイマーがアップするとFになります。 |
◆ 鳴動パターン読出し![]() ・制御フローのトップです。[@MR100]の鳴動タイマーフラグがTならばマスクパターン[@FM0]の最上位ビットを真にしま す。 また、クロック[@T0]にパターン読込間隔時間を代入してクロックをセットします。 ・上記初期化後、次ステージへ制御を移します。(JMP命令) ・[@MR100]の鳴動タイマーフラグがFになれば[@MR104]のトリガをリセットします。 ![]() ・00025行目:[@T0]クロックはアップ後、次のスキャンでリセットされるので1スキャンのみ真になります。 ・00021〜00022行目:マスクパターン[@FM0]のビットが真になっている位置と同じ鳴動パターン[@EM2]のビット位置が真ならばブザーデ バイスをセットします。 ・00023行目:マスクパターン[@FM0]はクロック[@T0]に同期して下位へ1ビットシフトします。 ・00019行目:マスクパターン[@FM0]がオーバーフローして値が0になった時、鳴動時間タイマがアップせず[@MR100]が真のままなら [@MR101]をセットして ブザー停止後、マスクパターンを初期化してこのステージのに戻ります。 ・00024行目:鳴動時間タイマがアップして[@MR100]が偽になれば諸々のフラグをリセットして終了ですが、この時、[@MR101]がセットさ れていなければ 鳴動パターン16ビット分読出し完了後に鳴動終了になります。 |
◆ 確認 「リアルタイムチャートモニタ」で設定したパターン通りにブザーデバイスがONするか確認してください。 シミュレータ実行後、「モニタ/シミュレータ(N)」タブの「リアルタイムチャートモニタ(H)」から起動できます。 起動後、「リアルタイムチャートモニタ」の「ファイル(F)」タブから「ファイルを開く(O)」で、ダウンロードした”beep01.rcm”を開いてください。 ![]() ・上段(赤):[@MR200]ブザーデバイス ・中断(黄):[@T0]クロック ・下段(緑):[@T1]鳴動時間 ・鳴動時間を16ビット読出し完了時間より短く設定しました。 ・1回目は[@MR101] をON。2回目は[@MR101] をOFFにして実行しています。 ・[@MR101] が偽の場合、必ず16ビット読出し完了で鳴動が終了しているのが確認できます。 ・その他、条件を変えてモニタしてください。 |
●PDF を表示 ●コードをダウンロード ● 登録モニ タをダウンロード |