コメを噛め

コメを噛め

rerofumi の電子工作メモ

hatena bookmark

先日のボタンだけジョイスティックを発展させてちゃんとした 2軸+ボタン 8個なジョイスティックとして動作するディスクリプタを作成。
こないだのボタンテストよりちゃんとしたリポート構造になっているはず。

char ReportDescriptor[52] = {
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x09, 0x04, // USAGE (Joystick)
0xa1, 0x01, // COLLECTION (Application)
0x75, 0x08, // REPORT_SIZE (8)
0x15, 0x80, // LOGICAL_MINIMUM (-128)
0x25, 0x7f, // LOGICAL_MAXIMUM (127)
0x35, 0x80, // PHYSICAL_MINIMUM (-128)
0x45, 0x7f, // PHYSICAL_MAXIMUM (127)
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
0x09, 0x01, // USAGE (Pointer)
0xa1, 0x00, // COLLECTION (Physical)
0x95, 0x02, // REPORT_COUNT (2)
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
0x09, 0x30, // USAGE (X)
0x09, 0x31, // USAGE (Y)
0x81, 0x02, // INPUT (Data,Var,Abs)
0xc0, // END_COLLECTION
0x75, 0x01, // REPORT_SIZE (1)
0x95, 0x08, // REPORT_COUNT (8)
0x05, 0x09, // USAGE_PAGE (Button)
0x19, 0x01, // USAGE_MINIMUM (Button 1)
0x29, 0x08, // USAGE_MAXIMUM (Button 8)
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x25, 0x01, // LOGICAL_MAXIMUM (1)
0x81, 0x02, // INPUT (Data,Var,Abs)
0xc0 // END_COLLECTION
};

ジョイスティックのひな形ソース。(for Boost-C compiler)
pic_usb_joystick.zip
main.c の中の buffer[0]〜buffer[2] の中に値を入れるとジョイスティックの出力となる。

どんな値をインターフェースから読み込んで、加工して、buffer[0]〜buffer[2] に納めるかというのは PIC マイコンの得意技であり、ここを自由に創造するのがお楽しみなのですよん。
—–

Leave a Reply