• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:16bitのパラレル送信がうまくいかないで困っています。)

16bitのパラレル送信がうまくいかないで困っています

このQ&Aのポイント
  • 16bitのパラレル送信がうまくいかないで困っています。25ピンのパラレルポートからデータを送信して16個あるLEDを制御したいのですが上手くいきません。
  • 環境はC言語でデバイスはRobot I/O Port 32 DLL V5.4を使用しています。最初はGiveIoというデバイスを使用していたのですが、どうしても8bitまでしか送信できず今のデバイスに変更しました。
  • 変更したのはいいのですが、このデバイスでも8bitまでしか送信できません。多分私のプログラムのせいだと思うのですが・・・

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

そもそも何故プリンタポートから16Bit出力が出来ると思ったのでしょうか? プリンタポートの出力は、データ用8Bitと制御用信号4Bitだけです。 「Robot I/O Port 32 DLL V5.4」のI/Oポート汎用入出力関数は、自前で汎用パラレルポートを追加した場合に使う関数です。 http://www.vector.co.jp/soft/win95/prog/se127676.html ※ プリンタポートに使用している制御IC(おそらく8255系と思われる)の制御ポートに ※ Out8関数を使って制御コマンドを送り、入力用に設定されているビットを出力用に変更して ※ 16Bitの出力が可能かも知れませんが、入力用の配線がされている所にデータを出力すると制御ICが壊れるかも知れません。

shogo5121
質問者

補足

回答ありがとうございます。 16bit送信が可能と思ったのは実際に手元にこのデバイスを使用して(バージョンはV4.9)16個のLEDを制御しているツールがあるからなんです。ただ実行ファイルだけでソースがないのでOut16関数を使用してひとつの命令で送信してるかどうかはわからないんです。 Out8関数でデータ用8bitにデータ送信して16個あるLEDの下位8個にコントロールレジスタからそのデータを反映させて、と同じことを上位8個でしているのかもしれません。実際この方法なら16個のLEDを管理することは現時点で可能です。 ただ、私がしたいのはひとつの命令で16bitをLEDに反映させたいのです。 何から何まで聞いてすみませんが、もし方法があるのならばご教授願います。

関連するQ&A