Stap 3: Gebruik de usb-bibliotheek
Nu moet u dit voor meer informatie over de controller downloaden: https://github.com/ribbotson/USB-Host/blob/master/examples/USB_desc.pde
Met deze code ontdekken we allerlei dingen over de arduino.
Zie:
Start
freeMemory() verslagen 683
Apparaat descriptor:
Descriptor lengte: 12
Descriptor type: 01
USB versie: 0200
Stuurprogramma-installatieklasse: 00
Apparaat subklasse: 00
Apparaat Protocol: 00
Max.Packet grootte: 40
Vendor ID: 054C
Product-ID: 0268
Herziening ID: 0100
Mfg.String index: 01
Prod.String index: 02
Serienummer index: 00
Aantal conf.: 01
Configuratie-descriptor:
Totale lengte: 0029
Num.intf: 01
Conf.Value: 01
Conf.String: 00
Attr.: 80
Max.PWR: FA
Interface descriptor:
Intf.Number: 00
ALT.: 00
Eindpunten: 02
Intf. Klasse: 03
Intf. Onderklasse: 00
Intf. Protocol: 00
Intf.String: 00
Onbekende descriptor:
Lengte: 09
Type: 21
Inhoud: 110100012294000705
Eindpunt descriptor:
Adres van eindpunt: 02
Attr.: 03
Max.PKT grootte: 0040
Polling-interval: 01
Eindpunt descriptor:
Adres van eindpunt: 81
Attr.: 03
Max.PKT grootte: 0040
Polling-interval: 01
memoryMin() verslagen 336
Nu moeten we om de bibliotheek en de controller gesynchroniseerd. om dat te doen, hebben we de volgende code gebruiken:
typedef struct {}
byte epAddr; Kopieer vanuit eindpunt descriptor zonder bit 7 als instellen
byte Attr; Betreffende soort gegevensoverdracht op eindpunt.
unsigned int MaxPktSize; Maximale pakketgrootte.
byte Interval; Polling-interval in frames.
byte sndToggle; laatste knevel waarde, bitmasker voor de beetjes van de knevel van de HCTL
byte rcvToggle; laatste knevel waarde, bitmasker voor de beetjes van de knevel van de HCTL
} EP_RECORD;
en ook dit:
device_descriptor = (USB_DEVICE_DESCRIPTOR *) & buf;
Als ()
(device_descriptor -> idVendor! = PS3_VID) || (device_descriptor -> idProduct! = PS3_PID)) {
Serial.println ("niet-ondersteunde USB-apparaat');
while(1); Stop