<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb">
	<link rel="self" type="application/atom+xml" href="https://forums.obdev.at/app.php/feed/topic/7923" />

	<title>Objective Development Forums</title>
	
	<link href="https://forums.obdev.at/index.php" />
	<updated>2012-12-11T16:44:14+02:00</updated>

	<author><name><![CDATA[Objective Development Forums]]></name></author>
	<id>https://forums.obdev.at/app.php/feed/topic/7923</id>

		<entry>
		<author><name><![CDATA[mega_mozg_13]]></name></author>
		<updated>2012-12-11T16:44:14+02:00</updated>

		<published>2012-12-11T16:44:14+02:00</published>
		<id>https://forums.obdev.at/viewtopic.php?t=7923&amp;p=24064#p24064</id>
		<link href="https://forums.obdev.at/viewtopic.php?t=7923&amp;p=24064#p24064"/>
		<title type="html"><![CDATA[Dynamic HID Report]]></title>

		
		<content type="html" xml:base="https://forums.obdev.at/viewtopic.php?t=7923&amp;p=24064#p24064"><![CDATA[
Hi, I try to make device with fully dynamical HID Report.<br /><br />1) In &quot;usbconfig.h&quot;<br /><blockquote class="uncited"><div>#define USB_CFG_DESCR_PROPS_HID_REPORT            (USB_PROP_IS_DYNAMIC)</div></blockquote><br /><br />2) In &quot;main.c&quot; <br /><blockquote class="uncited"><div><strong class="text-strong">PROGMEM</strong> char <strong class="text-strong">usbHidReportDescriptor</strong>[200] = { /* USB report descriptor, size must match usbconfig.h */<br />    0x06, 0x00, 0xff,              // USAGE_PAGE (Generic Desktop)<br />    0x09, 0x01,                    // USAGE (Vendor Usage 1)<br />    0xa1, 0x01,                    // COLLECTION (Application)<br />    0x85, 0x04,                    //   REPORT_ID (1)<br />    0x15, 0x00,                    //   LOGICAL_MINIMUM (0)<br />    0x26, 0xff, 0x00,              //   LOGICAL_MAXIMUM (255)<br />    0x75, 0x08,                    //   REPORT_SIZE (8)<br />    0x95, 0x06,                    //   REPORT_COUNT (6)<br />    0x09, 0x00,                    //   USAGE (Undefined)<br />    0xb2, 0x02, 0x01,              //   FEATURE (Data,Var,Abs,Buf)<br />    0xc0                           // END_COLLECTION<br />};<br /><br />ucharusbFunctionDescriptor(struct usbRequest *rq)<br />{<br />if ((rq-&gt;bmRequestType &amp; USBRQ_TYPE_MASK) != USBRQ_TYPE_STANDARD) return 0;<br /><br />if (rq-&gt;bRequest == USBRQ_GET_DESCRIPTOR)<br />{<br />switch (rq-&gt;wValue.bytes[1])<br />{<br />  case USBDESCR_HID_REPORT: usbMsgPtr = (void *)<strong class="text-strong">usbHidReportDescriptor</strong>; return (24);<br />}<br />}<br /><br />return 0;<br />}<br /></div></blockquote><br />And it working great!!!<br />3) Now I make a non &quot;PROGMEM&quot; array<br /><blockquote class="uncited"><div><strong class="text-strong">static</strong> char <strong class="text-strong">dynamical_usbHidReportDescriptor</strong>[200] = { /* USB report descriptor, size must match usbconfig.h */<br />    0x06, 0x00, 0xff,              // USAGE_PAGE (Generic Desktop)<br />    0x09, 0x01,                    // USAGE (Vendor Usage 1)<br />    0xa1, 0x01,                    // COLLECTION (Application)<br />    0x85, 0x04,                    //   REPORT_ID (1)<br />    0x15, 0x00,                    //   LOGICAL_MINIMUM (0)<br />    0x26, 0xff, 0x00,              //   LOGICAL_MAXIMUM (255)<br />    0x75, 0x08,                    //   REPORT_SIZE (8)<br />    0x95, 0x06,                    //   REPORT_COUNT (6)<br />    0x09, 0x00,                    //   USAGE (Undefined)<br />    0xb2, 0x02, 0x01,              //   FEATURE (Data,Var,Abs,Buf)<br />    0xc0                           // END_COLLECTION<br />};<br /><br />ucharusbFunctionDescriptor(struct usbRequest *rq)<br />{<br />if ((rq-&gt;bmRequestType &amp; USBRQ_TYPE_MASK) != USBRQ_TYPE_STANDARD) return 0;<br /><br />if (rq-&gt;bRequest == USBRQ_GET_DESCRIPTOR)<br />{<br />switch (rq-&gt;wValue.bytes[1])<br />{<br />  case USBDESCR_HID_REPORT: usbMsgPtr = (void *)<strong class="text-strong">dynamical_usbHidReportDescriptor</strong>; return (24);<br />}<br />}<br /><br />return 0;<br />}<br /></div></blockquote><br /><br />And it NOT working.<br />If it possible anyware? What do wrong?<br /><br />PS: sorry for my very bad english.<p>Statistics: Posted by <a href="https://forums.obdev.at/memberlist.php?mode=viewprofile&amp;u=11426">mega_mozg_13</a> — Tue Dec 11, 2012 4:44 pm</p><hr />
]]></content>
	</entry>
	</feed>
