RC_Simulator.....By Jafar Qutteineh with mods to connect my Futaba 9C to \'RC Helicopter\' by http://www.alphamacsoftware.com/

Dependencies:   mbed

Committer:
cbayley
Date:
Thu Dec 15 03:24:33 2011 +0000
Revision:
0:65b9d8f621d2
Initial

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cbayley 0:65b9d8f621d2 1 /* usbdc.h */
cbayley 0:65b9d8f621d2 2 /* USB device controller */
cbayley 0:65b9d8f621d2 3 /* Copyright (c) Phil Wright 2008 */
cbayley 0:65b9d8f621d2 4
cbayley 0:65b9d8f621d2 5 #ifndef USBDC_H
cbayley 0:65b9d8f621d2 6 #define USBDC_H
cbayley 0:65b9d8f621d2 7
cbayley 0:65b9d8f621d2 8 /* Endpoints */
cbayley 0:65b9d8f621d2 9 #define EP0OUT (0) /* Control */
cbayley 0:65b9d8f621d2 10 #define EP0IN (1) /* Control */
cbayley 0:65b9d8f621d2 11 #define EP1OUT (2) /* Interrupt */
cbayley 0:65b9d8f621d2 12 #define EP1IN (3) /* Interrupt */
cbayley 0:65b9d8f621d2 13 #define EP2OUT (4) /* Bulk */
cbayley 0:65b9d8f621d2 14 #define EP2IN (5) /* Bulk */
cbayley 0:65b9d8f621d2 15
cbayley 0:65b9d8f621d2 16 #include "mbed.h"
cbayley 0:65b9d8f621d2 17
cbayley 0:65b9d8f621d2 18 class usbdc : public Base
cbayley 0:65b9d8f621d2 19 {
cbayley 0:65b9d8f621d2 20 public:
cbayley 0:65b9d8f621d2 21 usbdc();
cbayley 0:65b9d8f621d2 22 void connect(void);
cbayley 0:65b9d8f621d2 23 void disconnect(void);
cbayley 0:65b9d8f621d2 24 protected:
cbayley 0:65b9d8f621d2 25 void setAddress(unsigned char address);
cbayley 0:65b9d8f621d2 26 void realiseEndpoint(unsigned char endpoint, unsigned long maxPacket);
cbayley 0:65b9d8f621d2 27 void enableEndpointEvent(unsigned char endpoint);
cbayley 0:65b9d8f621d2 28 void disableEndpointEvent(unsigned char endpoint);
cbayley 0:65b9d8f621d2 29 void stallEndpoint(unsigned char endpoint);
cbayley 0:65b9d8f621d2 30 void unstallEndpoint(unsigned char endpoint);
cbayley 0:65b9d8f621d2 31 bool getEndpointStallState(unsigned char endpoint);
cbayley 0:65b9d8f621d2 32 void configureDevice(void);
cbayley 0:65b9d8f621d2 33 void unconfigureDevice(void);
cbayley 0:65b9d8f621d2 34 unsigned long endpointRead(unsigned char endpoint, unsigned char *buffer);
cbayley 0:65b9d8f621d2 35 void endpointWrite(unsigned char endpoint, unsigned char *buffer, unsigned long size);
cbayley 0:65b9d8f621d2 36 void enableEvents(void);
cbayley 0:65b9d8f621d2 37 void disableEvents(void);
cbayley 0:65b9d8f621d2 38 virtual void deviceEventReset(void);
cbayley 0:65b9d8f621d2 39 virtual void deviceEventFrame(void);
cbayley 0:65b9d8f621d2 40 virtual void endpointEventEP0Setup(void);
cbayley 0:65b9d8f621d2 41 virtual void endpointEventEP0In(void);
cbayley 0:65b9d8f621d2 42 virtual void endpointEventEP0Out(void);
cbayley 0:65b9d8f621d2 43 virtual void endpointEventEP1In(void);
cbayley 0:65b9d8f621d2 44 virtual void endpointEventEP1Out(void);
cbayley 0:65b9d8f621d2 45 virtual void endpointEventEP2In(void);
cbayley 0:65b9d8f621d2 46 virtual void endpointEventEP2Out(void);
cbayley 0:65b9d8f621d2 47 private:
cbayley 0:65b9d8f621d2 48 void SIECommand(unsigned long command);
cbayley 0:65b9d8f621d2 49 void SIEWriteData(unsigned char data);
cbayley 0:65b9d8f621d2 50 unsigned char SIEReadData(unsigned long command);
cbayley 0:65b9d8f621d2 51 void setDeviceStatus(unsigned char status);
cbayley 0:65b9d8f621d2 52 void setEndpointStatus(unsigned char endpoint, unsigned char status);
cbayley 0:65b9d8f621d2 53 unsigned char getDeviceStatus(void);
cbayley 0:65b9d8f621d2 54 unsigned char selectEndpoint(unsigned char endpoint);
cbayley 0:65b9d8f621d2 55 unsigned char selectEndpointClearInterrupt(unsigned char endpoint);
cbayley 0:65b9d8f621d2 56 unsigned char clearBuffer(void);
cbayley 0:65b9d8f621d2 57 void validateBuffer(void);
cbayley 0:65b9d8f621d2 58 void usbisr(void);
cbayley 0:65b9d8f621d2 59 unsigned long endpointStallState;
cbayley 0:65b9d8f621d2 60 static void _usbisr(void);
cbayley 0:65b9d8f621d2 61 static usbdc *instance;
cbayley 0:65b9d8f621d2 62 };
cbayley 0:65b9d8f621d2 63
cbayley 0:65b9d8f621d2 64
cbayley 0:65b9d8f621d2 65 #endif