📄 gfbrds.c
字号:
EZUSB_SET_EP_BYTES(IN0BUF_ID,1);
return(TRUE); // Handled by user code
}
BOOL DR_GetStatus(void)
{
return(TRUE);
}
BOOL DR_ClearFeature(void)
{
return(TRUE);
}
BOOL DR_SetFeature(void)
{
return(TRUE);
}
#define VX_B0 0xB0 // abort GPIF
#define VX_B1 0xB1 // flush/reset slave FIFOs
#define VX_B2 0xB2 // handle data xfr via TD_Poll
#define VX_B3 0xB3 // handle data xfr via DR_VendorCmd
#define VX_B4 0xB4 // clear debug leds
#define VX_B5 0xB5 // read aout fifo bc
#define VX_B6 0xB6 // read DONE
#define VX_B7 0xB7 // read aout fifo tc
#define VX_B8 0xB8 // read ain fifo tc
BOOL DR_VendorCmnd( void )
{
switch( SETUPDAT[ 1 ] )
{
case VX_B0:
{ // ABORT GPIF waveform
ABORT = 0xFF;
*IN0BUF = 0xB0; // return command type
break;
}
case VX_B1:
{ // flush slave FIFOs
ABFLUSH = 0xFF;
*IN0BUF = 0xB1; // return command type
break;
}
case VX_B2:
{ // handle data xfr via TD_Poll
zerolenpkt = 0; // clr flag, just in case one was pending
EX0 = 1; // (re)enable INT0# pin ISR
ledX_rdvar = LED3_OFF;
xfrvia_TD_Poll = 1;
*IN0BUF = 0xB2; // return command type
break;
}
case VX_B3:
{ // handle data xfr via DR_VendorCmd
xfrvia_TD_Poll = 0;
*IN0BUF = 0xB3; // return command type
break;
}
case VX_B4:
{ // clear debug leds
ledX_rdvar = LED0_OFF;
ledX_rdvar = LED1_OFF;
ledX_rdvar = LED2_OFF;
ledX_rdvar = LED3_OFF;
*IN0BUF = 0xB4; // return command type
break;
}
case VX_B5:
{ // read aout fifo bc
*IN0BUF = AOUTBC; // return command type
break;
}
case VX_B6:
{ // read DONE
*IN0BUF = IDLE_CS; // return command type
break;
}
case VX_B7:
{ // read aout fifo tc
*IN0BUF = AOUTTC; // return command type
break;
}
case VX_B8:
{ // read ain fifo tc
*IN0BUF = AINTC; // return command type
break;
}
default:
{
break;
}
}
IN0BC = 0x01; // arm endp, # bytes to xfr
EP0CS |= bmBIT1; // ack handshake phase of device request
return( FALSE ); // no errors, cmd handled okay
}
//-----------------------------------------------------------------------------
// USB Interrupt Handlers
// The following functions are called by the USB interrupt jump table.
//-----------------------------------------------------------------------------
// Setup Data Available Interrupt Handler
void ISR_Sudav(void) interrupt 0
{
GotSUD = TRUE; // Set flag
EZUSB_IRQ_CLEAR();
USBIRQ = bmSUDAV; // Clear SUDAV IRQ
}
// Setup Token Interrupt Handler
void ISR_Sutok(void) interrupt 0
{
EZUSB_IRQ_CLEAR();
USBIRQ = bmSUTOK; // Clear SUTOK IRQ
}
void ISR_Sof(void) interrupt 0
{
EZUSB_IRQ_CLEAR();
USBIRQ = bmSOF; // Clear SOF IRQ
}
void ISR_Ures(void) interrupt 0
{
EZUSB_IRQ_CLEAR();
USBIRQ = bmURES; // Clear URES IRQ
}
// ISR for the IN Bulk NAK (IBN) interrupt.
void ISR_IBN(void) interrupt 0
{
}
void ISR_Susp(void) interrupt 0
{
Sleep = TRUE;
EZUSB_IRQ_CLEAR();
USBIRQ = bmSUSP;
}
void ISR_Ep0in(void) interrupt 0
{
}
void ISR_Ep0out(void) interrupt 0
{
}
void ISR_Ep1in(void) interrupt 0
{
}
void ISR_Ep1out(void) interrupt 0
{
}
void ISR_Ep2in(void) interrupt 0
{
}
void ISR_Ep2out( void ) interrupt 0
{
}
void ISR_Ep3in(void) interrupt 0
{
}
void ISR_Ep3out(void) interrupt 0
{
}
void ISR_Ep4in(void) interrupt 0
{
}
void ISR_Ep4out(void) interrupt 0
{
}
void ISR_Ep5in(void) interrupt 0
{
}
void ISR_Ep5out(void) interrupt 0
{
}
void ISR_Ep6in(void) interrupt 0
{
}
void ISR_Ep6out(void) interrupt 0
{
}
void ISR_Ep7in(void) interrupt 0
{
}
void ISR_Ep7out(void) interrupt 0
{
}
//-----------------------------------------------------------------------------
// INT4 Interrupt Handlers
// The following functions are called by the INT4 interrupt jump table.
//-----------------------------------------------------------------------------
void ISR_AINPF(void) interrupt 0
{
// EXIF &= ~0x40;
// ABINIRQ = bmAINPF; // Clear AINPF IRQ
}
void ISR_AINEF(void) interrupt 0
{
// EXIF &= ~0x40;
// ABINIRQ = bmAINEF; // Clear AINEF IRQ
}
void ISR_AINFF(void) interrupt 0
{
// EXIF &= ~0x40;
// ABINIRQ = bmAINFF; // Clear AINFF IRQ
}
void ISR_BINPF(void) interrupt 0
{
// EXIF &= ~0x40;
// ABINIRQ = bmBINPF; // Clear BINPF IRQ
}
void ISR_BINEF(void) interrupt 0
{
// EXIF &= ~0x40;
// ABINIRQ = bmBINEF; // Clear BINEF IRQ
}
void ISR_BINFF(void) interrupt 0
{
// EXIF &= ~0x40;
// ABINIRQ = bmBINFF; // Clear BINFF IRQ
}
void ISR_AOUTPF(void) interrupt 0
{
// EXIF &= ~0x40;
// ABOUTIRQ = bmAOUTPF; // Clear AOUTPF IRQ
}
void ISR_AOUTEF(void) interrupt 0
{
// EXIF &= ~0x40;
// ABINIRQ = bmAOUTEF; // Clear AOUTEF IRQ
}
void ISR_AOUTFF(void) interrupt 0
{
// EXIF &= ~0x40;
// ABINIRQ = bmAOUTFF; // Clear AOUTFF IRQ
}
void ISR_BOUTPF(void) interrupt 0
{
// EXIF &= ~0x40;
// ABINIRQ = bmBOUTPF; // Clear BOUTPF IRQ
}
void ISR_BOUTEF(void) interrupt 0
{
// EXIF &= ~0x40;
// ABINIRQ = bmBOUTEF; // Clear BOUTEF IRQ
}
void ISR_BOUTFF(void) interrupt 0
{
// EXIF &= ~0x40;
// ABINIRQ = bmBOUTFF; // Clear BOUTFF IRQ
}
void ISR_GPIFDONE(void) interrupt 0
{
// EXIF &= ~0x40;
// GENIRQ = bmGPIFDONE; // Clear GPIFDONE IRQ
}
void ISR_GPIFWF( void )
interrupt 0
{ // GPIF FIFORd WF detected slave empty
ABORT = 0xFF; // abort to handle shortpkt
EXIF &= ~0x40;
GENIRQ = bmGPIFWF; // Clear GPIFWF IRQ
//TGE INT4CLR = 0xFF; // need to first enable AUTOCLR feature...
}
void ISR_DMADONE(void) interrupt 0
{
// EXIF &= ~0x40;
// GENIRQ = bmDMADONE; // Clear DMADONE IRQ
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -