<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.mcselec.com/bavr/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.mcselec.com/bavr/index.php?action=history&amp;feed=atom&amp;title=CONFIG_USB%2Fde</id>
		<title>CONFIG USB/de - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.mcselec.com/bavr/index.php?action=history&amp;feed=atom&amp;title=CONFIG_USB%2Fde"/>
		<link rel="alternate" type="text/html" href="http://wiki.mcselec.com/bavr/index.php?title=CONFIG_USB/de&amp;action=history"/>
		<updated>2026-04-27T14:34:47Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.18.6</generator>

	<entry>
		<id>http://wiki.mcselec.com/bavr/index.php?title=CONFIG_USB/de&amp;diff=2251&amp;oldid=prev</id>
		<title>Admin: 1 revision</title>
		<link rel="alternate" type="text/html" href="http://wiki.mcselec.com/bavr/index.php?title=CONFIG_USB/de&amp;diff=2251&amp;oldid=prev"/>
				<updated>2013-02-15T19:13:52Z</updated>
		
		<summary type="html">&lt;p&gt;1 revision&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
		&lt;tr valign='top'&gt;
		&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
		&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 19:13, 15 February 2013&lt;/td&gt;
		&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://wiki.mcselec.com/bavr/index.php?title=CONFIG_USB/de&amp;diff=2250&amp;oldid=prev</id>
		<title>Admin: Created page with &quot;= &lt;span class=&quot;f_Header&quot;&gt;Action&lt;/span&gt; =  Create settings related to USB.  &lt;span style=&quot;font-family: Arial;&quot;&gt;&amp;nbsp;&lt;/span&gt;  &lt;span style=&quot;font-family: Arial;&quot;&gt;&amp;nbsp;&lt;/span&gt;  = ...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.mcselec.com/bavr/index.php?title=CONFIG_USB/de&amp;diff=2250&amp;oldid=prev"/>
				<updated>2013-02-08T11:58:20Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;= &amp;lt;span class=&amp;quot;f_Header&amp;quot;&amp;gt;Action&amp;lt;/span&amp;gt; =  Create settings related to USB.  &amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;  &amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt; &amp;lt;/span&amp;gt;  = ...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== (**COPIED FROM ENGLISH PAGE**) === &amp;lt;span class=&amp;quot;f_Header&amp;quot;&amp;gt;Action&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
Create settings related to USB.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;span class=&amp;quot;f_Header&amp;quot;&amp;gt;Syntax&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;f_Syntax&amp;quot;&amp;gt;CONFIG USB&amp;amp;nbsp;&amp;lt;/span&amp;gt;= dev, Language= lang, Manufact= &amp;quot;man&amp;quot;, Product=&amp;quot;prod&amp;quot; , Serial=&amp;quot;serial&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;span class=&amp;quot;f_Header&amp;quot;&amp;gt;Remarks&amp;lt;/span&amp;gt; =&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding: 0px; margin: 0px 0px 0px 4px;&amp;quot;&amp;gt;&lt;br /&gt;
{| width=&amp;quot;485&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;1&amp;quot; border=&amp;quot;1&amp;quot; style=&amp;quot;border: 2px solid rgb(0, 0, 0); border-spacing: 0px; border-collapse: collapse;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;18%&amp;quot; style=&amp;quot;width: 84px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
Dev&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;103%&amp;quot; style=&amp;quot;width: 392px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
The possible options are Device and Host. Host is not supported yet.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;18%&amp;quot; style=&amp;quot;width: 84px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
Lang&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;103%&amp;quot; style=&amp;quot;width: 392px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
A language identifier. &amp;amp;H0409 for US/English&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;18%&amp;quot; style=&amp;quot;width: 84px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
Man&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;103%&amp;quot; style=&amp;quot;width: 392px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
A string constant with the manufacture name.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;18%&amp;quot; style=&amp;quot;width: 84px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
Prod&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;103%&amp;quot; style=&amp;quot;width: 392px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
A string constant with the product name.&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;vertical-align: top;&amp;quot;&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;18%&amp;quot; style=&amp;quot;width: 84px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
Serial&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; width=&amp;quot;103%&amp;quot; style=&amp;quot;width: 392px; border: 1px solid rgb(0, 0, 0);&amp;quot; | &lt;br /&gt;
A string constant with the serial number.&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
The above settings determine how your device is displayed by the operating system.&lt;br /&gt;
&lt;br /&gt;
Since these settings end up in flash code space, it is best to chose short names. There is no limit to the length other then the USB specifications impose, but keep it short as possible. Strings in USB are UNI coded. Which mean that a word is used for each character. with normal ASCII coding, only a byte is used for each character.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
For a commercial USB device you need to give it a unique VID &amp;amp; PID combination. When you plan to use it at home, this is not needed.&lt;br /&gt;
&lt;br /&gt;
You can buy a Vendor ID (VID) from the USB organization. This cost 2000 $.&lt;br /&gt;
&lt;br /&gt;
As a service MCS offers a PID in the on line shop. This cost little and it gives you a unique Product ID(PID) but with the MCS Electronics VID.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;f_ImageCaption&amp;quot;&amp;gt;[[File:Notice.jpg|left|Notice.jpg]]N&amp;lt;/span&amp;gt;otice that using CONFIG USB will include a file named&amp;amp;nbsp;&amp;lt;span style=&amp;quot;font-weight: bold;&amp;quot;&amp;gt;USBINC.BAS&amp;lt;/span&amp;gt;. This file is not part of the BASCOM setup/distribution. It is available as a commercial add on. The add on package includes 3 samples , the include file, and a special activeX for the HID demo.&lt;br /&gt;
&lt;br /&gt;
None of the samples require a driver. A small UB162 module with normal pins is available from the on line shop too.&lt;br /&gt;
&lt;br /&gt;
The first supported USB devices are USB1287, USB162.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;span class=&amp;quot;f_Header&amp;quot;&amp;gt;See also&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;NONE&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;font-family: Arial;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;lt;span class=&amp;quot;f_Header&amp;quot;&amp;gt;Example&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;source lang=&amp;quot;bascomavr&amp;quot;&amp;gt;&lt;br /&gt;
$regfile = &amp;quot;usb162.dat&amp;quot;&lt;br /&gt;
$crystal = 8000000&lt;br /&gt;
$baud = 19200&lt;br /&gt;
 &lt;br /&gt;
Const Mdbg = 1&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Config Clockdiv = 1&lt;br /&gt;
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Const Vendor_id = &amp;amp;H16D0 ' MCS Vendor ID&lt;br /&gt;
Const Product_id = &amp;amp;H201D ' MCS product ID, you can buy a VID&amp;amp;PID in the MCS shop&lt;br /&gt;
 &lt;br /&gt;
Const Ep_control_length = 32&lt;br /&gt;
Const User_conf_size = 41&lt;br /&gt;
Const Size_of_report = 53&lt;br /&gt;
Const Device_class = 0&lt;br /&gt;
Const Device_sub_class = 0&lt;br /&gt;
Const Device_protocol = 0&lt;br /&gt;
Const Release_number = &amp;amp;H1000&lt;br /&gt;
Const Length_of_report_in = 8&lt;br /&gt;
Const Length_of_report_out = 8&lt;br /&gt;
Const Interface_nb = 0&lt;br /&gt;
Const Alternate = 0&lt;br /&gt;
Const Nb_endpoint = 2&lt;br /&gt;
Const Interface_class = 3 ' HID&lt;br /&gt;
Const Interface_sub_class = 0&lt;br /&gt;
Const Interface_protocol = 0&lt;br /&gt;
Const Interface_index = 0&lt;br /&gt;
 &lt;br /&gt;
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0&lt;br /&gt;
Print &amp;quot;USB GENERIC test&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
Declare Sub Usb_user_endpoint_init&lt;br /&gt;
Declare Sub Hid_test_hit()&lt;br /&gt;
Declare Sub Hid_task()&lt;br /&gt;
Declare Sub Hid_task_init()&lt;br /&gt;
 &lt;br /&gt;
Const Usb_config_attributes_reserved = &amp;amp;H80&lt;br /&gt;
Const Usb_config_buspowered = Usb_config_attributes_reserved&lt;br /&gt;
Const Usb_config_selfpowered = Usb_config_attributes_reserved Or &amp;amp;H40&lt;br /&gt;
Const Usb_config_remotewakeup = Usb_config_attributes_reserved Or &amp;amp;H20&lt;br /&gt;
 &lt;br /&gt;
Const Nb_interface = 1&lt;br /&gt;
Const Conf_nb = 1&lt;br /&gt;
Const Conf_index = 0&lt;br /&gt;
Const Conf_attributes = Usb_config_buspowered&lt;br /&gt;
Const Max_power = 50 ' 100 mA&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Const Interface_nb_mouse = 0&lt;br /&gt;
Const Alternate_mouse = 0&lt;br /&gt;
Const Nb_endpoint_mouse = 1&lt;br /&gt;
Const Interface_class_mouse = 3 ' HID Class&lt;br /&gt;
Const Interface_sub_class_mouse = 1 ' Sub Class is Mouse&lt;br /&gt;
Const Interface_protocol_mouse = 2 ' Mouse&lt;br /&gt;
Const Interface_index_mouse = 0&lt;br /&gt;
 &lt;br /&gt;
Const Nb_endpoints = 2 ' number of endpoints in the application including control endpoint&lt;br /&gt;
Const Ep_kbd_in = 1 ' Number of the mouse interrupt IN endpoint&lt;br /&gt;
Const Ep_hid_in = 1&lt;br /&gt;
Const Ep_hid_out = 2&lt;br /&gt;
 &lt;br /&gt;
Const Endpoint_nb_1 = Ep_hid_in Or &amp;amp;H80&lt;br /&gt;
Const Ep_attributes_1 = 3 ' BULK = 0x02, INTERUPT = 0x03&lt;br /&gt;
Const Ep_in_length_1 = 8&lt;br /&gt;
Const Ep_size_1 = Ep_in_length_1&lt;br /&gt;
Const Ep_interval_1 = 20 ' Interrupt polling interval from host&lt;br /&gt;
 &lt;br /&gt;
Const Endpoint_nb_2 = Ep_hid_out&lt;br /&gt;
Const Ep_attributes_2 = 3 ' BULK = 0x02, INTERUPT = 0x03&lt;br /&gt;
Const Ep_out_length = 8&lt;br /&gt;
Const Ep_size_2 = Ep_out_length&lt;br /&gt;
Const Ep_interval_2 = 20 ' interrupt polling from host&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Config Usb = Device , Language = &amp;amp;H0409 , Manufact = &amp;quot;MCS&amp;quot; , Product = &amp;quot;MCSHID162&amp;quot; , Serial = &amp;quot;MC0001&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
'Dim some user vars&lt;br /&gt;
Dim Usb_kbd_state As Byte , Usb_key As Byte , Usb_data_to_send As Byte&lt;br /&gt;
Dim Dummy As Byte , Dummy1 As Byte , Dummy2 As Byte&lt;br /&gt;
 &lt;br /&gt;
Print &amp;quot;task init&amp;quot;&lt;br /&gt;
Usb_task_init&lt;br /&gt;
Hid_task_init&lt;br /&gt;
Do&lt;br /&gt;
 Usb_task&lt;br /&gt;
 Hid_task&lt;br /&gt;
'you can call your sub program here&lt;br /&gt;
Loop&lt;br /&gt;
 &lt;br /&gt;
'nothing needed to init&lt;br /&gt;
Sub Hid_task_init()&lt;br /&gt;
'nothing&lt;br /&gt;
end sub&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
'HID task must be checked regular&lt;br /&gt;
Sub Hid_task()&lt;br /&gt;
 If Usb_connected = 1 Then ' Check USB HID is enumerated&lt;br /&gt;
 Usb_select_endpoint Ep_hid_out ' Get Data Repport From Host&lt;br /&gt;
 If Ueintx.rxouti = 1 Then ' Is_usb_receive_out())&lt;br /&gt;
 Dummy1 = Uedatx : Print &amp;quot;Got : &amp;quot; ; Dummy1&lt;br /&gt;
 Dummy2 = Uedatx : Print &amp;quot;Got : &amp;quot; ; Dummy2&lt;br /&gt;
 Dummy = Uedatx : Print &amp;quot;Got : &amp;quot; ; Dummy&lt;br /&gt;
 Dummy = Uedatx : Print &amp;quot;Got : &amp;quot; ; Dummy&lt;br /&gt;
 Dummy = Uedatx : Print &amp;quot;Got : &amp;quot; ; Dummy&lt;br /&gt;
 Dummy = Uedatx : Print &amp;quot;Got : &amp;quot; ; Dummy&lt;br /&gt;
 Dummy = Uedatx : Print &amp;quot;Got : &amp;quot; ; Dummy&lt;br /&gt;
 Dummy = Uedatx : Print &amp;quot;Got : &amp;quot; ; Dummy&lt;br /&gt;
 Usb_ack_receive_out&lt;br /&gt;
 End If&lt;br /&gt;
 &lt;br /&gt;
 If Dummy1 = &amp;amp;H55 And Dummy2 = &amp;amp;HAA Then ' Check if we received DFU mode command from host&lt;br /&gt;
 Usb_detach ' Detach Actual Generic Hid Application&lt;br /&gt;
 Waitms 500&lt;br /&gt;
 Goto &amp;amp;H1800 'goto bootloader&lt;br /&gt;
 'here you could call the bootloader then&lt;br /&gt;
 End If&lt;br /&gt;
 &lt;br /&gt;
 Usb_select_endpoint Ep_hid_in ' Ready to send these information to the host application&lt;br /&gt;
 If Ueintx.txini = 1 Then ' Is_usb_in_ready())&lt;br /&gt;
 Uedatx = 1&lt;br /&gt;
 Uedatx = 2&lt;br /&gt;
 Uedatx = 3&lt;br /&gt;
 Uedatx = 4&lt;br /&gt;
 Uedatx = 5&lt;br /&gt;
 Uedatx = 6&lt;br /&gt;
 Uedatx = 7&lt;br /&gt;
 Uedatx = 8&lt;br /&gt;
 Usb_ack_fifocon ' Send data over the USB&lt;br /&gt;
 End If&lt;br /&gt;
 End If&lt;br /&gt;
End Sub&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Function Usb_user_read_request(type As Byte , Request As Byte) As Byte&lt;br /&gt;
#if Mdbg&lt;br /&gt;
 Print &amp;quot;USB_USER_READ_REQ&amp;quot;&lt;br /&gt;
#endif&lt;br /&gt;
 Usb_string_type = Uedatx 'Usb_read_byte();&lt;br /&gt;
 Usb_descriptor_type = Uedatx 'Usb_read_byte();&lt;br /&gt;
 Usb_user_read_request = 0&lt;br /&gt;
Select Case Request&lt;br /&gt;
 Case Get_descriptor:&lt;br /&gt;
 Select Case Usb_descriptor_type&lt;br /&gt;
 Case Report : Call Hid_get_report()&lt;br /&gt;
 Usb_user_read_request = 1&lt;br /&gt;
 Case Hid : Call Hid_get_hid_descriptor()&lt;br /&gt;
 Usb_user_read_request = 1&lt;br /&gt;
 Case Else&lt;br /&gt;
 Usb_user_read_request = 0&lt;br /&gt;
 End Select&lt;br /&gt;
 Case Set_configuration:&lt;br /&gt;
 Select Case Usb_descriptor_type&lt;br /&gt;
 Case Set_report : Call Hid_set_report()&lt;br /&gt;
 Usb_user_read_request = 1&lt;br /&gt;
 Case Else&lt;br /&gt;
 Usb_user_read_request = 0&lt;br /&gt;
 End Select&lt;br /&gt;
 Case Get_interface:&lt;br /&gt;
 '// usb_hid_set_idle();&lt;br /&gt;
 Call Usb_hid_get_interface()&lt;br /&gt;
 Usb_user_read_request = 1&lt;br /&gt;
 Case Else&lt;br /&gt;
 Usb_user_read_request = 0&lt;br /&gt;
End Select&lt;br /&gt;
End Function&lt;br /&gt;
 &lt;br /&gt;
'usb_init_device.&lt;br /&gt;
'This function initializes the USB device controller and&lt;br /&gt;
'configures the Default Control Endpoint.&lt;br /&gt;
Sub Usb_init_device()&lt;br /&gt;
 #if Usbfunc&lt;br /&gt;
 Usb_select_device&lt;br /&gt;
 #endif&lt;br /&gt;
 #if Usbfunc&lt;br /&gt;
 If Usbsta.id = 1 Then 'is it an USB device?&lt;br /&gt;
 #endif&lt;br /&gt;
 Uenum = Ep_control ' select USB endpoint&lt;br /&gt;
 If Ueconx.epen = 0 Then ' usb endpoint not enabled yet&lt;br /&gt;
 Call Usb_configure_endpoint(ep_control , Type_control , Direction_out , Size_32 , One_bank , Nyet_disabled)&lt;br /&gt;
 End If&lt;br /&gt;
#if Usbfunc&lt;br /&gt;
 End If&lt;br /&gt;
#endif&lt;br /&gt;
End Sub&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Sub Usb_user_endpoint_init(byval Nm As Byte)&lt;br /&gt;
Call Usb_configure_endpoint(ep_hid_in , Type_interrupt , Direction_in , Size_8 , One_bank , Nyet_enabled)&lt;br /&gt;
Call Usb_configure_endpoint(ep_hid_out , Type_interrupt , Direction_out , Size_8 , One_bank , Nyet_enabled)&lt;br /&gt;
End Sub&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Usb_dev_desc:&lt;br /&gt;
Data 18 , Device_descriptor 'size and device_descriptor&lt;br /&gt;
Data 0 , 2 'Usb_write_word_enum_struc(USB_SPECIFICATION)&lt;br /&gt;
Data Device_class , Device_sub_class ' DEVICE_CLASS and DEVICE_SUB_CLASS&lt;br /&gt;
Data Device_protocol , Ep_control_length ' device protol and ep_control_length&lt;br /&gt;
Data Vendor_id% ' Usb_write_word_enum_struc(VENDOR_ID)&lt;br /&gt;
Data Product_id% ' Usb_write_word_enum_struc(PRODUCT_ID)&lt;br /&gt;
Data Release_number% ' Usb_write_word_enum_struc(RELEASE_NUMBER)&lt;br /&gt;
Data Man_index , Prod_index ' MAN_INDEX and PROD_INDEX&lt;br /&gt;
Data Sn_index , Nb_configuration ' SN_INDEX and NB_CONFIGURATION&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Usb_conf_desc:&lt;br /&gt;
Data 9 , Configuration_descriptor ' length , CONFIGURATION descriptor&lt;br /&gt;
Data User_conf_size% ' total length of data returned&lt;br /&gt;
Data Nb_interface , Conf_nb ' number of interfaces for this conf. , value for SetConfiguration resquest&lt;br /&gt;
Data Conf_index , Conf_attributes ' index of string descriptor , Configuration characteristics&lt;br /&gt;
Data Max_power ' maximum power consumption&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Data 9 , Interface_descriptor 'length , INTERFACE descriptor type&lt;br /&gt;
Data Interface_nb , Alternate 'Number of interface , value to select alternate setting&lt;br /&gt;
Data Nb_endpoint , Interface_class 'Number of EP except EP 0 ,Class code assigned by the USB&lt;br /&gt;
Data Interface_sub_class , Interface_protocol 'Sub-class code assigned by the USB , Protocol code assigned by the USB&lt;br /&gt;
Data Interface_index 'Index Of String Descriptor&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Data 9 , Hid_descriptor 'length , HID descriptor type&lt;br /&gt;
Data Hid_bdc% , 8 ' Binay Coded Decimal Spec. release , Hid_country_code&lt;br /&gt;
Data Hid_class_desc_nb , Hid_descriptor_type 'Number of HID class descriptors to follow , Report descriptor type&lt;br /&gt;
Data Size_of_report% 'HID KEYBOARD LENGTH&lt;br /&gt;
 &lt;br /&gt;
Data 7 , Endpoint_descriptor ' Size Of This Descriptor In Bytes , ENDPOINT descriptor type&lt;br /&gt;
Data Endpoint_nb_1 , Ep_attributes_1 ' Address of the endpoint ,Endpoint's attributes&lt;br /&gt;
Data Ep_size_1% ' Maximum packet size for this EP , Interval for polling EP in ms&lt;br /&gt;
Data Ep_interval_1&lt;br /&gt;
 &lt;br /&gt;
Data 7 , Endpoint_descriptor ' Size Of This Descriptor In Bytes , ENDPOINT descriptor type&lt;br /&gt;
Data Endpoint_nb_2 , Ep_attributes_2 ' Address of the endpoint , Endpoint's attributes&lt;br /&gt;
Data Ep_size_2% ' Maximum packet size for this EP&lt;br /&gt;
Data Ep_interval_2 ' Interval for polling EP in ms&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
Usb_hid_report:&lt;br /&gt;
Data &amp;amp;H06 , &amp;amp;HFF , &amp;amp;HFF ' 04|2 , Usage Page (vendordefined?)&lt;br /&gt;
Data &amp;amp;H09 , &amp;amp;H01 ' 08|1 , Usage (vendordefined&lt;br /&gt;
Data &amp;amp;HA1 , &amp;amp;H01 ' A0|1 , Collection (Application)&lt;br /&gt;
' // IN report&lt;br /&gt;
Data &amp;amp;H09 , &amp;amp;H02 ' 08|1 , Usage (vendordefined)&lt;br /&gt;
Data &amp;amp;H09 , &amp;amp;H03 ' 08|1 , Usage (vendordefined)&lt;br /&gt;
Data &amp;amp;H15 , &amp;amp;H00 ' 14|1 , Logical Minimum(0 for signed byte?)&lt;br /&gt;
Data &amp;amp;H26 , &amp;amp;HFF , &amp;amp;H00 ' 24|1 , Logical Maximum(255 for signed byte?)&lt;br /&gt;
Data &amp;amp;H75 , &amp;amp;H08 ' 74|1 , Report Size(8) = field size in bits = 1 byte&lt;br /&gt;
Data &amp;amp;H95 , Length_of_report_in ' 94|1:ReportCount(size) = repeat count of previous item&lt;br /&gt;
Data &amp;amp;H81 , &amp;amp;H02 ' 80|1: IN report (Data,Variable, Absolute)&lt;br /&gt;
' // OUT report&lt;br /&gt;
Data &amp;amp;H09 , &amp;amp;H04 ' 08|1 , Usage (vendordefined)&lt;br /&gt;
Data &amp;amp;H09 , &amp;amp;H05 ' 08|1 , Usage (vendordefined)&lt;br /&gt;
Data &amp;amp;H15 , &amp;amp;H00 ' 14|1 , Logical Minimum(0 for signed byte?)&lt;br /&gt;
Data &amp;amp;H26 , &amp;amp;HFF , &amp;amp;H00 ' 24|1 , Logical Maximum(255 for signed byte?)&lt;br /&gt;
Data &amp;amp;H75 , &amp;amp;H08 ' 74|1 , Report Size(8) = field size in bits = 1 byte&lt;br /&gt;
Data &amp;amp;H95 , Length_of_report_out ' 94|1:ReportCount(size) = repeat count of previous item&lt;br /&gt;
Data &amp;amp;H91 , &amp;amp;H02 ' 90|1: OUT report (Data,Variable, Absolute)&lt;br /&gt;
' // Feature report&lt;br /&gt;
Data &amp;amp;H09 , &amp;amp;H06 ' 08|1 , Usage (vendordefined)&lt;br /&gt;
Data &amp;amp;H09 , &amp;amp;H07 ' 08|1 , Usage (vendordefined)&lt;br /&gt;
Data &amp;amp;H15 , &amp;amp;H00 ' 14|1 , LogicalMinimum(0 for signed byte)&lt;br /&gt;
Data &amp;amp;H26 , &amp;amp;HFF , &amp;amp;H00 ' 24|1 , Logical Maximum(255 for signed byte)&lt;br /&gt;
Data &amp;amp;H75 , &amp;amp;H08 ' 74|1 , Report Size(8) =field size in bits = 1 byte&lt;br /&gt;
Data &amp;amp;H95 , &amp;amp;H04 ' 94|1:ReportCount&lt;br /&gt;
Data &amp;amp;HB1 , &amp;amp;H02 ' B0|1: Feature report&lt;br /&gt;
Data &amp;amp;HC0 ' C0|0 , End Collection&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;br/&amp;gt;{{Languages}}&lt;br /&gt;
&lt;br /&gt;
[[Category:BASCOM Language Reference/de]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>