高速入力信号でエンコーダーのパルス入力の演算処理をする場合、入力処理をラダーで書くとスキャンの影響が多くて、演算が正確にできない。そこで、入力があったら、演算処理をするために割込みプログラム処理をしましょう。
割込みプログラム
EIで割込みプログラムを実行する宣言をします。
FENDでプログラムを切り分けします。
以降にサブルーチンを記述します。
I**のあとは必ずIRETでメインプログラムに戻します。
![](https://gorism1010.com/wp-content/uploads/2021/05/image-2.png)
マニュアル参照:QnUCPUユーザーズマニュアル
(機能解説・プログラム基礎編)
![](https://gorism1010.com/wp-content/uploads/2021/05/image-3.png)
iQrの場合
iQrの場合は、入力ユニットの設定で割込みプログラムを使えます。
![](https://gorism1010.com/wp-content/uploads/2021/05/image-4.png)
プログラムはこのような感じです。
![](https://gorism1010.com/wp-content/uploads/2021/05/image-5.png)
Qの場合
PCパラメータ設定します。
割込みユニットが必要です。
![](https://gorism1010.com/wp-content/uploads/2021/05/image-6.png)
インテリユニットの割込みプログラム設定でX0が入力するとI60が割込みするプログラムの設定をします。
なにも設定しない場合は、0から始まりますが、ユニットが複数ある場合は、この設定をする必要があります。
![](https://gorism1010.com/wp-content/uploads/2021/05/image-7.png)
できるかなQでP
Qシリーズの高速ユニットでは割込みプログラムの処理はできないようなので
ポインタで飛ばしましょう!
![](https://gorism1010.com/wp-content/uploads/2021/05/image-8.png)
高速入力をダイレクト入力して、サブルーチン処理します。
割込みほど精度はでないと思いますが
終わりに
やはりiQrだと設定でなんでもできてしまうようです。
Qも現役なので、割込みの使い方を再確認しました。
シリアル通信処理等のインテリユニットでは、受信処理で普通に割込みプログラム使いますので、今度アップします。
コメント