人気ブログランキング | 話題のタグを見る

PICでUSBだも11(usb_host_generic実験2)

PIC24FJ64GB002を使ったUSBホストusb_host_generic実験2
ここ数日、本を読んだりしてUSBプロトコルの入り口を勉強中

usb_host_genericの関数を利用して色々なデータ値を標準出力(printf)で吐き出している
なるほど~と思うものもあれば、サッパリ検討がつかないものまである

その中で、あれ?と思ったコードを訂正
コンパイラはC30を使用で、コンパイラがおかしいのかソースコードが
おかしいのかはよく分からないが、感覚的に間違っていると思う
様は、共有体のBYTEコードを16bit移動しようとしているのだ
案の定、Class定義でusb_host_genericを動かそうとしてもうまくいかない場合がある
ワーニングが出てコンパイラを通ってしまうので、悩む人がいる事だろう
訂正箇所は、usb_host.h の中の // Section: TPL Initializers

元は、
#define INIT_CL_SC_P(c,s,p) {((c)|((s)<<8)|((p)<<16))}
で、
#define INIT_CL_SC_P(c,s,p) {(((DWORD)c)|(((DWORD)s)<<8)|(((DWORD)p)<<16))}
こうしてキャスト演算子をつけた

その後、Class定義のものでも正常にデバイスアドレスが振り分けられるようになった
MicrochipのAN1141(USB Embedded Host Stack Programmer’s Guide FIGURE 9:)
の説明でも #define INIT_CL_SC_P(c,s,p) {((c)|((s)<<8)|((p)<<16))} なってる

これで躓く人、、、いないか、、、

  by komoremi | 2009-12-18 01:31 | PIC-USBホスト

<< PICでUSBだも12(usb... PICでUSBだも10(usb... >>

SEM SKIN - DESIGN by SEM EXE