aboutsummaryrefslogtreecommitdiffstats
path: root/core/usb/usb.h
diff options
context:
space:
mode:
authorAJM <poslathian@poslathian.(none)>2010-04-24 22:23:50 -0400
committerbnewbold <bnewbold@robocracy.org>2010-05-20 22:09:15 -0400
commit6ad3acd15e9859ac9bc77c1eb04d67108dcc5a03 (patch)
tree689a264bfd8535205a9a905afc03e38cf762520b /core/usb/usb.h
parenta86ec7c81d7ad2037e900899a0b32c5592cae7c0 (diff)
downloadlibrambutan-6ad3acd15e9859ac9bc77c1eb04d67108dcc5a03.tar.gz
librambutan-6ad3acd15e9859ac9bc77c1eb04d67108dcc5a03.zip
finally got TX working without any delay, there is some weird timing involved in what happens when the line state is toggled (host port disconnected) and theres still data waiting to go out, this will hang any while(txCount != 0) calls. similarly, sending data without checking txCount != 0 will hard fault the chip. This is all handled now by usbSendBytes, which returns -1 for unconnected, and 0 for simply 'waiting to send'
Diffstat (limited to 'core/usb/usb.h')
-rw-r--r--core/usb/usb.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/core/usb/usb.h b/core/usb/usb.h
index 087ca72..c6377ab 100644
--- a/core/usb/usb.h
+++ b/core/usb/usb.h
@@ -49,6 +49,11 @@ typedef enum
/* overloaded ISR routine, this is the main usb ISR */
void usb_lpIRQHandler(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