Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
USBHID/usbdc.h
- Committer:
- igor_m
- Date:
- 2011-09-25
- Revision:
- 0:547c5459faa6
File content as of revision 0:547c5459faa6:
/* usbdc.h */
/* USB device controller */
/* Copyright (c) Phil Wright 2008 */
#ifndef USBDC_H
#define USBDC_H
/* 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 */
#include "mbed.h"
class usbdc : public Base
{
public:
usbdc();
void connect(void);
void disconnect(void);
protected:
void setAddress(unsigned char address);
void realiseEndpoint(unsigned char endpoint, unsigned long maxPacket);
void enableEndpointEvent(unsigned char endpoint);
void disableEndpointEvent(unsigned char endpoint);
void stallEndpoint(unsigned char endpoint);
void unstallEndpoint(unsigned char endpoint);
bool getEndpointStallState(unsigned char endpoint);
void configureDevice(void);
void unconfigureDevice(void);
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);
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 selectEndpoint(unsigned char endpoint);
unsigned char selectEndpointClearInterrupt(unsigned char endpoint);
unsigned char clearBuffer(void);
void validateBuffer(void);
void usbisr(void);
unsigned long endpointStallState;
static void _usbisr(void);
static usbdc *instance;
};
#endif