PicBasic Proのプログラミングについて
シリアル通信、PicBasic Proによるプログラミングに関する質問です。
便宜上、PicBasic Proを以後PBPと記します。
専門的な質問のため長くなりますが、よろしくお願いいたします。
私は、東京デバイセズ製「IWS940」という筋電位を測定できるセンサモジュール(以後センサ)を用いて電子工作を行っています。このセンサは得られた筋電位をシリアル出力するもので、PICマイコン16F88のRX端子(8番ピン)に接続し、データを取り込もうとしています。
センサに関する詳細は以下の通りです。
電源電圧 5V(±5%)
消費電流 約 60mA
絶縁・アイソレーション 1kVrms(設計値)
利得 744.192
サンプリング周波数 1,638.4Hz
量子化ビット数 10bit
最小分解能 約 20μV
測定レンジ 5.375mVp-p
通信規格 シリアル 5V TTL レベル
通信速度 38,400bps パリティなし, ストップビット 1, フロー制御なし, データビット 8bit
その他の情報は長くなるのでここでは省略し、以下にセンサのデータシートへのリンクを記載しています。 → https://tokyodevices.jp/system/attachments/files/000/000/192/original/IWS940-PCB_MANUAL.pdf?1427672119
PBPのソースコードは以下の添付画像の通りなのですが、思った動作をしてくれません。
HSERIN命令を使用しているのですが、どうやら「5000,sub,」の部分が実行され、しっかり5秒間停止したのち、「55-55 55-47」と表示されます。何度実行しても同じくこの値です。
HSERIN命令は、指定した条件の受信を完了するまで処理を譲らないものです。また、時間とラベル名を指定することで、受信できない状態がその時間だけ続いたとき、指定したラベル位置へ処理をジャンプすることができます。
今はまさにその動作をしているので困っています。
オシロスコープにより、センサから出力されるパルスの振幅が約4[V]出ていることを確認しています。よって原因はプログラムにあると考えているのですが、プログラムのどの部分がどうおかしいのか自力では分かりません。
分かる方、助けてください。よろしくお願いいたします。
※画像が1枚しか添付できないため、imgurのリンクを記載します。ご参照ください。
【回路】http://i.imgur.com/haIF1Uv.jpg
【LCD表示画面】http://i.imgur.com/ADO6KFT.jpg
【ソースコード前半】http://i.imgur.com/v0rNbiU.png
【ソースコード後半】http://i.imgur.com/lYUf2gG.png
お礼
ahoo_chieokureさん、アドバイスありがとうございます。 この機種には、標準で実装されているファームウェアとは別にファームウェアがあるようなので、それをダウンロードして入れ替えたところ、スキャン状態がうまく取れるようになりました。