diff options
Diffstat (limited to 'libmaple/usb/usb.h')
-rw-r--r-- | libmaple/usb/usb.h | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/libmaple/usb/usb.h b/libmaple/usb/usb.h new file mode 100644 index 0000000..e76772e --- /dev/null +++ b/libmaple/usb/usb.h @@ -0,0 +1,64 @@ +/* insert license */ + +#ifndef __USB_H_ +#define __USB_H_ + + +#include "usb_lib.h" +#include "libmaple.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum + { + RESUME_EXTERNAL, + RESUME_INTERNAL, + RESUME_LATER, + RESUME_WAIT, + RESUME_START, + RESUME_ON, + RESUME_OFF, + RESUME_ESOF + } RESUME_STATE; + +typedef enum + { + UNCONNECTED, + ATTACHED, + POWERED, + SUSPENDED, + ADDRESSED, + CONFIGURED + } DEVICE_STATE; + + extern volatile uint32 bDeviceState; + + void setupUSB(void); + void usbSuspend(void); + void usbResumeInit(void); + void usbResume(RESUME_STATE); + + RESULT usbPowerOn(void); + RESULT usbPowerOff(void); + + void usbDsbISR(void); + void usbEnbISR(void); + + /* overloaded ISR routine, this is the main usb ISR */ + void usb_lpIRQHandler(void); + void usbWaitReset(void); + + /* blocking functions for send/receive */ + int16 usbSendBytes(uint8* sendBuf,uint16 len); + uint8 usbBytesAvailable(void); + uint8 usbReceiveBytes(uint8* recvBuf, uint8 len); + + void usbSendHello(void); + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif //_USB_H |