楽天市場
[無料でホームページを作成] [通報・削除依頼]

続11 8ピンPICでUSB PIC16F57_USBIO (その3)

PIC16F57で複数バイトのデータをやりとりできない原因が判明しました。
ホストプログラムのUsb.hとUsb.cppに記述されているreadReport()関数とwriteReport()関数が複数バイトに対応していないのが原因でした。

img_20141114-012450.jpg

<回路上の留意点>
以前の回路からの変更はありません。

<ホストプログラム>
デバイスとのデータのやり取り(転送量)を従来の1バイトから2バイトに変更しました。
これに伴いTrisのチェックボックスとInputのチェックボックスを増やしました。

<プログラム作成の留意点>
PORTB/PORTCの入出力選択に対応するため、PORTCの入出力状態を記憶する変数TrisCをRAM上に増設しました。
レポートデスクリプタの記述を変更しました。(転送量の変更)

データフォーマット

?ホストから
(1)1バイト目:2バイト目の8bitデータの識別に使用
0x08 --> TrisB (上位8bit)
0x04 --> TrisC (下位8bit)
0x02 --> PORTB (上位8bit)
0x01 --> PORTC (下位8bit)
(2)2バイト目:Tris/Portデータ8bit

?ホストへ
(1)1バイト目
bit7-0 PORTB入力データとTrisBの論理積8bit
(2)2バイト目
bit7-0 PORTC入力データとTrisCの論理積8bit



ダウンロード先

Bequest333のページ(別館)

http://hp.vector.co.jp/authors/VA058115/

https://drive.google.com/file/d/1DyNeaEw_l5MkH3i0By8Glg4NSjRNecs1/view?usp=drivesdk



























.