• 締切済み

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

みんなの回答

  • koujikuu
  • ベストアンサー率43% (429/993)
回答No.2

dec2 を指定していますが、送られてくるデータは 0~255 なので dec3 の方が良いのでは? 0~127 が上位データ  128~255 が下位データを表します また絶えずデータが送られてくるので、割り込み受信でないとオーバーフローが発生します

回答No.1

- ドキュメントは読みましたか? - speed. parity, stop-bit は センサとデバイスとで一致していますか?  そのことをどうやって確認しましたか? - デバイスのシリアルOUTとINをつなぎ(折り返し)、  デバイスから出力したものがそのまま受信されますか?

参考URL:
http://pbp3.com/downloads/PBP_Reference_Manual.pdf

関連するQ&A

専門家に質問してみよう