Source Code Files
Contents
USB08 Evaluation Board Designer Reference Manual
MOTOROLA Source Code Files 105
//--------------------- ------------------------ ----------------------- --------
#define ENDPOINT_HALT0x00
#define RT_ENDPOINT0x02
// CLEAR_FEATURE Standa rd Device Request Handle r
// called by handleSETU P();
//
void clearFeature() {
if( SetupBuffer.wValue.hi ||
SetupBuffer.wIndex.hi | |
SetupBuffer.wLength.hi ||
SetupBuffer.wLength.lo) // check 0-fields
forceSTALL();
else if((SetupBuffer.bm RequestType == RT_ENDPOI NT) &&
(SetupBuffer.wValue.lo == ENDPOINT_HALT) &&
((SetupBuffer.wIndex.lo == 0x8 1) || (SetupBuffer.wIndex.l o==0x02))) {
// clear EP1/2 Force ST ALL Bit
if(SetupBuffer.wIndex.l o == 0x 81 ) {// EP1
UCR1 &= ~(BM_T1SEQ+BM_S TALL1); // cle ar STALL, Sequence = DAT A0
}
else { // EP2
UCR2 &= ~BM_STALL2; // clear STALL
R2Sequence = 0; // Sequence = DATA0
}
// prepare to send empt y DATA1 at next IN Trans action
UCR0 = BM_T0SEQ + BM_TX 0E + 0;
}
else forceSTALL();
}
//--------------------- ------------------------ ----------------------- --------
// SET_ADDRESS Standard Device Request Handler
// called by handleSETU P();
//
void setAddress() {
if( SetupBuffer.wIndex.hi | |
SetupBuffer.wIndex.lo | |
SetupBuffer.wLength.hi ||
SetupBuffer.wLength.lo ||
SetupBuffer.wValue.hi | |
(SetupBuffer.wValue.lo & 0x8 0) )
forceSTALL();
else {
// prepare to send empt y DATA1 at next IN Trans action
UCR0 = BM_T0SEQ + BM_TX 0E + 0;
}
}
//--------------------- ------------------------ ----------------------- --------