AST
[#<Element:0x808956c20
@attr={},
@block=false,
@contents=
[#<Element:0x808956a68
@attr={},
@block=false,
@contents=["V-USB"],
@innerYATML="V-USB",
@name="link">],
@innerYATML="",
@name="autolink">,
" \343\202\222\344\275\277\343\201\243\343\201\246HID\343\203\207\343\203\220\343\202\244\343\202\271\343\202\222\344\275\234\343\202\213\343\200\202",
#<Element:0x808956220
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808955ac8
@attr={},
@block=true,
@contents=[" \343\201\252\343\201\234HID\343\201\213"],
@innerYATML=" \343\201\252\343\201\234HID\343\201\213",
@name="section">,
"USB\343\203\207\343\203\220\343\202\244\343\202\271\343\202\222\344\275\234\343\202\213\346\231\202\343\200\201\346\247\230\343\200\205\343\201\252\345\275\242\346\205\213\343\201\214\350\200\203\343\201\210\343\202\211\343\202\214\343\202\213\343\200\202",
#<Element:0x808954268
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808953840
@attr={"page"=>"http://vusb.wikidot.com/usb-device-classes"},
@block=false,
@contents=
["V-USB\343\201\256\343\203\211\343\202\255\343\203\245\343\203\241\343\203\263\343\203\210"],
@innerYATML=
"V-USB\343\201\256\343\203\211\343\202\255\343\203\245\343\203\241\343\203\263\343\203\210",
@name="link">,
"\343\201\253\343\202\210\343\202\214\343\201\260\343\200\201\344\276\213\343\201\250\343\201\227\343\201\246\346\254\241\343\201\256\343\202\210\343\201\206\343\201\252\347\211\251\343\201\214\343\201\202\343\202\213\343\200\202",
#<Element:0x808953278
@attr={},
@block=true,
@contents=
["Custom class devices",
#<Element:0x808952350
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" \345\205\250\343\201\217\346\226\260\343\201\227\343\201\204USB\343\203\207\343\203\220\343\202\244\343\202\271",
#<Element:0x808951630
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"Standard HID class device",
#<Element:0x8089507d0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" \344\270\200\350\210\254\347\232\204\343\201\252(\343\203\236\343\202\246\343\202\271\343\201\250\343\201\213\343\202\255\343\203\274\343\203\234\343\203\274\343\203\211\343\201\250\343\201\213)USB\343\203\207\343\203\220\343\202\244\343\202\271",
#<Element:0x80894fb50
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"Custom HID class device",
#<Element:0x80894ed90
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" HID\343\201\240\343\201\221\343\201\251\346\227\242\345\255\230\343\201\256\347\250\256\351\241\236\343\201\230\343\202\203\343\201\252\343\201\204\343\203\207\343\203\220\343\202\244\343\202\271",
#<Element:0x8086629b0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"Vendor type requests sent to custom HID class device",
#<Element:0x8089041f0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" HID\343\203\207\343\203\220\343\202\244\343\202\271\343\201\240\343\201\221\343\201\251\343\200\201\343\202\253\343\202\271\343\202\277\343\203\240\343\201\252\351\200\232\344\277\241\343\202\222\343\201\231\343\202\213",
#<Element:0x8089cc1a0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"CDC class devices",
#<Element:0x8089f44e8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" USB\343\202\267\343\203\252\343\202\242\343\203\253",
#<Element:0x808a09280
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"Other classes",
#<Element:0x808a224b0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" \343\201\235\343\201\256\344\273\226"],
@innerYATML=
"Custom class devices\n \345\205\250\343\201\217\346\226\260\343\201\227\343\201\204USB\343\203\207\343\203\220\343\202\244\343\202\271\nStandard HID class device\n \344\270\200\350\210\254\347\232\204\343\201\252(\343\203\236\343\202\246\343\202\271\343\201\250\343\201\213\343\202\255\343\203\274\343\203\234\343\203\274\343\203\211\343\201\250\343\201\213)USB\343\203\207\343\203\220\343\202\244\343\202\271\nCustom HID class device\n HID\343\201\240\343\201\221\343\201\251\346\227\242\345\255\230\343\201\256\347\250\256\351\241\236\343\201\230\343\202\203\343\201\252\343\201\204\343\203\207\343\203\220\343\202\244\343\202\271\nVendor type requests sent to custom HID class device\n HID\343\203\207\343\203\220\343\202\244\343\202\271\343\201\240\343\201\221\343\201\251\343\200\201\343\202\253\343\202\271\343\202\277\343\203\240\343\201\252\351\200\232\344\277\241\343\202\222\343\201\231\343\202\213\nCDC class devices\n USB\343\202\267\343\203\252\343\202\242\343\203\253\nOther classes\n \343\201\235\343\201\256\344\273\226\n",
@name="list">,
"\346\234\254\347\250\277\343\201\247\343\201\257\343\200\201\343\201\223\343\201\256\343\201\206\343\201\241\343\200\214Custom HID class device\343\200\215\343\202\222\343\202\252\343\202\271\343\202\271\343\203\241\343\201\231\343\202\213\343\200\202",
#<Element:0x808a58dd0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"HID\343\203\207\343\203\220\343\202\244\343\202\271\343\202\222\344\275\234\343\202\213\343\203\241\343\203\252\343\203\203\343\203\210\343\203\207\343\203\241\343\203\252\343\203\203\343\203\210\343\201\253\343\201\244\343\201\204\343\201\246\343\202\202\343\200\201",
#<Element:0x808a63618
@attr={"page"=>"http://vusb.wikidot.com/usb-device-classes"},
@block=false,
@contents=
["V-USB\343\201\256\343\203\211\343\202\255\343\203\245\343\203\241\343\203\263\343\203\210"],
@innerYATML=
"V-USB\343\201\256\343\203\211\343\202\255\343\203\245\343\203\241\343\203\263\343\203\210",
@name="link">,
"\343\201\253\350\250\230\350\277\260\343\201\214\343\201\202\343\202\213\343\200\202",
#<Element:0x808a655a8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"(\350\250\263\343\201\257\347\255\206\350\200\205)",
#<Element:0x808a69388
@attr={},
@block=true,
@contents=
["\343\203\241\343\203\252\343\203\203\343\203\210",
#<Element:0x808a6daa0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" Windows\343\201\247\343\201\257\343\203\211\343\203\251\343\202\244\343\203\220\343\201\214\344\270\215\350\246\201\343\201\247\343\200\201\343\201\235\343\201\256\343\201\237\343\202\201\343\202\244\343\203\263\343\202\271\343\203\210\343\203\274\343\203\253\343\201\214\344\270\215\350\246\201",
#<Element:0x808a716a0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\343\203\207\343\203\241\343\203\252\343\203\203\343\203\210",
#<Element:0x808a75890
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" \343\202\204\343\202\212\343\201\250\343\202\212\343\201\231\343\202\213\343\203\207\343\203\274\343\202\277\343\201\257",
#<Element:0x808a78fb8
@attr={},
@block=false,
@contents=["ReportDescriptor"],
@innerYATML="ReportDescriptor",
@name="link">,
"\343\201\247\345\256\243\350\250\200\343\201\225\343\202\214\343\202\213\345\277\205\350\246\201\343\201\214\343\201\202\343\202\213\343\200\202\343\201\235\343\201\256\343\201\237\343\202\201\343\203\207\343\203\274\343\202\277\343\201\257\345\233\272\345\256\232\351\225\267\343\201\247\343\201\202\343\202\213\345\277\205\350\246\201\343\201\214\343\201\202\343\202\213\343\200\202",
#<Element:0x808a7acc8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" \345\205\210\351\240\255\343\201\253\343\202\265\343\202\244\343\202\272\343\202\222\345\205\245\343\202\214\343\202\213\344\272\213\343\201\253\343\202\210\343\201\243\343\201\246\345\233\236\351\201\277\343\201\247\343\201\215\343\202\213\343\200\202",
#<Element:0x808a7e0d0
@attr={},
@block=false,
@contents=
[#<Element:0x808a7e940
@attr={},
@block=false,
@contents=["AVR"],
@innerYATML="AVR",
@name="link">],
@innerYATML="",
@name="autolink">,
"-Doper\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210\343\202\222\350\246\213\343\202\210\343\200\202",
#<Element:0x808a80dd0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" BSD\343\201\252\343\201\251\343\201\256OS\343\201\247\343\201\257\343\200\201OS\343\201\214HID\343\203\207\343\203\220\343\202\244\343\202\271\343\202\222\347\256\241\347\220\206\343\201\227\343\201\246\343\201\204\343\202\213\343\201\237\343\202\201libusb\343\201\214\344\275\277\343\201\210\343\201\252\343\201\204\343\200\202",
#<Element:0x808a84ed0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" Windows\343\201\250UNIX\347\263\273OS\343\201\247HID\343\202\222\344\275\277\343\201\206\343\201\237\343\202\201\343\201\256API\343\201\214\351\201\225\343\201\206\343\200\202Windows\343\201\247\343\201\257libusb\343\201\214\344\275\277\343\201\210\343\201\252\343\201\204\343\200\202",
#<Element:0x808a88f30
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" \350\244\207\351\233\221\343\201\253\343\201\252\343\202\213\343\200\202"],
@innerYATML=
"\343\203\241\343\203\252\343\203\203\343\203\210\n Windows\343\201\247\343\201\257\343\203\211\343\203\251\343\202\244\343\203\220\343\201\214\344\270\215\350\246\201\343\201\247\343\200\201\343\201\235\343\201\256\343\201\237\343\202\201\343\202\244\343\203\263\343\202\271\343\203\210\343\203\274\343\203\253\343\201\214\344\270\215\350\246\201\n\343\203\207\343\203\241\343\203\252\343\203\203\343\203\210\n \343\202\204\343\202\212\343\201\250\343\202\212\343\201\231\343\202\213\343\203\207\343\203\274\343\202\277\343\201\257ReportDescriptor\343\201\247\345\256\243\350\250\200\343\201\225\343\202\214\343\202\213\345\277\205\350\246\201\343\201\214\343\201\202\343\202\213\343\200\202\343\201\235\343\201\256\343\201\237\343\202\201\343\203\207\343\203\274\343\202\277\343\201\257\345\233\272\345\256\232\351\225\267\343\201\247\343\201\202\343\202\213\345\277\205\350\246\201\343\201\214\343\201\202\343\202\213\343\200\202\n \345\205\210\351\240\255\343\201\253\343\202\265\343\202\244\343\202\272\343\202\222\345\205\245\343\202\214\343\202\213\344\272\213\343\201\253\343\202\210\343\201\243\343\201\246\345\233\236\351\201\277\343\201\247\343\201\215\343\202\213\343\200\202AVR-Doper\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210\343\202\222\350\246\213\343\202\210\343\200\202\n BSD\343\201\252\343\201\251\343\201\256OS\343\201\247\343\201\257\343\200\201OS\343\201\214HID\343\203\207\343\203\220\343\202\244\343\202\271\343\202\222\347\256\241\347\220\206\343\201\227\343\201\246\343\201\204\343\202\213\343\201\237\343\202\201libusb\343\201\214\344\275\277\343\201\210\343\201\252\343\201\204\343\200\202\n Windows\343\201\250UNIX\347\263\273OS\343\201\247HID\343\202\222\344\275\277\343\201\206\343\201\237\343\202\201\343\201\256API\343\201\214\351\201\225\343\201\206\343\200\202Windows\343\201\247\343\201\257libusb\343\201\214\344\275\277\343\201\210\343\201\252\343\201\204\343\200\202\n \350\244\207\351\233\221\343\201\253\343\201\252\343\202\213\343\200\202\n",
@name="list">,
"\343\201\223\343\201\256\343\202\210\343\201\206\343\201\253\345\210\227\346\214\231\343\201\231\343\202\213\343\201\250\343\203\207\343\203\241\343\203\252\343\203\203\343\203\210\343\201\256\346\226\271\343\201\214\345\244\232\343\201\204\343\202\210\343\201\206\343\201\253\350\246\213\343\201\210\343\202\213\343\200\202",
#<Element:0x808a91c98
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\343\201\227\343\201\213\343\201\227\343\200\201\343\201\223\343\202\214\343\202\211\343\201\256\343\203\207\343\203\241\343\203\252\343\203\203\343\203\210\343\201\257\343\201\235\343\202\214\343\201\236\343\202\214\350\247\243\346\261\272\343\201\247\343\201\215\343\202\213\343\200\202",
#<Element:0x808a95e60
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"1\343\201\244\347\233\256\343\201\256\343\203\207\343\203\241\343\203\252\343\203\203\343\203\210\343\201\257\343\203\211\343\202\255\343\203\245\343\203\241\343\203\263\343\203\210\343\201\253\343\202\202\343\201\202\343\202\213\343\202\210\343\201\206\343\201\253\345\205\210\351\240\255\343\201\253\343\202\265\343\202\244\343\202\272\343\202\222\345\205\245\343\202\214\343\202\214\343\201\260\343\202\210\343\201\204\343\200\202",
#<Element:0x808a9a000
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"2\343\201\244\347\233\256\343\201\256\343\203\207\343\203\241\343\203\252\343\203\203\343\203\210\343\200\2013\343\201\244\347\233\256\343\201\256\343\203\207\343\203\241\343\203\252\343\203\203\343\203\210\343\201\253\343\201\244\343\201\204\343\201\246\343\201\257\343\200\201\343\201\235\343\202\214\343\201\236\343\202\214\343\201\256OS\343\201\247\343\202\275\343\203\225\343\203\210\343\202\246\343\202\250\343\202\242\343\202\222\344\275\234\343\202\212\343\201\252\343\201\212\343\201\225\343\201\252\343\201\221\343\202\214\343\201\260\343\201\252\343\202\211\343\201\252\343\201\204\344\272\213\343\202\222\346\204\217\345\221\263\343\201\231\343\202\213\343\201\214\343\200\201\344\270\200\346\226\271\343\201\247\343\201\273\343\201\250\343\202\223\343\201\251\343\201\256OS\343\201\247\343\201\256HID\346\223\215\344\275\234API\343\201\257(USB\343\202\222\347\224\237\343\201\247\346\211\261\343\201\206API\343\201\253\346\257\224\343\201\271\343\202\214\343\201\260)\347\260\241\345\215\230\343\201\253\343\201\252\343\201\243\343\201\246\343\201\212\343\202\212\343\200\201\343\201\276\343\201\237\343\200\201\345\220\204OS\343\201\256HID\343\202\222\346\212\275\350\261\241\345\214\226\343\201\231\343\202\213\343\203\251\343\202\244\343\203\226\343\203\251\343\203\252\343\202\222\344\275\234\343\202\213\344\272\213\343\202\202\345\217\257\350\203\275\343\201\247\343\201\257\343\201\252\343\201\204\343\201\213\343\201\250\346\200\235\343\202\217\343\202\214\343\202\213\343\200\202",
#<Element:0x808a9e010
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"3\343\201\244\347\233\256\343\201\256\343\203\207\343\203\241\343\203\252\343\203\203\343\203\210\343\201\247\343\201\202\343\202\213\345\256\237\350\243\205\343\201\214\350\244\207\351\233\221\343\201\253\343\201\252\343\202\213\347\202\271\343\201\253\343\201\244\343\201\204\343\201\246\343\201\257\343\200\201\346\234\254\347\250\277\343\201\247\350\247\243\350\252\254\343\202\222\350\241\214\343\201\206\343\200\202",
#<Element:0x808aa1d00
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808aa3b50
@attr={},
@block=true,
@contents=
[" USB\343\203\207\343\203\220\343\202\244\343\202\271\343\201\256\344\275\234\346\210\220(\343\202\275\343\203\225\343\203\210\343\202\246\343\202\250\343\202\242\347\267\250)"],
@innerYATML=
" USB\343\203\207\343\203\220\343\202\244\343\202\271\343\201\256\344\275\234\346\210\220(\343\202\275\343\203\225\343\203\210\343\202\246\343\202\250\343\202\242\347\267\250)",
@name="section">,
#<Element:0x808aa8330
@attr={},
@block=true,
@contents=
[" \344\275\225\343\202\222\344\275\234\343\202\213\343\201\213\357\274\237"],
@innerYATML=
" \344\275\225\343\202\222\344\275\234\343\202\213\343\201\213\357\274\237",
@name="subsection">,
#<Element:0x808aadab0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\345\276\214\343\201\247\346\233\270\343\201\217",
#<Element:0x808ab1778
@attr={},
@block=true,
@contents=
["\343\202\263\343\203\263\343\203\210\343\203\255\343\203\274\343\203\253\343\202\250\343\203\263\343\203\211\343\203\235\343\202\244\343\203\263\343\203\210(ENDPOINT 0)",
#<Element:0x808ab56c0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" ",
#<Element:0x808ab8c80
@attr={},
@block=false,
@contents=["ReportDescriptor"],
@innerYATML="ReportDescriptor",
@name="link">,
#<Element:0x808abaaf8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\343\203\207\343\203\274\343\202\277\347\224\250\343\202\250\343\203\263\343\203\211\343\203\235\343\202\244\343\203\263\343\203\210(ENDPOINT 1)"],
@innerYATML=
"\343\202\263\343\203\263\343\203\210\343\203\255\343\203\274\343\203\253\343\202\250\343\203\263\343\203\211\343\203\235\343\202\244\343\203\263\343\203\210(ENDPOINT 0)\n ReportDescriptor\n\343\203\207\343\203\274\343\202\277\347\224\250\343\202\250\343\203\263\343\203\211\343\203\235\343\202\244\343\203\263\343\203\210(ENDPOINT 1)\n",
@name="list">,
"",
#<Element:0x808ac4c38
@attr={},
@block=true,
@contents=
[" ",
#<Element:0x808b60c00
@attr={},
@block=false,
@contents=
[#<Element:0x808b72428
@attr={},
@block=false,
@contents=["V-USB"],
@innerYATML="V-USB",
@name="link">],
@innerYATML="",
@name="autolink">,
"\343\201\256\345\205\245\346\211\213"],
@innerYATML=" V-USB\343\201\256\345\205\245\346\211\213",
@name="subsection">,
#<Element:0x808ba3438
@attr={},
@block=false,
@contents=
[#<Element:0x808ba3e60
@attr={},
@block=false,
@contents=["V-USB"],
@innerYATML="V-USB",
@name="link">],
@innerYATML="",
@name="autolink">,
"\343\202\275\343\203\225\343\203\210\343\202\246\343\202\250\343\202\242\346\234\254\344\275\223\343\201\257\344\273\245\344\270\213\343\201\213\343\202\211\343\203\200\343\202\246\343\203\263\343\203\255\343\203\274\343\203\211\343\201\247\343\201\215\343\202\213\343\200\202",
#<Element:0x808bae270
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808bba9f8
@attr={},
@block=false,
@contents=
[#<Element:0x808bbc078
@attr={},
@block=false,
@contents=["V-USB"],
@innerYATML="V-USB",
@name="link">],
@innerYATML="",
@name="autolink">,
"\343\201\257GPL\343\201\250\343\202\263\343\203\236\343\203\274\343\202\267\343\203\243\343\203\253\343\203\251\343\202\244\343\202\273\343\203\263\343\202\271\343\201\256\343\203\207\343\203\245\343\202\242\343\203\253\343\203\251\343\202\244\343\202\273\343\203\263\343\202\271\343\201\253\343\201\252\343\201\243\343\201\246\343\201\204\343\202\213\343\200\202",
#<Element:0x808bc45c0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"GPL\343\202\222\351\201\270\346\212\236\343\201\231\343\202\214\343\201\260\347\204\241\346\226\231\343\201\247\344\275\277\343\201\206\344\272\213\343\201\214\343\201\247\343\201\215\343\202\213\343\200\202",
#<Element:0x808bd4358
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808bdfc30
@attr={},
@block=false,
@contents=["http://www.obdev.at/products/vusb/index.html"],
@innerYATML="http://www.obdev.at/products/vusb/index.html",
@name="link">,
#<Element:0x808be7ef8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808bf0620
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\344\273\212\345\233\236\343\201\257vusb-20090822.zip\343\202\222\343\203\200\343\202\246\343\203\263\343\203\255\343\203\274\343\203\211\343\201\227\343\201\246\344\275\277\347\224\250\343\201\227\343\201\237\343\200\202",
#<Element:0x808c4a2b0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808ca9c38
@attr={},
@block=true,
@contents=
[" \343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210\343\201\256\344\275\234\346\210\220"],
@innerYATML=
" \343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210\343\201\256\344\275\234\346\210\220",
@name="subsection">,
"\343\201\276\343\201\232\343\201\257\343\201\223\343\202\214\343\202\222\343\202\263\343\203\263\343\203\221\343\202\244\343\203\253\343\201\247\343\201\215\343\202\213\343\202\210\343\201\206\343\201\253\343\201\231\343\202\213\343\200\202",
#<Element:0x808cd5928
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\347\247\201\343\201\257",
#<Element:0x808cedcf8
@attr=
{"page"=>"http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725"},
@block=false,
@contents=["AVR Studio 4"],
@innerYATML="AVR Studio 4",
@name="link">,
"\343\201\250",
#<Element:0x808cf65b0
@attr={"page"=>"http://winavr.sourceforge.net/download.html"},
@block=false,
@contents=["Win-AVR 20090313"],
@innerYATML="Win-AVR 20090313",
@name="link">,
"\343\202\222\345\210\251\347\224\250\343\201\227\343\201\237\343\200\202",
#<Element:0x808d0c158
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808d21418
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\343\201\276\343\201\232\343\200\201",
#<Element:0x808d2fb80
@attr={},
@block=false,
@contents=
[#<Element:0x808d30468
@attr={},
@block=false,
@contents=["AVR"],
@innerYATML="AVR",
@name="link">],
@innerYATML="",
@name="autolink">,
" Studio\343\202\222\344\275\277\343\201\243\343\201\246\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210\343\202\222\344\275\234\346\210\220\343\201\231\343\202\213\343\200\202\343\202\202\343\201\241\343\202\215\343\202\223\343\203\201\343\203\203\343\203\227\343\201\253\343\201\257",
#<Element:0x808d31840
@attr={},
@block=false,
@contents=
[#<Element:0x808d32150
@attr={},
@block=false,
@contents=["ATTiny2313"],
@innerYATML="ATTiny2313",
@name="link">],
@innerYATML="",
@name="autolink">,
"\343\202\222\343\203\201\343\203\247\343\202\244\343\202\271(\347\254\221)",
#<Element:0x808d34a18
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808d36bd8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210\343\202\222\344\275\234\346\210\220\343\201\227\343\201\237\343\202\211\343\200\201\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210\343\201\256\343\202\252\343\203\227\343\202\267\343\203\247\343\203\263\343\201\213\343\202\211\343\202\257\343\203\255\343\203\203\343\202\257\343\202\222\350\250\255\345\256\232\343\201\227\343\201\246\343\201\212\343\201\217\343\200\202",
#<Element:0x808d3af58
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"F_CPU\345\256\232\346\225\260\343\201\214\350\250\255\345\256\232\343\201\225\343\202\214\343\201\246\343\201\204\343\201\252\343\201\204\343\201\250\343\200\201",
#<Element:0x808d3ea40
@attr={},
@block=false,
@contents=
[#<Element:0x808d3f350
@attr={},
@block=false,
@contents=["V-USB"],
@innerYATML="V-USB",
@name="link">],
@innerYATML="",
@name="autolink">,
"\343\201\256\343\202\263\343\203\263\343\203\221\343\202\244\343\203\253\343\201\253\345\244\261\346\225\227\343\201\231\343\202\213\343\200\202",
#<Element:0x808d41b00
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808d440f8
@attr={},
@block=true,
@contents=
[" ",
#<Element:0x808d47b68
@attr={},
@block=false,
@contents=
[#<Element:0x808d48388
@attr={},
@block=false,
@contents=["V-USB"],
@innerYATML="V-USB",
@name="link">],
@innerYATML="",
@name="autolink">,
"\343\201\256\350\247\243\345\207\215"],
@innerYATML=" V-USB\343\201\256\350\247\243\345\207\215",
@name="subsection">,
#<Element:0x808d4da18
@attr={},
@block=false,
@contents=
[#<Element:0x808d4e378
@attr={},
@block=false,
@contents=["V-USB"],
@innerYATML="V-USB",
@name="link">],
@innerYATML="",
@name="autolink">,
"\343\201\256\343\203\221\343\203\203\343\202\261\343\203\274\343\202\270\343\201\213\343\202\211\345\277\205\350\246\201\343\201\252\343\203\225\343\202\241\343\202\244\343\203\253\343\202\222\345\217\226\343\202\212\345\207\272\343\201\227\343\200\201\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210\343\201\253\350\277\275\345\212\240\343\201\231\343\202\213\343\200\202",
#<Element:0x808d50f38
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\345\205\267\344\275\223\347\232\204\343\201\253\343\201\257usbdrv\343\203\207\343\202\243\343\203\254\343\202\257\343\203\210\343\203\252\343\202\222\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210\343\201\256\343\203\207\343\202\243\343\203\254\343\202\257\343\203\210\343\203\252\343\201\253\345\205\245\343\202\214\343\202\213\343\200\202",
#<Element:0x808d54ef8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808d58468
@attr={},
@block=false,
@contents=
[#<Element:0x808d58bc0
@attr={},
@block=false,
@contents=["AVR"],
@innerYATML="AVR",
@name="link">],
@innerYATML="",
@name="autolink">,
" Studio\343\201\213\343\202\211usbdrv\343\203\207\343\202\243\343\203\254\343\202\257\343\203\210\343\203\252\343\201\256 oddebug, usbdrv.c, usbdrvasm.asm \343\202\222Source files\343\201\250\343\201\227\343\201\246\350\277\275\345\212\240\343\201\231\343\202\213\343\200\202",
#<Element:0x808d5b078
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\343\201\276\343\201\237\343\200\201oddebug.h, usbdrv.h, usbportability.h\343\202\222\343\203\230\343\203\203\343\203\200\343\203\225\343\202\241\343\202\244\343\203\253\343\201\250\343\201\227\343\201\246\350\277\275\345\212\240\343\201\231\343\202\213\343\200\202",
#<Element:0x808d5f358
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808d61db0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\343\201\223\343\201\256\346\256\265\351\232\216\343\201\247\346\254\241\343\201\256\343\202\210\343\201\206\343\201\252\346\247\213\346\210\220\343\201\253\343\201\252\343\201\243\343\201\246\343\201\204\343\202\213\343\200\202",
#<Element:0x808d66040
@attr={},
@block=true,
@contents=
["project directory",
#<Element:0x808d6a438
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" project.c",
#<Element:0x808d6e718
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" usbdrv",
#<Element:0x808d72c78
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" oddebug.c",
#<Element:0x808d77048
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" oddebug.h",
#<Element:0x808d7b030
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" usbdrv.c",
#<Element:0x808d7f1f8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" \343\201\235\343\201\256\344\273\226\343\203\225\343\202\241\343\202\244\343\203\253"],
@innerYATML=
"project directory\n project.c\n usbdrv\n oddebug.c\n oddebug.h\n usbdrv.c\n \343\201\235\343\201\256\344\273\226\343\203\225\343\202\241\343\202\244\343\203\253\n",
@name="list">,
"",
#<Element:0x808d878a8
@attr={},
@block=true,
@contents=[" usbconfig.h \343\201\256\344\275\234\346\210\220"],
@innerYATML=" usbconfig.h \343\201\256\344\275\234\346\210\220",
@name="subsection">,
"\344\275\234\346\210\220\343\201\231\343\202\213USB\346\251\237\345\231\250\343\201\256\350\250\255\345\256\232\343\202\222\350\241\214\343\201\206 usbconfig.h \343\202\222\344\275\234\346\210\220\343\201\231\343\202\213\343\200\202",
#<Element:0x808d8e838
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\343\201\223\343\201\256\343\203\225\343\202\241\343\202\244\343\203\253\343\201\256\343\203\206\343\203\263\343\203\227\343\203\254\343\203\274\343\203\210\343\201\214 usbconfig-prototype.h \343\201\250\343\201\204\343\201\206\343\203\225\343\202\241\343\202\244\343\203\253\345\220\215\343\201\247usbdrv\343\203\207\343\202\243\343\203\254\343\202\257\343\203\210\343\203\252\343\201\253\343\201\202\343\202\213\343\201\250\346\200\235\343\201\206\343\201\256\343\201\247\343\201\223\343\202\214\343\202\222\343\202\263\343\203\224\343\203\274\343\201\227\343\201\246\344\275\277\343\201\206\343\200\202",
#<Element:0x808d92960
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210\343\201\253\343\202\202\350\277\275\345\212\240\343\201\227\343\201\246\343\201\212\343\201\223\343\201\206\343\200\202",
#<Element:0x808de84f0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808e3fdb8
@attr={},
@block=true,
@contents=
["project directory",
#<Element:0x808e5a398
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" project.c",
#<Element:0x808e597e0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" usbconfig.h ",
#<Element:0x808e58c78
@attr={},
@block=false,
@contents=
["<",
"- NEW",
#<Element:0x808e580e8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" usbdrv",
#<Element:0x808e57580
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" oddebug.c",
#<Element:0x808e569f0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" oddebug.h",
#<Element:0x808e55e38
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" usbdrv.c",
#<Element:0x808e552a8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" \343\201\235\343\201\256\344\273\226\343\203\225\343\202\241\343\202\244\343\203\253"],
@innerYATML=
"<- NEW\n usbdrv\n oddebug.c\n oddebug.h\n usbdrv.c\n \343\201\235\343\201\256\344\273\226\343\203\225\343\202\241\343\202\244\343\203\253\n",
@name="">],
@innerYATML=
"project directory\n project.c\n usbconfig.h <- NEW\n usbdrv\n oddebug.c\n oddebug.h\n usbdrv.c\n \343\201\235\343\201\256\344\273\226\343\203\225\343\202\241\343\202\244\343\203\253\n",
@name="list">,
"",
#<Element:0x808e52a58
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\345\244\211\346\233\264\343\201\231\343\201\271\343\201\215\347\202\271\343\201\257\346\254\241\343\201\256\351\200\232\343\202\212",
#<Element:0x808e51f68
@attr={},
@block=true,
@contents=
[" \343\203\217\343\203\274\343\203\211\343\202\246\343\202\250\343\202\242\350\250\255\345\256\232"],
@innerYATML=
" \343\203\217\343\203\274\343\203\211\343\202\246\343\202\250\343\202\242\350\250\255\345\256\232",
@name="subsubsection">,
"Hardware Config\343\202\273\343\202\257\343\202\267\343\203\247\343\203\263\343\202\222\344\275\234\343\202\213\343\203\217\343\203\274\343\203\211\343\202\246\343\202\250\343\202\242\343\201\253\345\220\210\343\202\217\343\201\233\343\201\246\345\244\211\346\233\264\343\201\231\343\202\213\343\200\202",
#<Element:0x808e50bb8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"PORTD2\343\201\250PORTD4\343\201\247\351\200\232\344\277\241\343\202\222\343\201\231\343\202\213\343\201\256\343\201\214\343\203\207\343\203\225\343\202\251\343\203\253\343\203\210\343\201\253\343\201\252\343\201\243\343\201\246\343\201\204\343\202\213\343\201\256\343\201\247\343\200\201",
#<Element:0x808e4ffd8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\347\247\201\343\201\257\351\232\243\345\220\210\343\201\206\343\202\210\343\201\206\343\201\253PORTD2\343\201\250PORTD3\343\201\253\343\201\231\343\202\213\344\272\213\343\201\214\345\244\232\343\201\204\343\200\202",
#<Element:0x808e5a8e8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808e5a1b8
@attr={},
@block=true,
@contents=[" HID\343\201\256\350\250\255\345\256\232"],
@innerYATML=" HID\343\201\256\350\250\255\345\256\232",
@name="subsubsection">,
"Functional Range\343\202\273\343\202\257\343\202\267\343\203\247\343\203\263\343\201\253\350\250\255\345\256\232\343\201\231\343\202\213\343\200\202",
#<Element:0x808e58d18
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808e58570
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\351\200\232\344\277\241\347\224\250\343\201\256\343\203\221\343\202\244\343\203\227\343\201\247\343\201\202\343\202\213ENDPOINT\343\202\222\351\200\201\345\217\227\344\277\241\347\224\250\343\201\253\344\275\234\343\202\213\343\200\202",
#<Element:0x808e578f0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\343\201\223\343\202\214\343\202\222ENDPOINT 1\343\201\250\345\221\274\343\201\266\343\200\202",
#<Element:0x808e56c98
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\345\205\267\344\275\223\347\232\204\343\201\253\343\201\257USB_CFG_HAVE_INTRIN_ENDPOINT\343\202\2221\343\201\253\343\201\231\343\202\213\343\200\202",
#<Element:0x808e56040
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808e558c0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\343\201\223\343\202\214\343\202\222\344\275\277\343\201\243\343\201\246\345\217\227\344\277\241\343\201\247\343\201\215\343\202\213\343\202\210\343\201\206\343\201\253",
#<Element:0x808e54c68
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"USB_CFG_IMPLEMENT_FN_WRITEOUT\343\202\2221\343\201\253\343\201\231\343\202\213\343\200\202",
#<Element:0x808e54038
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808e53980
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\343\201\276\343\201\237\343\200\201\346\234\200\345\210\235\343\201\213\343\202\211\343\201\202\343\202\213ENDPOINT 0\343\202\222\344\275\277\343\201\243\343\201\246\343\202\202\345\217\227\344\277\241\343\201\247\343\201\215\343\202\213\343\202\210\343\201\206\343\201\253\343\200\202",
#<Element:0x808e52da0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"USB_CFG_IMPLEMENT_FN_WRITE\343\202\2021\343\201\253\343\201\231\343\202\213\343\200\202",
#<Element:0x808e52120
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808e51978
@attr={},
@block=true,
@contents=[" USB\350\250\255\345\256\232"],
@innerYATML=" USB\350\250\255\345\256\232",
@name="subsubsection">,
"\343\201\276\343\201\237\343\200\201USB\346\251\237\345\231\250\350\207\252\344\275\223\343\202\222\350\250\255\345\256\232\343\201\231\343\201\271\343\201\217Device Description\343\202\273\343\202\257\343\202\267\343\203\247\343\203\263\343\202\222\346\233\270\343\201\215\345\244\211\343\201\210\343\202\213\343\200\202",
#<Element:0x808e50168
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808e4f628
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"USB\346\251\237\345\231\250\343\201\257\343\201\235\343\202\214\343\201\236\343\202\214\343\203\246\343\203\213\343\203\274\343\202\257\343\201\252ID\343\202\222\344\275\277\343\201\206\345\277\205\350\246\201\343\201\214\343\201\202\343\202\213\343\200\202",
#<Element:0x808e4eac0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"GPL\347\211\210\343\202\222\344\275\277\343\201\206\344\272\272\345\220\221\343\201\221\343\201\253\343\201\257",
#<Element:0x808e4e160
@attr={},
@block=false,
@contents=
[#<Element:0x808e4dfd0
@attr={},
@block=false,
@contents=["V-USB"],
@innerYATML="V-USB",
@name="link">],
@innerYATML="",
@name="autolink">,
"\343\202\222\344\275\234\343\201\243\343\201\246\343\202\213Objective develipment\347\244\276\343\201\256ID\343\201\214\344\275\277\343\201\243\343\201\246\343\202\202\350\211\257\343\201\204\344\272\213\343\201\253\343\201\252\343\201\243\343\201\246\343\201\204\343\202\213\343\200\202",
#<Element:0x808e4d918
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\350\251\263\343\201\227\343\201\217\343\201\257usbdrv\343\203\207\343\202\243\343\203\254\343\202\257\343\203\210\343\203\252\343\201\253\343\201\202\343\202\213USB-IDs-for-free.txt\343\202\222\350\252\255\343\202\202\343\201\206\343\200\202",
#<Element:0x808e4cdb0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808e4c6f8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\343\201\276\343\201\202\343\200\201\350\207\252\345\210\206\343\201\247\344\275\277\343\201\206\343\202\210\343\201\206\343\201\256\346\251\237\345\231\250\343\201\257\343\200\201\343\201\237\343\201\276\343\201\237\343\201\276\343\201\235\343\201\256ID\343\201\250\345\220\214\343\201\230\346\251\237\345\231\250\343\202\222\350\207\252\345\210\206\343\201\214\346\214\201\343\201\243\343\201\246\343\201\204\343\201\252\343\201\204\351\231\220\343\202\212\345\233\260\343\202\211\343\201\252\343\201\204\343\201\256\343\201\247\343\200\201\347\211\271\343\201\253\346\260\227\343\202\222\343\201\244\343\201\221\343\202\213\345\277\205\350\246\201\343\201\257\343\201\252\343\201\225\343\201\235\343\201\206\343\200\202",
#<Element:0x808e4bb90
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808e4b4d8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"USB\346\251\237\345\231\250\343\201\256ID\343\201\257 USB_CFG_VENDOR_ID \343\201\250 USB_CFG_DEVICE_ID \343\201\247\350\250\255\345\256\232\343\201\231\343\202\213\343\200\202",
#<Element:0x808e4a970
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\343\201\276\343\201\232\343\200\201USB_CFG_VENDOR_ID\343\201\240\343\201\214\343\200\201\343\201\223\343\202\214\343\201\257Objective development\347\244\276\343\201\256\343\202\222\344\275\277\343\201\206\343\201\252\343\202\211\343\201\235\343\201\256\343\201\276\343\201\276\343\201\247\343\201\204\343\201\204\343\200\202",
#<Element:0x808e49de0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"USB_CFG_DEVICE_ID \343\201\257\351\201\251\345\256\234\350\250\255\345\256\232\343\201\227\343\202\210\343\201\206\343\200\202",
#<Element:0x808e49278
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808e48bc0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\343\201\223\343\201\256ID\343\201\257\345\276\214\343\201\247Windows\343\201\256\343\203\207\343\203\220\343\202\244\343\202\271\343\203\236\343\203\215\343\203\274\343\202\270\343\203\243\343\201\213\343\202\211\347\242\272\350\252\215\343\201\227\343\201\237\343\202\212\343\200\201PC\343\201\213\343\202\211\343\201\256\346\216\245\347\266\232\346\231\202\343\201\253\344\275\277\343\201\243\343\201\237\343\202\212\343\201\231\343\202\213\343\201\256\343\201\247\343\200\201\350\246\232\343\201\210\343\201\246\343\201\212\343\201\223\343\201\206\343\200\202",
#<Element:0x808e48058
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808e479a0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"USB_CFG_VENDOR_NAME\343\202\204USB_CFG_DEVICE_NAME\343\201\257\351\201\251\345\256\234\350\250\255\345\256\232\343\201\231\343\202\213\343\200\202(\343\201\227\343\201\252\343\201\217\343\201\246\343\202\202\345\213\225\343\201\217)",
#<Element:0x808e46e38
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808e46780
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\343\201\244\343\201\216\343\201\253\343\201\223\343\201\256\346\251\237\345\231\250\343\202\222HID\343\201\240\343\201\250\350\252\215\350\255\230\343\201\225\343\201\233\343\202\213\343\201\237\343\202\201\343\201\256\350\250\255\345\256\232\343\201\214\343\201\202\343\202\213\343\200\202",
#<Element:0x808e45c18
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"PC\343\201\257USB\346\251\237\345\231\250\343\201\256\343\202\277\343\202\244\343\203\227\343\202\222\343\202\257\343\203\251\343\202\271\343\201\250\343\201\204\343\201\206\345\275\242\343\201\247\345\210\244\345\210\245\343\201\231\343\202\213\343\200\202",
#<Element:0x808e450b0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"HID\343\201\256\345\240\264\345\220\210\343\201\257\346\251\237\345\231\250\345\205\250\344\275\223\343\201\256\343\202\257\343\203\251\343\202\271\343\202\2220\343\201\253\343\200\201\343\202\244\343\203\263\343\202\277\343\203\274\343\203\225\343\202\247\343\203\274\343\202\271\343\201\256\343\202\257\343\203\251\343\202\271\343\202\2223\343\201\253\343\201\231\343\202\213\343\200\202",
#<Element:0x808e44548
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"USB_CFG_DEVICE_CLASS\343\201\2530\343\202\222\343\200\201USB_CFG_INTERFACE_CLASS\343\201\2533\343\202\222\350\250\255\345\256\232\343\201\231\343\202\213\343\200\202",
#<Element:0x808e439e0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808e43328
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\346\234\200\345\210\235\343\201\253\343\202\202\350\247\246\343\202\214\343\201\237\343\201\214\343\200\201HID\343\201\257",
#<Element:0x808e429c8
@attr={},
@block=false,
@contents=["ReportDescriptor"],
@innerYATML="ReportDescriptor",
@name="link">,
"\343\201\250\343\201\204\343\201\206\347\211\251\343\201\214\345\277\205\350\246\201\343\201\240\343\200\202",
#<Element:0x808e42428
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\343\201\223\343\201\256",
#<Element:0x808e41ac8
@attr={},
@block=false,
@contents=["ReportDescriptor"],
@innerYATML="ReportDescriptor",
@name="link">,
"\343\201\256\343\202\265\343\202\244\343\202\272\343\202\222\343\201\223\343\201\256\343\203\225\343\202\241\343\202\244\343\203\253\343\201\247\350\250\255\345\256\232\343\201\231\343\202\213\345\277\205\350\246\201\343\201\214\343\201\202\343\202\213\343\200\202",
#<Element:0x808e41528
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\343\201\276\343\201\240",
#<Element:0x808e40bc8
@attr={},
@block=false,
@contents=["ReportDescriptor"],
@innerYATML="ReportDescriptor",
@name="link">,
"\343\202\222\344\275\234\343\201\243\343\201\246\343\201\252\343\201\204\343\201\256\343\201\247\343\200\201\343\201\223\343\201\223\343\201\247\343\201\257\351\201\251\345\275\223\343\201\252\345\200\244\343\202\222 USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH \343\201\253\350\250\255\345\256\232\343\201\227\343\201\246\343\201\212\343\201\217\343\200\202",
#<Element:0x808e40628
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808e3ff70
@attr={},
@block=true,
@contents=[" usbdrv.h\343\201\256\344\277\256\346\255\243"],
@innerYATML=" usbdrv.h\343\201\256\344\277\256\346\255\243",
@name="subsection">,
"usbdrv.h\343\201\213\343\202\211\345\205\210\347\250\213\343\201\256usbconfig.h\343\202\222include\343\201\227\343\201\246\343\201\204\343\202\213\343\201\256\343\201\240\343\201\214\343\200\201",
#<Element:0x808e3ebc0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\343\201\223\343\202\214\343\201\256include\345\205\210\343\201\214usbdrv\343\203\207\343\202\243\343\203\254\343\202\257\343\203\210\343\203\252\343\201\253\343\201\252\343\201\243\343\201\246\343\201\204\343\202\213\343\200\202",
#<Element:0x808e3e058
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\347\247\201\343\201\257usbconfig.h\343\202\222usbdrv\343\201\256\345\244\226\343\201\253\347\275\256\343\201\204\343\201\237\343\201\256\343\201\247\343\200\201\345\244\211\346\233\264\343\201\227\343\201\246\343\201\212\343\201\217\343\200\202",
#<Element:0x808e3d4c8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808e3ce88
@attr={},
@block=true,
@contents=
["",
#<Element:0x808e3c2d0
@attr={},
@block=false,
@contents=["include \"../usbconfig.h\""],
@innerYATML="include \"../usbconfig.h\"",
@name="sumi">],
@innerYATML="#include \"../usbconfig.h\"\n",
@name="code">,
"",
#<Element:0x808e3aca0
@attr={},
@block=true,
@contents=
[" main\343\203\227\343\203\255\343\202\260\343\203\251\343\203\240\343\202\222\346\233\270\343\201\217\343\200\202"],
@innerYATML=
" main\343\203\227\343\203\255\343\202\260\343\203\251\343\203\240\343\202\222\346\233\270\343\201\217\343\200\202",
@name="subsection">,
"\343\202\204\343\201\243\343\201\250\346\234\254\344\275\223\343\201\240\343\200\201\346\234\254\344\275\223\343\201\257",
#<Element:0x808e39b20
@attr={},
@block=false,
@contents=
[#<Element:0x808e39990
@attr={},
@block=false,
@contents=["AVR"],
@innerYATML="AVR",
@name="link">],
@innerYATML="",
@name="autolink">,
" Studio\343\201\214\350\207\252\345\213\225\347\224\237\346\210\220\343\201\227\343\201\237",
#<Element:0x808e39328
@attr={},
@block=false,
@contents=
["<",
"project\345\220\215>.c\343\201\253\346\233\270\343\201\217\344\272\213\343\201\253\343\201\231\343\202\213\343\200\202",
#<Element:0x808e38838
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\343\201\276\343\201\232\343\200\201",
#<Element:0x808e37ed8
@attr={},
@block=false,
@contents=
[#<Element:0x808e37d48
@attr={},
@block=false,
@contents=["V-USB"],
@innerYATML="V-USB",
@name="link">],
@innerYATML="",
@name="autolink">,
"\343\202\222include\343\201\231\343\202\213\343\200\202\343\201\202\343\201\250\343\200\201\345\211\262\343\202\212\350\276\274\343\201\277\343\201\257\345\277\205\351\240\210\343\201\243\343\201\275\343\201\204\343\201\256\343\201\247\343\201\223\343\202\214\343\202\202\345\205\245\343\202\214\343\202\213\343\200\202"],
@innerYATML=
"<project\345\220\215>.c\343\201\253\346\233\270\343\201\217\344\272\213\343\201\253\343\201\231\343\202\213\343\200\202\n\343\201\276\343\201\232\343\200\201V-USB\343\202\222include\343\201\231\343\202\213\343\200\202\343\201\202\343\201\250\343\200\201\345\211\262\343\202\212\350\276\274\343\201\277\343\201\257\345\277\205\351\240\210\343\201\243\343\201\275\343\201\204\343\201\256\343\201\247\343\201\223\343\202\214\343\202\202\345\205\245\343\202\214\343\202\213\343\200\202\n",
@name="">,
#<Element:0x808e37460
@attr={},
@block=true,
@contents=
["",
#<Element:0x808e368f8
@attr={},
@block=false,
@contents=["include "],
@innerYATML="include ",
@name="sumi">,
#<Element:0x808e35d68
@attr={},
@block=false,
@contents=
["<",
"avr/interrupt.h>",
#<Element:0x808e35250
@attr={},
@block=false,
@contents=["include \"./usbdrv/usbdrv.h\""],
@innerYATML="include \"./usbdrv/usbdrv.h\"",
@name="sumi">],
@innerYATML="<avr/interrupt.h>\n#include \"./usbdrv/usbdrv.h\"\n",
@name="">],
@innerYATML="#include <avr/interrupt.h>\n#include \"./usbdrv/usbdrv.h\"\n",
@name="code">,
"",
#<Element:0x808e33338
@attr={},
@block=true,
@contents=
[" ",
#<Element:0x808e32aa0
@attr={},
@block=false,
@contents=["ReportDescriptor"],
@innerYATML="ReportDescriptor",
@name="link">,
"\343\202\222\344\275\234\343\202\213"],
@innerYATML=" ReportDescriptor\343\202\222\344\275\234\343\202\213",
@name="subsubsection">,
"\343\201\276\343\201\232\343\200\201",
#<Element:0x808e31e20
@attr={},
@block=false,
@contents=["ReportDescriptor"],
@innerYATML="ReportDescriptor",
@name="link">,
"\343\202\222\344\275\234\343\202\213\343\200\202",
#<Element:0x808e31880
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808e311c8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\344\275\225\345\272\246\343\201\213\343\201\241\343\202\207\343\201\223\343\201\241\343\202\207\343\201\223\345\207\272\343\201\246\343\201\215\343\201\246\343\201\204\343\202\213\343\201\214",
#<Element:0x808e30868
@attr={},
@block=false,
@contents=["ReportDescriptor"],
@innerYATML="ReportDescriptor",
@name="link">,
"\343\201\257HID\343\201\256\351\200\232\344\277\241\345\206\205\345\256\271\343\202\222\350\252\254\346\230\216\343\201\231\343\202\213\343\201\237\343\202\201\343\201\256\343\202\202\343\201\256\343\201\240\343\200\202",
#<Element:0x808e302c8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\343\201\223\343\202\214\343\202\222\344\275\234\343\202\213\343\201\256\343\201\214HID\343\202\222\344\275\234\343\202\213\344\270\212\343\201\247\343\201\256\344\270\200\343\201\244\343\201\256\343\203\235\343\202\244\343\203\263\343\203\210\343\201\240\343\200\202",
#<Element:0x808e2f760
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808e2f0a8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\347\234\237\351\235\242\347\233\256\343\201\253",
#<Element:0x808e2e748
@attr={},
@block=false,
@contents=["ReportDescriptor"],
@innerYATML="ReportDescriptor",
@name="link">,
"\343\202\222\344\275\234\343\202\213\343\201\256\343\201\247\343\201\202\343\202\214\343\201\260\343\200\201USB\343\201\256\347\267\217\346\234\254\345\256\266\343\201\247\343\201\202\343\202\213usb.org\343\201\253HID descriptor Tool\343\201\250\343\201\204\343\201\206\347\211\251\343\201\214\343\201\202\343\202\212\343\200\201GUI\343\201\247\344\275\234\343\202\214\343\202\213\343\200\202",
#<Element:0x808e2e1a8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808e2d898
@attr={},
@block=false,
@contents=["http://www.usb.org/developers/hidpage/"],
@innerYATML="http://www.usb.org/developers/hidpage/",
@name="link">,
#<Element:0x808e2d2f8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808e2cc40
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\344\270\215\347\234\237\351\235\242\347\233\256\343\201\253\343\201\204\343\201\217\343\201\252\343\202\211\343\200\201\344\273\245\344\270\213\343\201\2538\343\203\220\343\202\244\343\203\210\343\201\256\343\203\221\343\202\261\343\203\203\343\203\210\343\202\222\351\200\201\345\217\227\344\277\241\343\201\231\343\202\213\346\231\202\343\201\256",
#<Element:0x808e2c2e0
@attr={},
@block=false,
@contents=["ReportDescriptor"],
@innerYATML="ReportDescriptor",
@name="link">,
"\343\201\256\344\276\213\343\202\222\347\275\256\343\201\204\343\201\246\343\201\212\343\201\217\343\201\256\343\201\247\343\200\201\343\202\263\343\203\224\343\203\232\343\201\227\343\202\210\343\201\206\343\200\202",
#<Element:0x808e2bd40
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808e2b688
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\343\201\204\343\201\232\343\202\214\343\201\253\343\201\227\343\202\215\343\200\201\343\201\223\343\201\256",
#<Element:0x808e2ad28
@attr={},
@block=false,
@contents=["ReportDescrptor"],
@innerYATML="ReportDescrptor",
@name="link">,
"\343\201\256\351\225\267\343\201\225\343\202\222usbconfig.h\343\201\253\346\233\270\343\201\217\345\277\205\350\246\201\343\201\214\343\201\202\343\202\213\343\200\202",
#<Element:0x808e2a788
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\345\277\230\343\202\214\343\201\232\343\201\253\343\200\202",
#<Element:0x808e29c20
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808e295e0
@attr={},
@block=true,
@contents=
[" \351\200\201\345\217\227\344\277\2418\343\203\220\343\202\244\343\203\210\343\203\221\343\202\261\343\203\203\343\203\210"],
@innerYATML=
" \351\200\201\345\217\227\344\277\2418\343\203\220\343\202\244\343\203\210\343\203\221\343\202\261\343\203\203\343\203\210",
@name="subsubsubsection">,
#<Element:0x808e28910
@attr={},
@block=true,
@contents=
["PROGMEM char usb",
#<Element:0x808e27d08
@attr={},
@block=false,
@contents=["HidReportDescriptor"],
@innerYATML="HidReportDescriptor",
@name="link">,
"[34] = {",
#<Element:0x808e27768
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0x06, 0x00, 0xff, // USAGE_PAGE (Vendor Defined Page 1)",
#<Element:0x808e269d0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0x09, 0x01, // USAGE (Vendor Usage 1)",
#<Element:0x808e25e68
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0xa1, 0x01, // COLLECTION (Application)",
#<Element:0x808e25300
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0x15, 0x00, // LOGICAL_MINIMUM (0)",
#<Element:0x808e24798
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0x26, 0xff, 0x00, // LOGICAL_MAXIMUM (255)",
#<Element:0x808e23c30
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0x75, 0x08, // REPORT_SIZE (8)",
#<Element:0x808e230c8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0x95, 0x08, // REPORT_COUNT (8)",
#<Element:0x808e22560
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0x09, 0x00, // USAGE (Undefined)",
#<Element:0x808e219f8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0x81, 0x02, // INPUT (Data,Var,Abs)",
#<Element:0x808e20e90
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0x15, 0x00, // LOGICAL_MINIMUM (0)",
#<Element:0x808e20328
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0x26, 0xff, 0x00, // LOGICAL_MAXIMUM (255)",
#<Element:0x808e1f7c0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0x75, 0x08, // REPORT_SIZE (8)",
#<Element:0x808e1ec58
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0x95, 0x08, // REPORT_COUNT (8)",
#<Element:0x808e1e0f0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0x09, 0x00, // USAGE (Undefined)",
#<Element:0x808e1d588
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0x91, 0x02, // OUTPUT (Data,Var,Abs)",
#<Element:0x808e1ca20
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0xc0 // END_COLLECTION",
#<Element:0x808e1beb8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"};"],
@innerYATML=
"PROGMEM char usbHidReportDescriptor[34] = {\n 0x06, 0x00, 0xff, // USAGE_PAGE (Vendor Defined Page 1)\n 0x09, 0x01, // USAGE (Vendor Usage 1)\n 0xa1, 0x01, // COLLECTION (Application)\n 0x15, 0x00, // LOGICAL_MINIMUM (0)\n 0x26, 0xff, 0x00, // LOGICAL_MAXIMUM (255)\n 0x75, 0x08, // REPORT_SIZE (8)\n 0x95, 0x08, // REPORT_COUNT (8)\n 0x09, 0x00, // USAGE (Undefined)\n 0x81, 0x02, // INPUT (Data,Var,Abs)\n 0x15, 0x00, // LOGICAL_MINIMUM (0)\n 0x26, 0xff, 0x00, // LOGICAL_MAXIMUM (255)\n 0x75, 0x08, // REPORT_SIZE (8)\n 0x95, 0x08, // REPORT_COUNT (8)\n 0x09, 0x00, // USAGE (Undefined)\n 0x91, 0x02, // OUTPUT (Data,Var,Abs)\n 0xc0 // END_COLLECTION\n};\n",
@name="code">,
"",
#<Element:0x808e1a8b0
@attr={},
@block=true,
@contents=
[" \345\217\227\344\277\241(PC to HID)\343\201\240\343\201\2218\343\203\220\343\202\244\343\203\210\343\203\221\343\202\261\343\203\203\343\203\210"],
@innerYATML=
" \345\217\227\344\277\241(PC to HID)\343\201\240\343\201\2218\343\203\220\343\202\244\343\203\210\343\203\221\343\202\261\343\203\203\343\203\210",
@name="subsubsubsection">,
#<Element:0x808e19c08
@attr={},
@block=true,
@contents=
["PROGMEM char usb",
#<Element:0x808e190f0
@attr={},
@block=false,
@contents=["HidReportDescriptor"],
@innerYATML="HidReportDescriptor",
@name="link">,
"[21] = {",
#<Element:0x808e18b50
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0x06, 0x00, 0xff, // USAGE_PAGE (Vendor Defined Page 1)",
#<Element:0x808e17fe8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0x09, 0x01, // USAGE (Vendor Usage 1)",
#<Element:0x808e17480
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0xa1, 0x01, // COLLECTION (Application)",
#<Element:0x808e16918
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0x15, 0x00, // LOGICAL_MINIMUM (0)",
#<Element:0x808e15db0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0x26, 0xff, 0x00, // LOGICAL_MAXIMUM (255)",
#<Element:0x808e15248
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0x75, 0x08, // REPORT_SIZE (8)",
#<Element:0x808e146e0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0x95, 0x08, // REPORT_COUNT (8)",
#<Element:0x808e13b78
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0x09, 0x00, // USAGE (Undefined)",
#<Element:0x808e13010
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0x91, 0x02, // OUTPUT (Data,Var,Abs)",
#<Element:0x808e124a8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0xc0 // END_COLLECTION",
#<Element:0x808e11940
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"};"],
@innerYATML=
"PROGMEM char usbHidReportDescriptor[21] = {\n 0x06, 0x00, 0xff, // USAGE_PAGE (Vendor Defined Page 1)\n 0x09, 0x01, // USAGE (Vendor Usage 1)\n 0xa1, 0x01, // COLLECTION (Application)\n 0x15, 0x00, // LOGICAL_MINIMUM (0)\n 0x26, 0xff, 0x00, // LOGICAL_MAXIMUM (255)\n 0x75, 0x08, // REPORT_SIZE (8)\n 0x95, 0x08, // REPORT_COUNT (8)\n 0x09, 0x00, // USAGE (Undefined)\n 0x91, 0x02, // OUTPUT (Data,Var,Abs)\n 0xc0 // END_COLLECTION\n};\n",
@name="code">,
"",
#<Element:0x808e10338
@attr={},
@block=true,
@contents=
[" \351\200\201\344\277\241(HID to PC)\343\201\240\343\201\2218\343\203\220\343\202\244\343\203\210\343\203\221\343\202\261\343\203\203\343\203\210"],
@innerYATML=
" \351\200\201\344\277\241(HID to PC)\343\201\240\343\201\2218\343\203\220\343\202\244\343\203\210\343\203\221\343\202\261\343\203\203\343\203\210",
@name="subsubsubsection">,
#<Element:0x808e0f690
@attr={},
@block=true,
@contents=
["PROGMEM char usb",
#<Element:0x808e0eb78
@attr={},
@block=false,
@contents=["HidReportDescriptor"],
@innerYATML="HidReportDescriptor",
@name="link">,
"[21] = {",
#<Element:0x808e0e5d8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0x06, 0x00, 0xff, // USAGE_PAGE (Vendor Defined Page 1)",
#<Element:0x808e0da70
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0x09, 0x01, // USAGE (Vendor Usage 1)",
#<Element:0x808e0cf08
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0xa1, 0x01, // COLLECTION (Application)",
#<Element:0x808e0c3a0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0x15, 0x00, // LOGICAL_MINIMUM (0)",
#<Element:0x808e0b838
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0x26, 0xff, 0x00, // LOGICAL_MAXIMUM (255)",
#<Element:0x808e0acd0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0x75, 0x08, // REPORT_SIZE (8)",
#<Element:0x808e0a168
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0x95, 0x08, // REPORT_COUNT (8)",
#<Element:0x808e09600
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0x09, 0x00, // USAGE (Undefined)",
#<Element:0x808e08a98
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0x81, 0x02, // INPUT (Data,Var,Abs)",
#<Element:0x808e07f30
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" 0xc0 // END_COLLECTION",
#<Element:0x808e073c8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"};"],
@innerYATML=
"PROGMEM char usbHidReportDescriptor[21] = {\n 0x06, 0x00, 0xff, // USAGE_PAGE (Vendor Defined Page 1)\n 0x09, 0x01, // USAGE (Vendor Usage 1)\n 0xa1, 0x01, // COLLECTION (Application)\n 0x15, 0x00, // LOGICAL_MINIMUM (0)\n 0x26, 0xff, 0x00, // LOGICAL_MAXIMUM (255)\n 0x75, 0x08, // REPORT_SIZE (8)\n 0x95, 0x08, // REPORT_COUNT (8)\n 0x09, 0x00, // USAGE (Undefined)\n 0x81, 0x02, // INPUT (Data,Var,Abs)\n 0xc0 // END_COLLECTION\n};\n",
@name="code">,
"",
#<Element:0x808e05dc0
@attr={},
@block=true,
@contents=
[" main\351\226\242\346\225\260(\343\201\250\343\203\207\343\203\274\343\202\277\351\200\201\344\277\241)"],
@innerYATML=
" main\351\226\242\346\225\260(\343\201\250\343\203\207\343\203\274\343\202\277\351\200\201\344\277\241)",
@name="subsubsection">,
"\346\254\241\343\201\253main\351\226\242\346\225\260\343\202\222\343\201\213\343\201\217\343\200\201\343\201\276\343\201\232\346\234\200\344\275\216\351\231\220\343\203\220\343\203\274\343\202\270\343\203\247\343\203\263",
#<Element:0x808e04ab0
@attr={},
@block=true,
@contents=
["int main(void){",
#<Element:0x808e03e58
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" usbInit();",
#<Element:0x808e032f0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" sei();",
#<Element:0x808e02788
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" for(;;){",
#<Element:0x808e01c20
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" usbPoll();",
#<Element:0x808e010b8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" }",
#<Element:0x808e00550
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"}"],
@innerYATML=
"int main(void){\n usbInit();\n sei();\n for(;;){\n usbPoll();\n }\n}\n",
@name="code">,
"\343\201\276\343\201\202\343\200\201usbInit\343\201\227\343\201\246usbPoll\343\201\227\343\201\246\343\202\213\343\201\240\343\201\221\343\200\202",
#<Element:0x808dfef70
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808dfe8b8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\346\254\241\343\201\253\351\200\201\344\277\241\343\202\202\343\201\231\343\202\213\343\203\220\343\203\274\343\202\270\343\203\247\343\203\263",
#<Element:0x808dfddc8
@attr={},
@block=true,
@contents=
["static char reportBuffer[8]; ",
#<Element:0x808dfd080
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"int main(void){",
#<Element:0x808dfc518
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" usbInit();",
#<Element:0x808dfb9b0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" sei();",
#<Element:0x808dfae48
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" for(;;){",
#<Element:0x808dfa2e0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" usbPoll();",
#<Element:0x808df9778
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" if(usb",
#<Element:0x808df8e18
@attr={},
@block=false,
@contents=["InterruptIsReady"],
@innerYATML="InterruptIsReady",
@name="link">,
"()){ // Can I send packet?",
#<Element:0x808df8878
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" if(\343\203\221\343\202\261\343\203\203\343\203\210\343\202\222\351\200\201\343\202\213\346\260\227\343\201\214\343\201\202\343\202\213\343\201\213\357\274\237) {",
#<Element:0x808df7d10
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" \343\203\221\343\202\261\343\203\203\343\203\210\343\201\256\346\272\226\345\202\231",
#<Element:0x808df71a8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" usb",
#<Element:0x808df6820
@attr={},
@block=false,
@contents=["SetInterrupt"],
@innerYATML="SetInterrupt",
@name="link">,
"((void*)&reportBuffer, sizeof(reportBuffer));",
#<Element:0x808df6280
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" }",
#<Element:0x808df5718
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" }",
#<Element:0x808df4bb0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"}"],
@innerYATML=
"static char reportBuffer[8]; \nint main(void){\n usbInit();\n sei();\n for(;;){\n usbPoll();\n if(usbInterruptIsReady()){ // Can I send packet?\n if(\343\203\221\343\202\261\343\203\203\343\203\210\343\202\222\351\200\201\343\202\213\346\260\227\343\201\214\343\201\202\343\202\213\343\201\213\357\274\237) {\n \343\203\221\343\202\261\343\203\203\343\203\210\343\201\256\346\272\226\345\202\231\n usbSetInterrupt((void*)&reportBuffer, sizeof(reportBuffer));\n }\n }\n}\n",
@name="code">,
"\351\200\201\343\202\213\343\203\207\343\203\274\343\202\277\343\202\222reportBuffer\343\201\250\343\201\227\343\201\246\346\272\226\345\202\231\343\201\231\343\202\213\343\200\202",
#<Element:0x808df32d8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"usb",
#<Element:0x808df2978
@attr={},
@block=false,
@contents=["InterruptIsReady"],
@innerYATML="InterruptIsReady",
@name="link">,
"()\351\226\242\346\225\260\343\201\247USB\343\201\214\343\203\207\343\203\274\343\202\277\343\202\222\351\200\201\343\202\214\343\202\213\347\212\266\346\205\213\343\201\253\343\201\202\343\202\213\343\201\213\343\202\222\350\252\277\343\201\271\343\201\246\343\200\201",
#<Element:0x808df23d8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\351\200\201\343\202\214\343\202\213\343\202\210\343\201\206\343\201\247\343\201\202\343\202\214\343\201\260\343\200\201usb",
#<Element:0x808df1a78
@attr={},
@block=false,
@contents=["SetInterrupt"],
@innerYATML="SetInterrupt",
@name="link">,
"()\351\226\242\346\225\260\343\201\247\351\200\201\343\202\213\343\200\202",
#<Element:0x808df14d8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808df0e20
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"usbPoll()\351\226\242\346\225\260\343\201\25710ms\344\273\245\345\206\205\343\201\253\345\221\274\343\201\260\343\201\252\343\201\221\343\202\214\343\201\260\343\201\252\343\202\211\343\201\252\343\201\204\343\202\211\343\201\227\343\201\204\343\200\202",
#<Element:0x808df02b8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808defc78
@attr={},
@block=true,
@contents=
[" usb",
#<Element:0x808def3e0
@attr={},
@block=false,
@contents=["FunctionSetup"],
@innerYATML="FunctionSetup",
@name="link">,
"\351\226\242\346\225\260"],
@innerYATML=" usbFunctionSetup\351\226\242\346\225\260",
@name="subsubsection">,
"\343\202\263\343\203\263\343\203\210\343\203\255\343\203\274\343\203\253\343\202\250\343\203\263\343\203\211\343\203\235\343\202\244\343\203\263\343\203\210(ENDPOINT 0)\343\201\253\346\235\245\343\201\237\343\203\221\343\202\261\343\203\203\343\203\210\343\202\222\345\207\246\347\220\206\343\201\231\343\202\213\351\226\242\346\225\260\343\201\240\343\201\250\346\200\235\343\201\206(\350\207\252\344\277\241\343\201\252\343\201\227)",
#<Element:0x808dee558
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808dedea0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\344\273\212\345\233\236\345\256\237\350\243\205\343\201\227\343\201\237\343\201\204\346\251\237\350\203\275\343\201\257\346\254\241\343\201\2563\343\201\244",
#<Element:0x808ded3b0
@attr={},
@block=true,
@contents=
["\346\235\245\343\201\237HID\343\203\221\343\202\261\343\203\203\343\203\210\343\202\222usb",
#<Element:0x808deca00
@attr={},
@block=false,
@contents=["FunctionWrite"],
@innerYATML="FunctionWrite",
@name="link">,
"\343\201\253\345\207\246\347\220\206\343\201\225\343\201\233\343\202\213\343\200\202",
#<Element:0x808dec460
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"GET_IDLE\343\203\221\343\202\261\343\203\203\343\203\210\343\202\222\345\207\246\347\220\206\343\201\231\343\202\213",
#<Element:0x808deb8f8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"SET_IDLE\343\203\221\343\202\261\343\203\203\343\203\210\343\202\222\345\207\246\347\220\206\343\201\231\343\202\213"],
@innerYATML=
"\346\235\245\343\201\237HID\343\203\221\343\202\261\343\203\203\343\203\210\343\202\222usbFunctionWrite\343\201\253\345\207\246\347\220\206\343\201\225\343\201\233\343\202\213\343\200\202\nGET_IDLE\343\203\221\343\202\261\343\203\203\343\203\210\343\202\222\345\207\246\347\220\206\343\201\231\343\202\213\nSET_IDLE\343\203\221\343\202\261\343\203\203\343\203\210\343\202\222\345\207\246\347\220\206\343\201\231\343\202\213\n",
@name="list">,
"",
#<Element:0x808dea368
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"GET_IDLE\343\201\250SET_IDLE\343\201\257\345\207\246\347\220\206\343\201\227\343\201\252\343\201\204\343\201\250Windows\343\201\247\350\252\215\350\255\230\343\201\225\343\202\214\343\201\252\343\201\204\343\201\277\343\201\237\343\201\204\343\200\202",
#<Element:0x808de97d8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\343\201\235\343\202\214\344\273\245\345\244\226\343\201\256\343\203\221\343\202\261\343\203\203\343\203\210\343\201\257\347\204\241\350\246\226\343\201\231\343\202\213\343\200\202",
#<Element:0x808de8c70
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808de8630
@attr={},
@block=true,
@contents=
["static uchar idleRate;",
#<Element:0x808de7870
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"usb",
#<Element:0x808de6f10
@attr={},
@block=false,
@contents=["MsgLen"],
@innerYATML="MsgLen",
@name="link">,
"_t usb",
#<Element:0x808de6bf0
@attr={},
@block=false,
@contents=["FunctionSetup"],
@innerYATML="FunctionSetup",
@name="link">,
"(uchar data[8]){",
#<Element:0x808de6588
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" usbRequest_t *rq = (void *)data;",
#<Element:0x808de5a20
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" if((rq->bm",
#<Element:0x808de50c0
@attr={},
@block=false,
@contents=["RequestType"],
@innerYATML="RequestType",
@name="link">,
" & USBRQ_TYPE_MASK) == USBRQ_TYPE_CLASS){",
#<Element:0x808de4b20
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" if(rq->bRequest == USBRQ_HID_SET_REPORT){",
#<Element:0x808de3fb8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" return USB_NO_MSG;",
#<Element:0x808de3450
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" }else if(rq->bRequest == USBRQ_HID_GET_IDLE){",
#<Element:0x808de28e8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" usb",
#<Element:0x808de1f60
@attr={},
@block=false,
@contents=["MsgPtr"],
@innerYATML="MsgPtr",
@name="link">,
" = &idleRate;",
#<Element:0x808de19c0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" return 1;",
#<Element:0x808de0e58
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" }else if(rq->bRequest == USBRQ_HID_SET_IDLE){",
#<Element:0x808de02c8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" idleRate = rq->wValue.bytes[1];",
#<Element:0x808ddf760
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" }",
#<Element:0x808ddebf8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" }",
#<Element:0x808dde090
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" return 0;",
#<Element:0x808ddd528
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"}"],
@innerYATML=
"static uchar idleRate;\nusbMsgLen_t usbFunctionSetup(uchar data[8]){\n usbRequest_t *rq = (void *)data;\n if((rq->bmRequestType & USBRQ_TYPE_MASK) == USBRQ_TYPE_CLASS){\n if(rq->bRequest == USBRQ_HID_SET_REPORT){\n return USB_NO_MSG;\n }else if(rq->bRequest == USBRQ_HID_GET_IDLE){\n usbMsgPtr = &idleRate;\n return 1;\n }else if(rq->bRequest == USBRQ_HID_SET_IDLE){\n idleRate = rq->wValue.bytes[1];\n }\n }\n return 0;\n}\n",
@name="code">,
"",
#<Element:0x808ddbe58
@attr={},
@block=true,
@contents=
[" usb",
#<Element:0x808ddb5c0
@attr={},
@block=false,
@contents=["FunctionWrite"],
@innerYATML="FunctionWrite",
@name="link">,
" \343\201\256\345\256\237\350\243\205"],
@innerYATML=" usbFunctionWrite \343\201\256\345\256\237\350\243\205",
@name="subsubsection">,
"usb",
#<Element:0x808dda940
@attr={},
@block=false,
@contents=["FunctionSetup"],
@innerYATML="FunctionSetup",
@name="link">,
"\343\201\247 NO_MSG\343\202\222\350\277\224\343\201\231\343\201\250usb",
#<Element:0x808dda620
@attr={},
@block=false,
@contents=["FunctionWrite"],
@innerYATML="FunctionWrite",
@name="link">,
"\343\201\214\345\221\274\343\201\263\345\207\272\343\201\225\343\202\214\343\202\213\343\200\202",
#<Element:0x808dd9fb8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\343\201\223\343\201\223\343\201\247\343\200\201\345\256\237\351\232\233\343\201\256\343\203\207\343\203\274\343\202\277\345\207\246\347\220\206\343\202\222\343\201\231\343\202\213\343\200\202",
#<Element:0x808e5a7f8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808e5a028
@attr={},
@block=true,
@contents=
["uchar usb",
#<Element:0x808e594e8
@attr={},
@block=false,
@contents=["FunctionWrite"],
@innerYATML="FunctionWrite",
@name="link">,
"(uchar *data, uchar len)",
#<Element:0x808e58ef8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"{",
#<Element:0x808e58070
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" data\343\202\222\350\252\255\343\201\277\350\276\274\343\202\223\343\201\247\345\207\246\347\220\206\343\201\231\343\202\213\343\200\202",
#<Element:0x808e57300
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" return len;",
#<Element:0x808e565b8
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"}"],
@innerYATML=
"uchar usbFunctionWrite(uchar *data, uchar len)\n{\n data\343\202\222\350\252\255\343\201\277\350\276\274\343\202\223\343\201\247\345\207\246\347\220\206\343\201\231\343\202\213\343\200\202\n return len;\n}\n",
@name="code">,
"",
#<Element:0x808e54a38
@attr={},
@block=true,
@contents=
[" usb",
#<Element:0x808e540d8
@attr={},
@block=false,
@contents=["FunctionWriteOut"],
@innerYATML="FunctionWriteOut",
@name="link">,
" \343\201\256\345\256\237\350\243\205"],
@innerYATML=" usbFunctionWriteOut \343\201\256\345\256\237\350\243\205",
@name="subsubsection">,
"ENDPOINT 1\343\201\253\346\235\245\343\201\237\343\203\221\343\202\261\343\203\203\343\203\210\343\201\214\343\201\223\343\201\223\343\201\253\346\235\245\343\202\213\343\200\202",
#<Element:0x808e530c0
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\345\207\246\347\220\206\343\201\257usb",
#<Element:0x808e525a8
@attr={},
@block=false,
@contents=["FunctionWrite"],
@innerYATML="FunctionWrite",
@name="link">,
"\343\201\253\343\201\276\343\201\213\343\201\233\343\202\213\343\200\202",
#<Element:0x808e51e50
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808e51748
@attr={},
@block=true,
@contents=
["void usb",
#<Element:0x808e50ca8
@attr={},
@block=false,
@contents=["FunctionWriteOut"],
@innerYATML="FunctionWriteOut",
@name="link">,
"(uchar *data, uchar len)",
#<Element:0x808e50668
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"{",
#<Element:0x808e4f920
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
" usb",
#<Element:0x808e4eef8
@attr={},
@block=false,
@contents=["FunctionWrite"],
@innerYATML="FunctionWrite",
@name="link">,
"(data,len);",
#<Element:0x808e4e868
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"}"],
@innerYATML=
"void usbFunctionWriteOut(uchar *data, uchar len)\n{\n usbFunctionWrite(data,len);\n}\n",
@name="code">,
"",
#<Element:0x808e4c400
@attr={},
@block=true,
@contents=
[" USB\343\203\207\343\203\220\343\202\244\343\202\271\343\201\256\344\275\234\346\210\220(\343\203\217\343\203\274\343\203\211\343\202\246\343\202\250\343\202\242\347\267\250)"],
@innerYATML=
" USB\343\203\207\343\203\220\343\202\244\343\202\271\343\201\256\344\275\234\346\210\220(\343\203\217\343\203\274\343\203\211\343\202\246\343\202\250\343\202\242\347\267\250)",
@name="section">,
#<Element:0x808e4b668
@attr={},
@block=true,
@contents=
[" HID\343\203\207\343\203\220\343\202\244\343\202\271\343\201\256\343\202\263\343\203\263\343\203\210\343\203\274\343\203\253"],
@innerYATML=
" HID\343\203\207\343\203\220\343\202\244\343\202\271\343\201\256\343\202\263\343\203\263\343\203\210\343\203\274\343\203\253",
@name="section">,
#<Element:0x808e4a808
@attr={},
@block=true,
@contents=[" Windows"],
@innerYATML=" Windows",
@name="subsection">,
"HID\347\224\250\343\201\256API\343\201\214\343\201\202\343\202\213",
#<Element:0x808e49318
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\347\211\271\343\201\253Administrator\346\250\251\351\231\220\343\201\252\343\201\251\344\270\215\350\246\201\343\201\247\345\210\251\347\224\250\343\201\247\343\201\215\343\202\213\343\200\202",
#<Element:0x808e486c0
@attr={},
@block=true,
@contents=[" FreeBSD"],
@innerYATML=" FreeBSD",
@name="subsection">,
#<Element:0x808e473d8
@attr={},
@block=false,
@contents=["http://ikejima.org/diary/?date=20091024#p01"],
@innerYATML="http://ikejima.org/diary/?date=20091024#p01",
@name="link">,
" \343\202\222\345\217\202\350\200\203\343\201\253",
#<Element:0x808e46e10
@attr={},
@block=true,
@contents=[" Linux"],
@innerYATML=" Linux",
@name="subsection">,
"\346\234\252\350\252\277\346\237\273",
#<Element:0x808e45880
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808e45178
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808e447a0
@attr={},
@block=false,
@contents=["http://www.signal11.us/oss/hidapi/"],
@innerYATML="http://www.signal11.us/oss/hidapi/",
@name="link">,
#<Element:0x808e44138
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\343\201\223\343\202\214\343\201\214\344\275\277\343\201\210\343\201\235\343\201\206\343\201\240\343\201\214\343\200\201\350\251\246\343\201\227\343\201\246\343\201\252\343\201\204\343\200\202",
#<Element:0x808e43558
@attr={},
@block=true,
@contents=[" \343\201\276\343\201\250\343\202\201"],
@innerYATML=" \343\201\276\343\201\250\343\202\201",
@name="section">,
"HID\343\203\207\343\203\220\343\202\244\343\202\271\343\202\222\344\275\234\343\202\213\343\201\256\343\201\257\347\260\241\345\215\230\343\201\275\343\201\204\343\201\256\343\201\247\344\275\234\343\202\213\343\201\250\343\201\204\343\201\204\343\201\247\343\201\231\343\202\210\343\200\202",
#<Element:0x808e41f00
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808e41708
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
"\350\211\257\343\201\217\343\202\217\343\201\213\343\201\243\343\201\246\343\201\252\343\201\204\351\203\250\345\210\206\343\202\202\343\201\202\343\202\213\343\201\256\343\201\247\343\200\201\343\203\204\343\203\203\343\202\263\343\203\237\347\255\211\343\201\202\343\202\214\343\201\260\346\216\262\347\244\272\346\235\277\343\201\276\343\201\247\343\200\202",
#<Element:0x808e40998
@attr={},
@block=false,
@contents=[],
@innerYATML="",
@name="br">,
#<Element:0x808e3ffc0
@attr={},
@block=false,
@contents=["http://bbs.ikejima.org/thread/43"],
@innerYATML="http://bbs.ikejima.org/thread/43",
@name="link">]
wabisabi
[["span", {"class"=>"autolink"}, ["a", {"href"=>"/wiki/V-USB/"}, "V-USB"]],
" \343\202\222\344\275\277\343\201\243\343\201\246HID\343\203\207\343\203\220\343\202\244\343\202\271\343\202\222\344\275\234\343\202\213\343\200\202",
["br", {}],
["h2", {}, " \343\201\252\343\201\234HID\343\201\213"],
"USB\343\203\207\343\203\220\343\202\244\343\202\271\343\202\222\344\275\234\343\202\213\346\231\202\343\200\201\346\247\230\343\200\205\343\201\252\345\275\242\346\205\213\343\201\214\350\200\203\343\201\210\343\202\211\343\202\214\343\202\213\343\200\202",
["br", {}],
["a",
{"href"=>"http://vusb.wikidot.com/usb-device-classes",
"class"=>"outlink",
"rel"=>"nofollow"},
"V-USB\343\201\256\343\203\211\343\202\255\343\203\245\343\203\241\343\203\263\343\203\210"],
"\343\201\253\343\202\210\343\202\214\343\201\260\343\200\201\344\276\213\343\201\250\343\201\227\343\201\246\346\254\241\343\201\256\343\202\210\343\201\206\343\201\252\347\211\251\343\201\214\343\201\202\343\202\213\343\200\202",
["ul",
{},
["li",
{},
"Custom class devices",
["ul",
{},
["li",
{},
"\345\205\250\343\201\217\346\226\260\343\201\227\343\201\204USB\343\203\207\343\203\220\343\202\244\343\202\271"]]],
["li",
{},
"Standard HID class device",
["ul",
{},
["li",
{},
"\344\270\200\350\210\254\347\232\204\343\201\252(\343\203\236\343\202\246\343\202\271\343\201\250\343\201\213\343\202\255\343\203\274\343\203\234\343\203\274\343\203\211\343\201\250\343\201\213)USB\343\203\207\343\203\220\343\202\244\343\202\271"]]],
["li",
{},
"Custom HID class device",
["ul",
{},
["li",
{},
"HID\343\201\240\343\201\221\343\201\251\346\227\242\345\255\230\343\201\256\347\250\256\351\241\236\343\201\230\343\202\203\343\201\252\343\201\204\343\203\207\343\203\220\343\202\244\343\202\271"]]],
["li",
{},
"Vendor type requests sent to custom HID class device",
["ul",
{},
["li",
{},
"HID\343\203\207\343\203\220\343\202\244\343\202\271\343\201\240\343\201\221\343\201\251\343\200\201\343\202\253\343\202\271\343\202\277\343\203\240\343\201\252\351\200\232\344\277\241\343\202\222\343\201\231\343\202\213"]]],
["li",
{},
"CDC class devices",
["ul",
{},
["li", {}, "USB\343\202\267\343\203\252\343\202\242\343\203\253"]]],
["li",
{},
"Other classes",
["ul", {}, ["li", {}, "\343\201\235\343\201\256\344\273\226"]]]],
"\346\234\254\347\250\277\343\201\247\343\201\257\343\200\201\343\201\223\343\201\256\343\201\206\343\201\241\343\200\214Custom HID class device\343\200\215\343\202\222\343\202\252\343\202\271\343\202\271\343\203\241\343\201\231\343\202\213\343\200\202",
["br", {}],
"HID\343\203\207\343\203\220\343\202\244\343\202\271\343\202\222\344\275\234\343\202\213\343\203\241\343\203\252\343\203\203\343\203\210\343\203\207\343\203\241\343\203\252\343\203\203\343\203\210\343\201\253\343\201\244\343\201\204\343\201\246\343\202\202\343\200\201",
["a",
{"href"=>"http://vusb.wikidot.com/usb-device-classes",
"class"=>"outlink",
"rel"=>"nofollow"},
"V-USB\343\201\256\343\203\211\343\202\255\343\203\245\343\203\241\343\203\263\343\203\210"],
"\343\201\253\350\250\230\350\277\260\343\201\214\343\201\202\343\202\213\343\200\202",
["br", {}],
"(\350\250\263\343\201\257\347\255\206\350\200\205)",
["ul",
{},
["li",
{},
"\343\203\241\343\203\252\343\203\203\343\203\210",
["ul",
{},
["li",
{},
"Windows\343\201\247\343\201\257\343\203\211\343\203\251\343\202\244\343\203\220\343\201\214\344\270\215\350\246\201\343\201\247\343\200\201\343\201\235\343\201\256\343\201\237\343\202\201\343\202\244\343\203\263\343\202\271\343\203\210\343\203\274\343\203\253\343\201\214\344\270\215\350\246\201"]]],
["li",
{},
"\343\203\207\343\203\241\343\203\252\343\203\203\343\203\210",
["ul",
{},
["li",
{},
"\343\202\204\343\202\212\343\201\250\343\202\212\343\201\231\343\202\213\343\203\207\343\203\274\343\202\277\343\201\257",
["span",
{"style"=>".notfound"},
"ReportDescriptor",
["a", {"href"=>"/wiki/ReportDescriptor/"}, "?"]],
"\343\201\247\345\256\243\350\250\200\343\201\225\343\202\214\343\202\213\345\277\205\350\246\201\343\201\214\343\201\202\343\202\213\343\200\202\343\201\235\343\201\256\343\201\237\343\202\201\343\203\207\343\203\274\343\202\277\343\201\257\345\233\272\345\256\232\351\225\267\343\201\247\343\201\202\343\202\213\345\277\205\350\246\201\343\201\214\343\201\202\343\202\213\343\200\202",
["ul",
{},
["li",
{},
"\345\205\210\351\240\255\343\201\253\343\202\265\343\202\244\343\202\272\343\202\222\345\205\245\343\202\214\343\202\213\344\272\213\343\201\253\343\202\210\343\201\243\343\201\246\345\233\236\351\201\277\343\201\247\343\201\215\343\202\213\343\200\202",
["span", {"class"=>"autolink"}, ["a", {"href"=>"/wiki/AVR/"}, "AVR"]],
"-Doper\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210\343\202\222\350\246\213\343\202\210\343\200\202"]]],
["li",
{},
"BSD\343\201\252\343\201\251\343\201\256OS\343\201\247\343\201\257\343\200\201OS\343\201\214HID\343\203\207\343\203\220\343\202\244\343\202\271\343\202\222\347\256\241\347\220\206\343\201\227\343\201\246\343\201\204\343\202\213\343\201\237\343\202\201libusb\343\201\214\344\275\277\343\201\210\343\201\252\343\201\204\343\200\202"],
["li",
{},
"Windows\343\201\250UNIX\347\263\273OS\343\201\247HID\343\202\222\344\275\277\343\201\206\343\201\237\343\202\201\343\201\256API\343\201\214\351\201\225\343\201\206\343\200\202Windows\343\201\247\343\201\257libusb\343\201\214\344\275\277\343\201\210\343\201\252\343\201\204\343\200\202"],
["li",
{},
"\350\244\207\351\233\221\343\201\253\343\201\252\343\202\213\343\200\202"]]]],
"\343\201\223\343\201\256\343\202\210\343\201\206\343\201\253\345\210\227\346\214\231\343\201\231\343\202\213\343\201\250\343\203\207\343\203\241\343\203\252\343\203\203\343\203\210\343\201\256\346\226\271\343\201\214\345\244\232\343\201\204\343\202\210\343\201\206\343\201\253\350\246\213\343\201\210\343\202\213\343\200\202",
["br", {}],
"\343\201\227\343\201\213\343\201\227\343\200\201\343\201\223\343\202\214\343\202\211\343\201\256\343\203\207\343\203\241\343\203\252\343\203\203\343\203\210\343\201\257\343\201\235\343\202\214\343\201\236\343\202\214\350\247\243\346\261\272\343\201\247\343\201\215\343\202\213\343\200\202",
["br", {}],
"1\343\201\244\347\233\256\343\201\256\343\203\207\343\203\241\343\203\252\343\203\203\343\203\210\343\201\257\343\203\211\343\202\255\343\203\245\343\203\241\343\203\263\343\203\210\343\201\253\343\202\202\343\201\202\343\202\213\343\202\210\343\201\206\343\201\253\345\205\210\351\240\255\343\201\253\343\202\265\343\202\244\343\202\272\343\202\222\345\205\245\343\202\214\343\202\214\343\201\260\343\202\210\343\201\204\343\200\202",
["br", {}],
"2\343\201\244\347\233\256\343\201\256\343\203\207\343\203\241\343\203\252\343\203\203\343\203\210\343\200\2013\343\201\244\347\233\256\343\201\256\343\203\207\343\203\241\343\203\252\343\203\203\343\203\210\343\201\253\343\201\244\343\201\204\343\201\246\343\201\257\343\200\201\343\201\235\343\202\214\343\201\236\343\202\214\343\201\256OS\343\201\247\343\202\275\343\203\225\343\203\210\343\202\246\343\202\250\343\202\242\343\202\222\344\275\234\343\202\212\343\201\252\343\201\212\343\201\225\343\201\252\343\201\221\343\202\214\343\201\260\343\201\252\343\202\211\343\201\252\343\201\204\344\272\213\343\202\222\346\204\217\345\221\263\343\201\231\343\202\213\343\201\214\343\200\201\344\270\200\346\226\271\343\201\247\343\201\273\343\201\250\343\202\223\343\201\251\343\201\256OS\343\201\247\343\201\256HID\346\223\215\344\275\234API\343\201\257(USB\343\202\222\347\224\237\343\201\247\346\211\261\343\201\206API\343\201\253\346\257\224\343\201\271\343\202\214\343\201\260)\347\260\241\345\215\230\343\201\253\343\201\252\343\201\243\343\201\246\343\201\212\343\202\212\343\200\201\343\201\276\343\201\237\343\200\201\345\220\204OS\343\201\256HID\343\202\222\346\212\275\350\261\241\345\214\226\343\201\231\343\202\213\343\203\251\343\202\244\343\203\226\343\203\251\343\203\252\343\202\222\344\275\234\343\202\213\344\272\213\343\202\202\345\217\257\350\203\275\343\201\247\343\201\257\343\201\252\343\201\204\343\201\213\343\201\250\346\200\235\343\202\217\343\202\214\343\202\213\343\200\202",
["br", {}],
"3\343\201\244\347\233\256\343\201\256\343\203\207\343\203\241\343\203\252\343\203\203\343\203\210\343\201\247\343\201\202\343\202\213\345\256\237\350\243\205\343\201\214\350\244\207\351\233\221\343\201\253\343\201\252\343\202\213\347\202\271\343\201\253\343\201\244\343\201\204\343\201\246\343\201\257\343\200\201\346\234\254\347\250\277\343\201\247\350\247\243\350\252\254\343\202\222\350\241\214\343\201\206\343\200\202",
["br", {}],
["h2",
{},
" USB\343\203\207\343\203\220\343\202\244\343\202\271\343\201\256\344\275\234\346\210\220(\343\202\275\343\203\225\343\203\210\343\202\246\343\202\250\343\202\242\347\267\250)"],
["h3",
{},
" \344\275\225\343\202\222\344\275\234\343\202\213\343\201\213\357\274\237"],
["br", {}],
"\345\276\214\343\201\247\346\233\270\343\201\217",
["ul",
{},
["li",
{},
"\343\202\263\343\203\263\343\203\210\343\203\255\343\203\274\343\203\253\343\202\250\343\203\263\343\203\211\343\203\235\343\202\244\343\203\263\343\203\210(ENDPOINT 0)",
["ul",
{},
["li",
{},
["span",
{"style"=>".notfound"},
"ReportDescriptor",
["a", {"href"=>"/wiki/ReportDescriptor/"}, "?"]]]]],
["li",
{},
"\343\203\207\343\203\274\343\202\277\347\224\250\343\202\250\343\203\263\343\203\211\343\203\235\343\202\244\343\203\263\343\203\210(ENDPOINT 1)"]],
"",
["h3",
{},
" ",
["span", {"class"=>"autolink"}, ["a", {"href"=>"/wiki/V-USB/"}, "V-USB"]],
"\343\201\256\345\205\245\346\211\213"],
["span", {"class"=>"autolink"}, ["a", {"href"=>"/wiki/V-USB/"}, "V-USB"]],
"\343\202\275\343\203\225\343\203\210\343\202\246\343\202\250\343\202\242\346\234\254\344\275\223\343\201\257\344\273\245\344\270\213\343\201\213\343\202\211\343\203\200\343\202\246\343\203\263\343\203\255\343\203\274\343\203\211\343\201\247\343\201\215\343\202\213\343\200\202",
["br", {}],
["span", {"class"=>"autolink"}, ["a", {"href"=>"/wiki/V-USB/"}, "V-USB"]],
"\343\201\257GPL\343\201\250\343\202\263\343\203\236\343\203\274\343\202\267\343\203\243\343\203\253\343\203\251\343\202\244\343\202\273\343\203\263\343\202\271\343\201\256\343\203\207\343\203\245\343\202\242\343\203\253\343\203\251\343\202\244\343\202\273\343\203\263\343\202\271\343\201\253\343\201\252\343\201\243\343\201\246\343\201\204\343\202\213\343\200\202",
["br", {}],
"GPL\343\202\222\351\201\270\346\212\236\343\201\231\343\202\214\343\201\260\347\204\241\346\226\231\343\201\247\344\275\277\343\201\206\344\272\213\343\201\214\343\201\247\343\201\215\343\202\213\343\200\202",
["br", {}],
["a",
{"href"=>"http://www.obdev.at/products/vusb/index.html",
"class"=>"outlink",
"rel"=>"nofollow"},
"http://www.obdev.at/products/vusb/index.html"],
["br", {}],
["br", {}],
"\344\273\212\345\233\236\343\201\257vusb-20090822.zip\343\202\222\343\203\200\343\202\246\343\203\263\343\203\255\343\203\274\343\203\211\343\201\227\343\201\246\344\275\277\347\224\250\343\201\227\343\201\237\343\200\202",
["br", {}],
["h3",
{},
" \343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210\343\201\256\344\275\234\346\210\220"],
"\343\201\276\343\201\232\343\201\257\343\201\223\343\202\214\343\202\222\343\202\263\343\203\263\343\203\221\343\202\244\343\203\253\343\201\247\343\201\215\343\202\213\343\202\210\343\201\206\343\201\253\343\201\231\343\202\213\343\200\202",
["br", {}],
"\347\247\201\343\201\257",
["a",
{"href"=>"http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725",
"class"=>"outlink",
"rel"=>"nofollow"},
"AVR Studio 4"],
"\343\201\250",
["a",
{"href"=>"http://winavr.sourceforge.net/download.html",
"class"=>"outlink",
"rel"=>"nofollow"},
"Win-AVR 20090313"],
"\343\202\222\345\210\251\347\224\250\343\201\227\343\201\237\343\200\202",
["br", {}],
["br", {}],
"\343\201\276\343\201\232\343\200\201",
["span", {"class"=>"autolink"}, ["a", {"href"=>"/wiki/AVR/"}, "AVR"]],
" Studio\343\202\222\344\275\277\343\201\243\343\201\246\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210\343\202\222\344\275\234\346\210\220\343\201\231\343\202\213\343\200\202\343\202\202\343\201\241\343\202\215\343\202\223\343\203\201\343\203\203\343\203\227\343\201\253\343\201\257",
["span",
{"class"=>"autolink"},
["a", {"href"=>"/wiki/ATTiny2313/"}, "ATTiny2313"]],
"\343\202\222\343\203\201\343\203\247\343\202\244\343\202\271(\347\254\221)",
["br", {}],
["br", {}],
"\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210\343\202\222\344\275\234\346\210\220\343\201\227\343\201\237\343\202\211\343\200\201\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210\343\201\256\343\202\252\343\203\227\343\202\267\343\203\247\343\203\263\343\201\213\343\202\211\343\202\257\343\203\255\343\203\203\343\202\257\343\202\222\350\250\255\345\256\232\343\201\227\343\201\246\343\201\212\343\201\217\343\200\202",
["br", {}],
"F_CPU\345\256\232\346\225\260\343\201\214\350\250\255\345\256\232\343\201\225\343\202\214\343\201\246\343\201\204\343\201\252\343\201\204\343\201\250\343\200\201",
["span", {"class"=>"autolink"}, ["a", {"href"=>"/wiki/V-USB/"}, "V-USB"]],
"\343\201\256\343\202\263\343\203\263\343\203\221\343\202\244\343\203\253\343\201\253\345\244\261\346\225\227\343\201\231\343\202\213\343\200\202",
["br", {}],
["h3",
{},
" ",
["span", {"class"=>"autolink"}, ["a", {"href"=>"/wiki/V-USB/"}, "V-USB"]],
"\343\201\256\350\247\243\345\207\215"],
["span", {"class"=>"autolink"}, ["a", {"href"=>"/wiki/V-USB/"}, "V-USB"]],
"\343\201\256\343\203\221\343\203\203\343\202\261\343\203\274\343\202\270\343\201\213\343\202\211\345\277\205\350\246\201\343\201\252\343\203\225\343\202\241\343\202\244\343\203\253\343\202\222\345\217\226\343\202\212\345\207\272\343\201\227\343\200\201\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210\343\201\253\350\277\275\345\212\240\343\201\231\343\202\213\343\200\202",
["br", {}],
"\345\205\267\344\275\223\347\232\204\343\201\253\343\201\257usbdrv\343\203\207\343\202\243\343\203\254\343\202\257\343\203\210\343\203\252\343\202\222\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210\343\201\256\343\203\207\343\202\243\343\203\254\343\202\257\343\203\210\343\203\252\343\201\253\345\205\245\343\202\214\343\202\213\343\200\202",
["br", {}],
["span", {"class"=>"autolink"}, ["a", {"href"=>"/wiki/AVR/"}, "AVR"]],
" Studio\343\201\213\343\202\211usbdrv\343\203\207\343\202\243\343\203\254\343\202\257\343\203\210\343\203\252\343\201\256 oddebug, usbdrv.c, usbdrvasm.asm \343\202\222Source files\343\201\250\343\201\227\343\201\246\350\277\275\345\212\240\343\201\231\343\202\213\343\200\202",
["br", {}],
"\343\201\276\343\201\237\343\200\201oddebug.h, usbdrv.h, usbportability.h\343\202\222\343\203\230\343\203\203\343\203\200\343\203\225\343\202\241\343\202\244\343\203\253\343\201\250\343\201\227\343\201\246\350\277\275\345\212\240\343\201\231\343\202\213\343\200\202",
["br", {}],
["br", {}],
"\343\201\223\343\201\256\346\256\265\351\232\216\343\201\247\346\254\241\343\201\256\343\202\210\343\201\206\343\201\252\346\247\213\346\210\220\343\201\253\343\201\252\343\201\243\343\201\246\343\201\204\343\202\213\343\200\202",
["ul",
{},
["li",
{},
"project directory",
["ul",
{},
["li", {}, "project.c"],
["li",
{},
"usbdrv",
["ul",
{},
["li", {}, "oddebug.c"],
["li", {}, "oddebug.h"],
["li", {}, "usbdrv.c"],
["li",
{},
"\343\201\235\343\201\256\344\273\226\343\203\225\343\202\241\343\202\244\343\203\253"]]]]]],
"",
["h3", {}, " usbconfig.h \343\201\256\344\275\234\346\210\220"],
"\344\275\234\346\210\220\343\201\231\343\202\213USB\346\251\237\345\231\250\343\201\256\350\250\255\345\256\232\343\202\222\350\241\214\343\201\206 usbconfig.h \343\202\222\344\275\234\346\210\220\343\201\231\343\202\213\343\200\202",
["br", {}],
"\343\201\223\343\201\256\343\203\225\343\202\241\343\202\244\343\203\253\343\201\256\343\203\206\343\203\263\343\203\227\343\203\254\343\203\274\343\203\210\343\201\214 usbconfig-prototype.h \343\201\250\343\201\204\343\201\206\343\203\225\343\202\241\343\202\244\343\203\253\345\220\215\343\201\247usbdrv\343\203\207\343\202\243\343\203\254\343\202\257\343\203\210\343\203\252\343\201\253\343\201\202\343\202\213\343\201\250\346\200\235\343\201\206\343\201\256\343\201\247\343\201\223\343\202\214\343\202\222\343\202\263\343\203\224\343\203\274\343\201\227\343\201\246\344\275\277\343\201\206\343\200\202",
["br", {}],
"\343\203\227\343\203\255\343\202\270\343\202\247\343\202\257\343\203\210\343\201\253\343\202\202\350\277\275\345\212\240\343\201\227\343\201\246\343\201\212\343\201\223\343\201\206\343\200\202",
["br", {}],
["ul",
{},
["li",
{},
"project directory",
["ul",
{},
["li", {}, "project.c"],
["li", {}, "usbconfig.h ", ["span", {"class"=>""}, "<", "- NEW"]],
["li",
{},
"usbdrv",
["ul",
{},
["li", {}, "oddebug.c"],
["li", {}, "oddebug.h"],
["li", {}, "usbdrv.c"],
["li",
{},
"\343\201\235\343\201\256\344\273\226\343\203\225\343\202\241\343\202\244\343\203\253"]]]]]],
"",
["br", {}],
"\345\244\211\346\233\264\343\201\231\343\201\271\343\201\215\347\202\271\343\201\257\346\254\241\343\201\256\351\200\232\343\202\212",
["h4",
{},
" \343\203\217\343\203\274\343\203\211\343\202\246\343\202\250\343\202\242\350\250\255\345\256\232"],
"Hardware Config\343\202\273\343\202\257\343\202\267\343\203\247\343\203\263\343\202\222\344\275\234\343\202\213\343\203\217\343\203\274\343\203\211\343\202\246\343\202\250\343\202\242\343\201\253\345\220\210\343\202\217\343\201\233\343\201\246\345\244\211\346\233\264\343\201\231\343\202\213\343\200\202",
["br", {}],
"PORTD2\343\201\250PORTD4\343\201\247\351\200\232\344\277\241\343\202\222\343\201\231\343\202\213\343\201\256\343\201\214\343\203\207\343\203\225\343\202\251\343\203\253\343\203\210\343\201\253\343\201\252\343\201\243\343\201\246\343\201\204\343\202\213\343\201\256\343\201\247\343\200\201",
["br", {}],
"\347\247\201\343\201\257\351\232\243\345\220\210\343\201\206\343\202\210\343\201\206\343\201\253PORTD2\343\201\250PORTD3\343\201\253\343\201\231\343\202\213\344\272\213\343\201\214\345\244\232\343\201\204\343\200\202",
["br", {}],
["h4", {}, " HID\343\201\256\350\250\255\345\256\232"],
"Functional Range\343\202\273\343\202\257\343\202\267\343\203\247\343\203\263\343\201\253\350\250\255\345\256\232\343\201\231\343\202\213\343\200\202",
["br", {}],
["br", {}],
"\351\200\232\344\277\241\347\224\250\343\201\256\343\203\221\343\202\244\343\203\227\343\201\247\343\201\202\343\202\213ENDPOINT\343\202\222\351\200\201\345\217\227\344\277\241\347\224\250\343\201\253\344\275\234\343\202\213\343\200\202",
["br", {}],
"\343\201\223\343\202\214\343\202\222ENDPOINT 1\343\201\250\345\221\274\343\201\266\343\200\202",
["br", {}],
"\345\205\267\344\275\223\347\232\204\343\201\253\343\201\257USB_CFG_HAVE_INTRIN_ENDPOINT\343\202\2221\343\201\253\343\201\231\343\202\213\343\200\202",
["br", {}],
["br", {}],
"\343\201\223\343\202\214\343\202\222\344\275\277\343\201\243\343\201\246\345\217\227\344\277\241\343\201\247\343\201\215\343\202\213\343\202\210\343\201\206\343\201\253",
["br", {}],
"USB_CFG_IMPLEMENT_FN_WRITEOUT\343\202\2221\343\201\253\343\201\231\343\202\213\343\200\202",
["br", {}],
["br", {}],
"\343\201\276\343\201\237\343\200\201\346\234\200\345\210\235\343\201\213\343\202\211\343\201\202\343\202\213ENDPOINT 0\343\202\222\344\275\277\343\201\243\343\201\246\343\202\202\345\217\227\344\277\241\343\201\247\343\201\215\343\202\213\343\202\210\343\201\206\343\201\253\343\200\202",
["br", {}],
"USB_CFG_IMPLEMENT_FN_WRITE\343\202\2021\343\201\253\343\201\231\343\202\213\343\200\202",
["br", {}],
["h4", {}, " USB\350\250\255\345\256\232"],
"\343\201\276\343\201\237\343\200\201USB\346\251\237\345\231\250\350\207\252\344\275\223\343\202\222\350\250\255\345\256\232\343\201\231\343\201\271\343\201\217Device Description\343\202\273\343\202\257\343\202\267\343\203\247\343\203\263\343\202\222\346\233\270\343\201\215\345\244\211\343\201\210\343\202\213\343\200\202",
["br", {}],
["br", {}],
"USB\346\251\237\345\231\250\343\201\257\343\201\235\343\202\214\343\201\236\343\202\214\343\203\246\343\203\213\343\203\274\343\202\257\343\201\252ID\343\202\222\344\275\277\343\201\206\345\277\205\350\246\201\343\201\214\343\201\202\343\202\213\343\200\202",
["br", {}],
"GPL\347\211\210\343\202\222\344\275\277\343\201\206\344\272\272\345\220\221\343\201\221\343\201\253\343\201\257",
["span", {"class"=>"autolink"}, ["a", {"href"=>"/wiki/V-USB/"}, "V-USB"]],
"\343\202\222\344\275\234\343\201\243\343\201\246\343\202\213Objective develipment\347\244\276\343\201\256ID\343\201\214\344\275\277\343\201\243\343\201\246\343\202\202\350\211\257\343\201\204\344\272\213\343\201\253\343\201\252\343\201\243\343\201\246\343\201\204\343\202\213\343\200\202",
["br", {}],
"\350\251\263\343\201\227\343\201\217\343\201\257usbdrv\343\203\207\343\202\243\343\203\254\343\202\257\343\203\210\343\203\252\343\201\253\343\201\202\343\202\213USB-IDs-for-free.txt\343\202\222\350\252\255\343\202\202\343\201\206\343\200\202",
["br", {}],
["br", {}],
"\343\201\276\343\201\202\343\200\201\350\207\252\345\210\206\343\201\247\344\275\277\343\201\206\343\202\210\343\201\206\343\201\256\346\251\237\345\231\250\343\201\257\343\200\201\343\201\237\343\201\276\343\201\237\343\201\276\343\201\235\343\201\256ID\343\201\250\345\220\214\343\201\230\346\251\237\345\231\250\343\202\222\350\207\252\345\210\206\343\201\214\346\214\201\343\201\243\343\201\246\343\201\204\343\201\252\343\201\204\351\231\220\343\202\212\345\233\260\343\202\211\343\201\252\343\201\204\343\201\256\343\201\247\343\200\201\347\211\271\343\201\253\346\260\227\343\202\222\343\201\244\343\201\221\343\202\213\345\277\205\350\246\201\343\201\257\343\201\252\343\201\225\343\201\235\343\201\206\343\200\202",
["br", {}],
["br", {}],
"USB\346\251\237\345\231\250\343\201\256ID\343\201\257 USB_CFG_VENDOR_ID \343\201\250 USB_CFG_DEVICE_ID \343\201\247\350\250\255\345\256\232\343\201\231\343\202\213\343\200\202",
["br", {}],
"\343\201\276\343\201\232\343\200\201USB_CFG_VENDOR_ID\343\201\240\343\201\214\343\200\201\343\201\223\343\202\214\343\201\257Objective development\347\244\276\343\201\256\343\202\222\344\275\277\343\201\206\343\201\252\343\202\211\343\201\235\343\201\256\343\201\276\343\201\276\343\201\247\343\201\204\343\201\204\343\200\202",
["br", {}],
"USB_CFG_DEVICE_ID \343\201\257\351\201\251\345\256\234\350\250\255\345\256\232\343\201\227\343\202\210\343\201\206\343\200\202",
["br", {}],
["br", {}],
"\343\201\223\343\201\256ID\343\201\257\345\276\214\343\201\247Windows\343\201\256\343\203\207\343\203\220\343\202\244\343\202\271\343\203\236\343\203\215\343\203\274\343\202\270\343\203\243\343\201\213\343\202\211\347\242\272\350\252\215\343\201\227\343\201\237\343\202\212\343\200\201PC\343\201\213\343\202\211\343\201\256\346\216\245\347\266\232\346\231\202\343\201\253\344\275\277\343\201\243\343\201\237\343\202\212\343\201\231\343\202\213\343\201\256\343\201\247\343\200\201\350\246\232\343\201\210\343\201\246\343\201\212\343\201\223\343\201\206\343\200\202",
["br", {}],
["br", {}],
"USB_CFG_VENDOR_NAME\343\202\204USB_CFG_DEVICE_NAME\343\201\257\351\201\251\345\256\234\350\250\255\345\256\232\343\201\231\343\202\213\343\200\202(\343\201\227\343\201\252\343\201\217\343\201\246\343\202\202\345\213\225\343\201\217)",
["br", {}],
["br", {}],
"\343\201\244\343\201\216\343\201\253\343\201\223\343\201\256\346\251\237\345\231\250\343\202\222HID\343\201\240\343\201\250\350\252\215\350\255\230\343\201\225\343\201\233\343\202\213\343\201\237\343\202\201\343\201\256\350\250\255\345\256\232\343\201\214\343\201\202\343\202\213\343\200\202",
["br", {}],
"PC\343\201\257USB\346\251\237\345\231\250\343\201\256\343\202\277\343\202\244\343\203\227\343\202\222\343\202\257\343\203\251\343\202\271\343\201\250\343\201\204\343\201\206\345\275\242\343\201\247\345\210\244\345\210\245\343\201\231\343\202\213\343\200\202",
["br", {}],
"HID\343\201\256\345\240\264\345\220\210\343\201\257\346\251\237\345\231\250\345\205\250\344\275\223\343\201\256\343\202\257\343\203\251\343\202\271\343\202\2220\343\201\253\343\200\201\343\202\244\343\203\263\343\202\277\343\203\274\343\203\225\343\202\247\343\203\274\343\202\271\343\201\256\343\202\257\343\203\251\343\202\271\343\202\2223\343\201\253\343\201\231\343\202\213\343\200\202",
["br", {}],
"USB_CFG_DEVICE_CLASS\343\201\2530\343\202\222\343\200\201USB_CFG_INTERFACE_CLASS\343\201\2533\343\202\222\350\250\255\345\256\232\343\201\231\343\202\213\343\200\202",
["br", {}],
["br", {}],
"\346\234\200\345\210\235\343\201\253\343\202\202\350\247\246\343\202\214\343\201\237\343\201\214\343\200\201HID\343\201\257",
["span",
{"style"=>".notfound"},
"ReportDescriptor",
["a", {"href"=>"/wiki/ReportDescriptor/"}, "?"]],
"\343\201\250\343\201\204\343\201\206\347\211\251\343\201\214\345\277\205\350\246\201\343\201\240\343\200\202",
["br", {}],
"\343\201\223\343\201\256",
["span",
{"style"=>".notfound"},
"ReportDescriptor",
["a", {"href"=>"/wiki/ReportDescriptor/"}, "?"]],
"\343\201\256\343\202\265\343\202\244\343\202\272\343\202\222\343\201\223\343\201\256\343\203\225\343\202\241\343\202\244\343\203\253\343\201\247\350\250\255\345\256\232\343\201\231\343\202\213\345\277\205\350\246\201\343\201\214\343\201\202\343\202\213\343\200\202",
["br", {}],
"\343\201\276\343\201\240",
["span",
{"style"=>".notfound"},
"ReportDescriptor",
["a", {"href"=>"/wiki/ReportDescriptor/"}, "?"]],
"\343\202\222\344\275\234\343\201\243\343\201\246\343\201\252\343\201\204\343\201\256\343\201\247\343\200\201\343\201\223\343\201\223\343\201\247\343\201\257\351\201\251\345\275\223\343\201\252\345\200\244\343\202\222 USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH \343\201\253\350\250\255\345\256\232\343\201\227\343\201\246\343\201\212\343\201\217\343\200\202",
["br", {}],
["h3", {}, " usbdrv.h\343\201\256\344\277\256\346\255\243"],
"usbdrv.h\343\201\213\343\202\211\345\205\210\347\250\213\343\201\256usbconfig.h\343\202\222include\343\201\227\343\201\246\343\201\204\343\202\213\343\201\256\343\201\240\343\201\214\343\200\201",
["br", {}],
"\343\201\223\343\202\214\343\201\256include\345\205\210\343\201\214usbdrv\343\203\207\343\202\243\343\203\254\343\202\257\343\203\210\343\203\252\343\201\253\343\201\252\343\201\243\343\201\246\343\201\204\343\202\213\343\200\202",
["br", {}],
"\347\247\201\343\201\257usbconfig.h\343\202\222usbdrv\343\201\256\345\244\226\343\201\253\347\275\256\343\201\204\343\201\237\343\201\256\343\201\247\343\200\201\345\244\211\346\233\264\343\201\227\343\201\246\343\201\212\343\201\217\343\200\202",
["br", {}],
["pre", {}, "#include \"../usbconfig.h\"\n"],
"",
["h3",
{},
" main\343\203\227\343\203\255\343\202\260\343\203\251\343\203\240\343\202\222\346\233\270\343\201\217\343\200\202"],
"\343\202\204\343\201\243\343\201\250\346\234\254\344\275\223\343\201\240\343\200\201\346\234\254\344\275\223\343\201\257",
["span", {"class"=>"autolink"}, ["a", {"href"=>"/wiki/AVR/"}, "AVR"]],
" Studio\343\201\214\350\207\252\345\213\225\347\224\237\346\210\220\343\201\227\343\201\237",
["span",
{"class"=>""},
"<",
"project\345\220\215>.c\343\201\253\346\233\270\343\201\217\344\272\213\343\201\253\343\201\231\343\202\213\343\200\202",
["br", {}],
"\343\201\276\343\201\232\343\200\201",
["span", {"class"=>"autolink"}, ["a", {"href"=>"/wiki/V-USB/"}, "V-USB"]],
"\343\202\222include\343\201\231\343\202\213\343\200\202\343\201\202\343\201\250\343\200\201\345\211\262\343\202\212\350\276\274\343\201\277\343\201\257\345\277\205\351\240\210\343\201\243\343\201\275\343\201\204\343\201\256\343\201\247\343\201\223\343\202\214\343\202\202\345\205\245\343\202\214\343\202\213\343\200\202"],
["pre", {}, "#include <avr/interrupt.h>\n#include \"./usbdrv/usbdrv.h\"\n"],
"",
["h4",
{},
" ",
["span",
{"style"=>".notfound"},
"ReportDescriptor",
["a", {"href"=>"/wiki/ReportDescriptor/"}, "?"]],
"\343\202\222\344\275\234\343\202\213"],
"\343\201\276\343\201\232\343\200\201",
["span",
{"style"=>".notfound"},
"ReportDescriptor",
["a", {"href"=>"/wiki/ReportDescriptor/"}, "?"]],
"\343\202\222\344\275\234\343\202\213\343\200\202",
["br", {}],
["br", {}],
"\344\275\225\345\272\246\343\201\213\343\201\241\343\202\207\343\201\223\343\201\241\343\202\207\343\201\223\345\207\272\343\201\246\343\201\215\343\201\246\343\201\204\343\202\213\343\201\214",
["span",
{"style"=>".notfound"},
"ReportDescriptor",
["a", {"href"=>"/wiki/ReportDescriptor/"}, "?"]],
"\343\201\257HID\343\201\256\351\200\232\344\277\241\345\206\205\345\256\271\343\202\222\350\252\254\346\230\216\343\201\231\343\202\213\343\201\237\343\202\201\343\201\256\343\202\202\343\201\256\343\201\240\343\200\202",
["br", {}],
"\343\201\223\343\202\214\343\202\222\344\275\234\343\202\213\343\201\256\343\201\214HID\343\202\222\344\275\234\343\202\213\344\270\212\343\201\247\343\201\256\344\270\200\343\201\244\343\201\256\343\203\235\343\202\244\343\203\263\343\203\210\343\201\240\343\200\202",
["br", {}],
["br", {}],
"\347\234\237\351\235\242\347\233\256\343\201\253",
["span",
{"style"=>".notfound"},
"ReportDescriptor",
["a", {"href"=>"/wiki/ReportDescriptor/"}, "?"]],
"\343\202\222\344\275\234\343\202\213\343\201\256\343\201\247\343\201\202\343\202\214\343\201\260\343\200\201USB\343\201\256\347\267\217\346\234\254\345\256\266\343\201\247\343\201\202\343\202\213usb.org\343\201\253HID descriptor Tool\343\201\250\343\201\204\343\201\206\347\211\251\343\201\214\343\201\202\343\202\212\343\200\201GUI\343\201\247\344\275\234\343\202\214\343\202\213\343\200\202",
["br", {}],
["a",
{"href"=>"http://www.usb.org/developers/hidpage/",
"class"=>"outlink",
"rel"=>"nofollow"},
"http://www.usb.org/developers/hidpage/"],
["br", {}],
["br", {}],
"\344\270\215\347\234\237\351\235\242\347\233\256\343\201\253\343\201\204\343\201\217\343\201\252\343\202\211\343\200\201\344\273\245\344\270\213\343\201\2538\343\203\220\343\202\244\343\203\210\343\201\256\343\203\221\343\202\261\343\203\203\343\203\210\343\202\222\351\200\201\345\217\227\344\277\241\343\201\231\343\202\213\346\231\202\343\201\256",
["span",
{"style"=>".notfound"},
"ReportDescriptor",
["a", {"href"=>"/wiki/ReportDescriptor/"}, "?"]],
"\343\201\256\344\276\213\343\202\222\347\275\256\343\201\204\343\201\246\343\201\212\343\201\217\343\201\256\343\201\247\343\200\201\343\202\263\343\203\224\343\203\232\343\201\227\343\202\210\343\201\206\343\200\202",
["br", {}],
["br", {}],
"\343\201\204\343\201\232\343\202\214\343\201\253\343\201\227\343\202\215\343\200\201\343\201\223\343\201\256",
["span",
{"style"=>".notfound"},
"ReportDescrptor",
["a", {"href"=>"/wiki/ReportDescrptor/"}, "?"]],
"\343\201\256\351\225\267\343\201\225\343\202\222usbconfig.h\343\201\253\346\233\270\343\201\217\345\277\205\350\246\201\343\201\214\343\201\202\343\202\213\343\200\202",
["br", {}],
"\345\277\230\343\202\214\343\201\232\343\201\253\343\200\202",
["br", {}],
["h5",
{},
" \351\200\201\345\217\227\344\277\2418\343\203\220\343\202\244\343\203\210\343\203\221\343\202\261\343\203\203\343\203\210"],
["pre",
{},
"PROGMEM char usbHidReportDescriptor[34] = {\n 0x06, 0x00, 0xff, // USAGE_PAGE (Vendor Defined Page 1)\n 0x09, 0x01, // USAGE (Vendor Usage 1)\n 0xa1, 0x01, // COLLECTION (Application)\n 0x15, 0x00, // LOGICAL_MINIMUM (0)\n 0x26, 0xff, 0x00, // LOGICAL_MAXIMUM (255)\n 0x75, 0x08, // REPORT_SIZE (8)\n 0x95, 0x08, // REPORT_COUNT (8)\n 0x09, 0x00, // USAGE (Undefined)\n 0x81, 0x02, // INPUT (Data,Var,Abs)\n 0x15, 0x00, // LOGICAL_MINIMUM (0)\n 0x26, 0xff, 0x00, // LOGICAL_MAXIMUM (255)\n 0x75, 0x08, // REPORT_SIZE (8)\n 0x95, 0x08, // REPORT_COUNT (8)\n 0x09, 0x00, // USAGE (Undefined)\n 0x91, 0x02, // OUTPUT (Data,Var,Abs)\n 0xc0 // END_COLLECTION\n};\n"],
"",
["h5",
{},
" \345\217\227\344\277\241(PC to HID)\343\201\240\343\201\2218\343\203\220\343\202\244\343\203\210\343\203\221\343\202\261\343\203\203\343\203\210"],
["pre",
{},
"PROGMEM char usbHidReportDescriptor[21] = {\n 0x06, 0x00, 0xff, // USAGE_PAGE (Vendor Defined Page 1)\n 0x09, 0x01, // USAGE (Vendor Usage 1)\n 0xa1, 0x01, // COLLECTION (Application)\n 0x15, 0x00, // LOGICAL_MINIMUM (0)\n 0x26, 0xff, 0x00, // LOGICAL_MAXIMUM (255)\n 0x75, 0x08, // REPORT_SIZE (8)\n 0x95, 0x08, // REPORT_COUNT (8)\n 0x09, 0x00, // USAGE (Undefined)\n 0x91, 0x02, // OUTPUT (Data,Var,Abs)\n 0xc0 // END_COLLECTION\n};\n"],
"",
["h5",
{},
" \351\200\201\344\277\241(HID to PC)\343\201\240\343\201\2218\343\203\220\343\202\244\343\203\210\343\203\221\343\202\261\343\203\203\343\203\210"],
["pre",
{},
"PROGMEM char usbHidReportDescriptor[21] = {\n 0x06, 0x00, 0xff, // USAGE_PAGE (Vendor Defined Page 1)\n 0x09, 0x01, // USAGE (Vendor Usage 1)\n 0xa1, 0x01, // COLLECTION (Application)\n 0x15, 0x00, // LOGICAL_MINIMUM (0)\n 0x26, 0xff, 0x00, // LOGICAL_MAXIMUM (255)\n 0x75, 0x08, // REPORT_SIZE (8)\n 0x95, 0x08, // REPORT_COUNT (8)\n 0x09, 0x00, // USAGE (Undefined)\n 0x81, 0x02, // INPUT (Data,Var,Abs)\n 0xc0 // END_COLLECTION\n};\n"],
"",
["h4",
{},
" main\351\226\242\346\225\260(\343\201\250\343\203\207\343\203\274\343\202\277\351\200\201\344\277\241)"],
"\346\254\241\343\201\253main\351\226\242\346\225\260\343\202\222\343\201\213\343\201\217\343\200\201\343\201\276\343\201\232\346\234\200\344\275\216\351\231\220\343\203\220\343\203\274\343\202\270\343\203\247\343\203\263",
["pre",
{},
"int main(void){\n usbInit();\n sei();\n for(;;){\n usbPoll();\n }\n}\n"],
"\343\201\276\343\201\202\343\200\201usbInit\343\201\227\343\201\246usbPoll\343\201\227\343\201\246\343\202\213\343\201\240\343\201\221\343\200\202",
["br", {}],
["br", {}],
"\346\254\241\343\201\253\351\200\201\344\277\241\343\202\202\343\201\231\343\202\213\343\203\220\343\203\274\343\202\270\343\203\247\343\203\263",
["pre",
{},
"static char reportBuffer[8]; \nint main(void){\n usbInit();\n sei();\n for(;;){\n usbPoll();\n if(usbInterruptIsReady()){ // Can I send packet?\n if(\343\203\221\343\202\261\343\203\203\343\203\210\343\202\222\351\200\201\343\202\213\346\260\227\343\201\214\343\201\202\343\202\213\343\201\213\357\274\237) {\n \343\203\221\343\202\261\343\203\203\343\203\210\343\201\256\346\272\226\345\202\231\n usbSetInterrupt((void*)&reportBuffer, sizeof(reportBuffer));\n }\n }\n}\n"],
"\351\200\201\343\202\213\343\203\207\343\203\274\343\202\277\343\202\222reportBuffer\343\201\250\343\201\227\343\201\246\346\272\226\345\202\231\343\201\231\343\202\213\343\200\202",
["br", {}],
"usb",
["span",
{"style"=>".notfound"},
"InterruptIsReady",
["a", {"href"=>"/wiki/InterruptIsReady/"}, "?"]],
"()\351\226\242\346\225\260\343\201\247USB\343\201\214\343\203\207\343\203\274\343\202\277\343\202\222\351\200\201\343\202\214\343\202\213\347\212\266\346\205\213\343\201\253\343\201\202\343\202\213\343\201\213\343\202\222\350\252\277\343\201\271\343\201\246\343\200\201",
["br", {}],
"\351\200\201\343\202\214\343\202\213\343\202\210\343\201\206\343\201\247\343\201\202\343\202\214\343\201\260\343\200\201usb",
["span",
{"style"=>".notfound"},
"SetInterrupt",
["a", {"href"=>"/wiki/SetInterrupt/"}, "?"]],
"()\351\226\242\346\225\260\343\201\247\351\200\201\343\202\213\343\200\202",
["br", {}],
["br", {}],
"usbPoll()\351\226\242\346\225\260\343\201\25710ms\344\273\245\345\206\205\343\201\253\345\221\274\343\201\260\343\201\252\343\201\221\343\202\214\343\201\260\343\201\252\343\202\211\343\201\252\343\201\204\343\202\211\343\201\227\343\201\204\343\200\202",
["br", {}],
["h4",
{},
" usb",
["span",
{"style"=>".notfound"},
"FunctionSetup",
["a", {"href"=>"/wiki/FunctionSetup/"}, "?"]],
"\351\226\242\346\225\260"],
"\343\202\263\343\203\263\343\203\210\343\203\255\343\203\274\343\203\253\343\202\250\343\203\263\343\203\211\343\203\235\343\202\244\343\203\263\343\203\210(ENDPOINT 0)\343\201\253\346\235\245\343\201\237\343\203\221\343\202\261\343\203\203\343\203\210\343\202\222\345\207\246\347\220\206\343\201\231\343\202\213\351\226\242\346\225\260\343\201\240\343\201\250\346\200\235\343\201\206(\350\207\252\344\277\241\343\201\252\343\201\227)",
["br", {}],
["br", {}],
"\344\273\212\345\233\236\345\256\237\350\243\205\343\201\227\343\201\237\343\201\204\346\251\237\350\203\275\343\201\257\346\254\241\343\201\2563\343\201\244",
["ul",
{},
["li",
{},
"\346\235\245\343\201\237HID\343\203\221\343\202\261\343\203\203\343\203\210\343\202\222usb",
["span",
{"style"=>".notfound"},
"FunctionWrite",
["a", {"href"=>"/wiki/FunctionWrite/"}, "?"]],
"\343\201\253\345\207\246\347\220\206\343\201\225\343\201\233\343\202\213\343\200\202"],
["li",
{},
"GET_IDLE\343\203\221\343\202\261\343\203\203\343\203\210\343\202\222\345\207\246\347\220\206\343\201\231\343\202\213"],
["li",
{},
"SET_IDLE\343\203\221\343\202\261\343\203\203\343\203\210\343\202\222\345\207\246\347\220\206\343\201\231\343\202\213"]],
"",
["br", {}],
"GET_IDLE\343\201\250SET_IDLE\343\201\257\345\207\246\347\220\206\343\201\227\343\201\252\343\201\204\343\201\250Windows\343\201\247\350\252\215\350\255\230\343\201\225\343\202\214\343\201\252\343\201\204\343\201\277\343\201\237\343\201\204\343\200\202",
["br", {}],
"\343\201\235\343\202\214\344\273\245\345\244\226\343\201\256\343\203\221\343\202\261\343\203\203\343\203\210\343\201\257\347\204\241\350\246\226\343\201\231\343\202\213\343\200\202",
["br", {}],
["pre",
{},
"static uchar idleRate;\nusbMsgLen_t usbFunctionSetup(uchar data[8]){\n usbRequest_t *rq = (void *)data;\n if((rq->bmRequestType & USBRQ_TYPE_MASK) == USBRQ_TYPE_CLASS){\n if(rq->bRequest == USBRQ_HID_SET_REPORT){\n return USB_NO_MSG;\n }else if(rq->bRequest == USBRQ_HID_GET_IDLE){\n usbMsgPtr = &idleRate;\n return 1;\n }else if(rq->bRequest == USBRQ_HID_SET_IDLE){\n idleRate = rq->wValue.bytes[1];\n }\n }\n return 0;\n}\n"],
"",
["h4",
{},
" usb",
["span",
{"style"=>".notfound"},
"FunctionWrite",
["a", {"href"=>"/wiki/FunctionWrite/"}, "?"]],
" \343\201\256\345\256\237\350\243\205"],
"usb",
["span",
{"style"=>".notfound"},
"FunctionSetup",
["a", {"href"=>"/wiki/FunctionSetup/"}, "?"]],
"\343\201\247 NO_MSG\343\202\222\350\277\224\343\201\231\343\201\250usb",
["span",
{"style"=>".notfound"},
"FunctionWrite",
["a", {"href"=>"/wiki/FunctionWrite/"}, "?"]],
"\343\201\214\345\221\274\343\201\263\345\207\272\343\201\225\343\202\214\343\202\213\343\200\202",
["br", {}],
"\343\201\223\343\201\223\343\201\247\343\200\201\345\256\237\351\232\233\343\201\256\343\203\207\343\203\274\343\202\277\345\207\246\347\220\206\343\202\222\343\201\231\343\202\213\343\200\202",
["br", {}],
["pre",
{},
"uchar usbFunctionWrite(uchar *data, uchar len)\n{\n data\343\202\222\350\252\255\343\201\277\350\276\274\343\202\223\343\201\247\345\207\246\347\220\206\343\201\231\343\202\213\343\200\202\n return len;\n}\n"],
"",
["h4",
{},
" usb",
["span",
{"style"=>".notfound"},
"FunctionWriteOut",
["a", {"href"=>"/wiki/FunctionWriteOut/"}, "?"]],
" \343\201\256\345\256\237\350\243\205"],
"ENDPOINT 1\343\201\253\346\235\245\343\201\237\343\203\221\343\202\261\343\203\203\343\203\210\343\201\214\343\201\223\343\201\223\343\201\253\346\235\245\343\202\213\343\200\202",
["br", {}],
"\345\207\246\347\220\206\343\201\257usb",
["span",
{"style"=>".notfound"},
"FunctionWrite",
["a", {"href"=>"/wiki/FunctionWrite/"}, "?"]],
"\343\201\253\343\201\276\343\201\213\343\201\233\343\202\213\343\200\202",
["br", {}],
["pre",
{},
"void usbFunctionWriteOut(uchar *data, uchar len)\n{\n usbFunctionWrite(data,len);\n}\n"],
"",
["h2",
{},
" USB\343\203\207\343\203\220\343\202\244\343\202\271\343\201\256\344\275\234\346\210\220(\343\203\217\343\203\274\343\203\211\343\202\246\343\202\250\343\202\242\347\267\250)"],
["h2",
{},
" HID\343\203\207\343\203\220\343\202\244\343\202\271\343\201\256\343\202\263\343\203\263\343\203\210\343\203\274\343\203\253"],
["h3", {}, " Windows"],
"HID\347\224\250\343\201\256API\343\201\214\343\201\202\343\202\213",
["br", {}],
"\347\211\271\343\201\253Administrator\346\250\251\351\231\220\343\201\252\343\201\251\344\270\215\350\246\201\343\201\247\345\210\251\347\224\250\343\201\247\343\201\215\343\202\213\343\200\202",
["h3", {}, " FreeBSD"],
["a",
{"href"=>"http://ikejima.org/diary/?date=20091024#p01",
"class"=>"outlink",
"rel"=>"nofollow"},
"http://ikejima.org/diary/?date=20091024#p01"],
" \343\202\222\345\217\202\350\200\203\343\201\253",
["h3", {}, " Linux"],
"\346\234\252\350\252\277\346\237\273",
["br", {}],
["br", {}],
["a",
{"href"=>"http://www.signal11.us/oss/hidapi/",
"class"=>"outlink",
"rel"=>"nofollow"},
"http://www.signal11.us/oss/hidapi/"],
["br", {}],
"\343\201\223\343\202\214\343\201\214\344\275\277\343\201\210\343\201\235\343\201\206\343\201\240\343\201\214\343\200\201\350\251\246\343\201\227\343\201\246\343\201\252\343\201\204\343\200\202",
["h2", {}, " \343\201\276\343\201\250\343\202\201"],
"HID\343\203\207\343\203\220\343\202\244\343\202\271\343\202\222\344\275\234\343\202\213\343\201\256\343\201\257\347\260\241\345\215\230\343\201\275\343\201\204\343\201\256\343\201\247\344\275\234\343\202\213\343\201\250\343\201\204\343\201\204\343\201\247\343\201\231\343\202\210\343\200\202",
["br", {}],
["br", {}],
"\350\211\257\343\201\217\343\202\217\343\201\213\343\201\243\343\201\246\343\201\252\343\201\204\351\203\250\345\210\206\343\202\202\343\201\202\343\202\213\343\201\256\343\201\247\343\200\201\343\203\204\343\203\203\343\202\263\343\203\237\347\255\211\343\201\202\343\202\214\343\201\260\346\216\262\347\244\272\346\235\277\343\201\276\343\201\247\343\200\202",
["br", {}],
["a",
{"href"=>"http://bbs.ikejima.org/thread/43",
"class"=>"outlink",
"rel"=>"nofollow"},
"http://bbs.ikejima.org/thread/43"]]