A fully-Android-compatible two joysticks USB driver for LPC1768. The joysticks have 1 hat, 6 buttons, and there are 1P, 2P buttons.
Fork of app-board-Joystick by
Diff: usbdc.h
- Revision:
- 3:f1a8ec4659f8
- Parent:
- 1:76c47d2ba442
--- a/usbdc.h Sat Dec 17 13:13:59 2016 +0000 +++ b/usbdc.h Sat Dec 17 15:10:12 2016 +0000 @@ -2,25 +2,24 @@ /* USB device controller */ /* Copyright (c) Phil Wright 2008 */ -#ifndef USBDC_H -#define USBDC_H +#pragma once /* Endpoints */ #define EP0OUT (0) /* Control */ #define EP0IN (1) /* Control */ -#define EP1OUT (2) /* Interrupt */ -#define EP1IN (3) /* Interrupt */ -#define EP2OUT (4) /* Bulk */ -#define EP2IN (5) /* Bulk */ +#define EP1OUT (2) +#define EP1IN (3) +#define EP2OUT (4) +#define EP2IN (5) #include "mbed.h" -class usbdc //: public Base +class usbdc { public: usbdc(); - void connect(void); - void disconnect(void); + void connect(); + void disconnect(); protected: void setAddress(unsigned char address); void realiseEndpoint(unsigned char endpoint, unsigned long maxPacket); @@ -29,36 +28,34 @@ void stallEndpoint(unsigned char endpoint); void unstallEndpoint(unsigned char endpoint); bool getEndpointStallState(unsigned char endpoint); - void configureDevice(void); - void unconfigureDevice(void); + void configureDevice(); + void unconfigureDevice(); unsigned long endpointRead(unsigned char endpoint, unsigned char *buffer); void endpointWrite(unsigned char endpoint, unsigned char *buffer, unsigned long size); - void enableEvents(void); - void disableEvents(void); - virtual void deviceEventReset(void); - virtual void deviceEventFrame(void); - virtual void endpointEventEP0Setup(void); - virtual void endpointEventEP0In(void); - virtual void endpointEventEP0Out(void); - virtual void endpointEventEP1In(void); - virtual void endpointEventEP1Out(void); - virtual void endpointEventEP2In(void); - virtual void endpointEventEP2Out(void); + void enableEvents(); + void disableEvents(); + virtual void deviceEventReset(); + virtual void deviceEventFrame(); + virtual void endpointEventEP0Setup(); + virtual void endpointEventEP0In(); + virtual void endpointEventEP0Out(); + virtual void endpointEventEP1In(); + virtual void endpointEventEP1Out(); + virtual void endpointEventEP2In(); + virtual void endpointEventEP2Out(); private: void SIECommand(unsigned long command); void SIEWriteData(unsigned char data); unsigned char SIEReadData(unsigned long command); void setDeviceStatus(unsigned char status); void setEndpointStatus(unsigned char endpoint, unsigned char status); - unsigned char getDeviceStatus(void); + unsigned char getDeviceStatus(); unsigned char selectEndpoint(unsigned char endpoint); unsigned char selectEndpointClearInterrupt(unsigned char endpoint); - unsigned char clearBuffer(void); - void validateBuffer(void); - void usbisr(void); + unsigned char clearBuffer(); + void validateBuffer(); + void usbisr(); unsigned long endpointStallState; - static void _usbisr(void); + static void _usbisr(); static usbdc *instance; }; - -#endif \ No newline at end of file