void __attribute__((interrupt, auto_psv)) _USB1Interrupt() { //USB interrupt //IRQ enable IEC5bits.USB1IE //IRQ flag IFS5bits.USB1IF //IRQ priority IPC21<10:8> usb_handler(); ClearGlobalUsbInterruptFlag(); }
BYTE FAST_usb_handler(void) { if (TestGlobalUsbInterruptFlag()) { if (USB_RESET_FLAG) { usb_handle_reset(); ClearUsbInterruptFlag(USB_URST); return 0xFF; } if (USB_TRANSACTION_FLAG) { trn_status = GetUsbTransaction(); if (USB_STAT2EP(trn_status)) { usb_handle_transaction(); ClearUsbInterruptFlag(USB_TRN); // non-EP0 only return 0xFF; } else { ClearUsbInterruptFlag(USB_TRN); // non-EP0 only } } ClearGlobalUsbInterruptFlag(); } return 0; }