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"]]

For Me

Recent