Motorola USB08 Reference Manual page 110

Universal serial bus evaluation board using the mc68hc908jb8
Table of Contents

Advertisement

Source Code Files
// handle IN Packet Transmit complete over EP1
//
void handleIN1() {
uchar n;
uchar *dest;
UCR1 &= ~BM_TX1E;
UIR2 = BM_TXD1FR;
// refill EP1 Tx Data Buffer
n = 0;
dest = &UE1D0;
while((TxBuf_RdIdx != TxBuf_WrIdx) && n<8) {
*dest = TxBuffer[TxBuf_RdIdx];
TxBuf_RdIdx = (TxBuf_RdIdx+1) & (MAX_TXBUF_SIZE-1);
dest++;
n++;
}
// Activate EP1 Transmitter to send n Bytes
UCR1 = ((UCR1^BM_T1SEQ) & BM_T1SEQ) + BM_TX1E + n;
}
//----------------------------------------------------------------------------
// handle OUT Packet received over EP2
//
void handleOUT2() {
uchar n;
uchar newIdx;
uchar *src;
UCR2 &= ~BM_RX2E;
UIR2 = BM_RXD2FR;
// ### Sender's DATA Toggle should be checked!
// read out EP2 Rx Data Buffer
src = &UE2D0;
n = USR1 & BM_RP2SIZ;
while(n) {
newIdx = (RxBuf_WrIdx+1) & (MAX_RXBUF_SIZE-1);
while(newIdx == RxBuf_RdIdx)
;
RxBuffer[RxBuf_WrIdx] = *src;
RxBuf_WrIdx = newIdx;
src++;
n--;
}
UCR2 = BM_RX2E;
}
//----------------------------------------------------------------------------
Designer Reference Manual
110
// Deactivate EP1 Transmitter
// Reset EP1 Transmit complete Flag
// Deactivate EP2 Receiver
// Reset EP2 Receive Flag
// Check Transfer Size
// wait if TxBuffer is full
// Activate EP2 Receiver
Source Code Files
USB08 Evaluation Board
MOTOROLA

Advertisement

Table of Contents
loading

This manual is also suitable for:

Mc68hc908jb8

Table of Contents