aboutsummaryrefslogtreecommitdiffstats
path: root/core/usb/usb_callbacks.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_callbacks.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_callbacks.h')
-rw-r--r--core/usb/usb_callbacks.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/core/usb/usb_callbacks.h b/core/usb/usb_callbacks.h
index 53857ae..b95ea15 100644
--- a/core/usb/usb_callbacks.h
+++ b/core/usb/usb_callbacks.h
@@ -5,6 +5,7 @@
#include "libmaple.h"
#include "usb_lib.h"
+#include "usb_config.h"
#define SET_LINE_CODING 0x20
#define GET_LINE_CODING 0x21
@@ -30,6 +31,13 @@ typedef enum {
DTR_NRTS
} RESET_STATE;
+extern RESET_STATE reset_state; /* tracks DTR/RTS */
+extern uint8 countTx;
+extern uint8 vcomBufferRx[VCOM_RX_EPSIZE]; /* no reason this has to be VCOM_RX_EPSIZE, could be bigger */
+extern uint8 recvBufIn; /* the FIFO in index to the recvbuffer */
+extern uint8 recvBufOut; /* the FIFO out index to the recvbuffer */
+extern uint8 maxNewBytes;
+
void vcomDataTxCb(void);
void vcomDataRxCb(void);
void vcomManagementCb(void);