//---------------------------------------------------------------------------- BYTE OEP0InterruptHandler(VOID) { BYTE bWakeUp = FALSE; USBCTL |= FRSTE; // Function Reset Connection Enable tEndPoint0DescriptorBlock.bIEPBCNT = 0x00; if(bStatusAction == STATUS_ACTION_DATA_OUT) { usbReceiveNextPacketOnOEP0(); if(bStatusAction == STATUS_ACTION_NOTHING) { # ifdef _CDC_ if(tSetupPacket.bRequest == USB_CDC_SET_LINE_CODING) { bWakeUp = Handler_SetLineCoding(); } # endif #ifdef _HID_ if (tSetupPacket.bRequest == USB_REQ_SET_REPORT) { bWakeUp = USBHID_handleSetReportDataAvailable(tSetupPacket.wIndex); } #endif } } else { tEndPoint0DescriptorBlock.bOEPCNFG |= EPCNF_STALL; // no more data } return (bWakeUp); }
//---------------------------------------------------------------------------- VOID OEP0InterruptHandler(VOID) { USBCTL |= FRSTE; // Function Reset Connection Enable tEndPoint0DescriptorBlock.bIEPBCNT = 0x00; if(bStatusAction == STATUS_ACTION_DATA_OUT) { usbReceiveNextPacketOnOEP0(); if(bStatusAction == STATUS_ACTION_NOTHING) { switch(tSetupPacket.bRequest) { #ifdef _CDC_ case USB_CDC_SET_LINE_CODING: Handler_SetLineCoding(); break; #endif // _CDC_ default:; } } } else { tEndPoint0DescriptorBlock.bOEPCNFG |= EPCNF_STALL; // no more data } }