Jafar Qutteineh / Mbed 2 deprecated RC_Simulator

Dependencies:   mbed

Committer:
j3sq
Date:
Sat Jul 02 17:27:05 2011 +0000
Revision:
0:3dbb22992c94
Revision 0.0 (This is just a demonstration)

Who changed what in which revision?

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