亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? tcxmaster_ep8in.c

?? used for fx2 usb design
?? C
字號:
#pragma NOIV                    // Do not generate interrupt vectors
//-----------------------------------------------------------------------------
//   File:      tcxmaster.c
//   Contents:  Hooks required to implement USB peripheral function.
//              Code written for FX2 56-pin REVD...
//              This firmware is used to test the FX ext. master CY3682 DK
//   Copyright (c) 2001 Cypress Semiconductor All rights reserved
//-----------------------------------------------------------------------------
#include "fx2.h"
#include "fx2regs.h"
#include "fx2sdly.h"            // SYNCDELAY macro

extern BOOL GotSUD;             // Received setup data flag
extern BOOL Sleep;
extern BOOL Rwuen;
extern BOOL Selfpwr;

BYTE Configuration;             // Current configuration
BYTE AlternateSetting;          // Alternate settings

// EZUSB FX2 PORTA = slave fifo enable(s), when IFCFG[1:0]=11
sbit PA0 = IOA ^ 0;             // alt. func., INT0#
sbit PA1 = IOA ^ 1;             // alt. func., INT1#
// sbit PA2 = IOA ^ 2;          // is SLOE
sbit PA3 = IOA ^ 3;             // alt. func., WU2
// sbit PA4 = IOA ^ 4;          // is FIFOADR0
// sbit PA5 = IOA ^ 5;          // is FIFOADR1
// sbit PA6 = IOA ^ 6;          // is PKTEND
// sbit PA7 = IOA ^ 7;          // is FLAGD

// EZUSB FX2 PORTC i/o...       port NA for 56-pin FX2
// sbit PC0 = IOC ^ 0;
// sbit PC1 = IOC ^ 1;
// sbit PC2 = IOC ^ 2;
// sbit PC3 = IOC ^ 3;
// sbit PC4 = IOC ^ 4;
// sbit PC5 = IOC ^ 5;
// sbit PC6 = IOC ^ 6;
// sbit PC7 = IOC ^ 7;

// EZUSB FX2 PORTB = FD[7:0], when IFCFG[1:0]=11
// sbit PB0 = IOB ^ 0;
// sbit PB1 = IOB ^ 1;
// sbit PB2 = IOB ^ 2;
// sbit PB3 = IOB ^ 3;
// sbit PB4 = IOB ^ 4;
// sbit PB5 = IOB ^ 5;
// sbit PB6 = IOB ^ 6;
// sbit PB7 = IOB ^ 7;

// EZUSB FX2 PORTD = FD[15:8], when IFCFG[1:0]=11 and WORDWIDE=1
//sbit PD0 = IOD ^ 0;
//sbit PD1 = IOD ^ 1;
//sbit PD2 = IOD ^ 2;
//sbit PD3 = IOD ^ 3;
//sbit PD4 = IOD ^ 4;
//sbit PD5 = IOD ^ 5;
//sbit PD6 = IOD ^ 6;
//sbit PD7 = IOD ^ 7;

// EZUSB FX2 PORTE is not bit-addressable...

//-----------------------------------------------------------------------------
// Task Dispatcher hooks
//   The following hooks are called by the task dispatcher.
//-----------------------------------------------------------------------------
void TD_Init( void )
{ // Called once at startup

  CPUCS = 0x10;                 // CLKSPD[1:0]=10, for 48MHz operation

  IFCONFIG = 0xCB;
  // IFCLKSRC=1   , FIFOs executes on internal clk source
  // xMHz=1       , 48MHz internal clk rate
  // IFCLKOE=0    , Don't drive IFCLK pin signal at 48MHz
  // IFCLKPOL=0   , Don't invert IFCLK pin signal from internal clk
  // ASYNC=1      , master samples asynchronous
  // GSTATE=0     , Don't drive GPIF states out on PORTE[2:0], debug WF
  // IFCFG[1:0]=11, FX2 in slave FIFO mode


  // Registers which require a synchronization delay, see section 15.14
  // FIFORESET        FIFOPINPOLAR
  // INPKTEND         OUTPKTEND
  // EPxBCH:L         REVCTL
  // GPIFTCB3         GPIFTCB2
  // GPIFTCB1         GPIFTCB0
  // EPxFIFOPFH:L     EPxAUTOINLENH:L
  // EPxFIFOCFG       EPxGPIFFLGSEL
  // PINFLAGSxx       EPxFIFOIRQ
  // EPxFIFOIE        GPIFIRQ
  // GPIFIE           GPIFADRH:L
  // UDMACRCH:L       EPxGPIFTRIG
  // GPIFTRIG
  
  // Note: The pre-REVE EPxGPIFTCH/L register are affected, as well...
  //      ...these have been replaced by GPIFTC[B3:B0] registers

  SYNCDELAY;
  FIFORESET = 0x80;             // activate NAK-ALL to avoid race conditions
  SYNCDELAY;                    // see TRM section 15.14
  FIFORESET = 0x02;             // reset, FIFO 2
  SYNCDELAY;                    // 
  FIFORESET = 0x04;             // reset, FIFO 4
  SYNCDELAY;                    // 
  FIFORESET = 0x06;             // reset, FIFO 6
  SYNCDELAY;                    // 
  FIFORESET = 0x08;             // reset, FIFO 8
  SYNCDELAY;                    // 
  FIFORESET = 0x00;             // deactivate NAK-ALL

  SYNCDELAY;
  PINFLAGSAB = 0x00; //0x98;            // FLAGA - fixed EP2EF, FLAGB - fixed EP4EF
  SYNCDELAY;
  PINFLAGSCD = 0x00; //0xFE;            // FLAGC - fixed EP6FF, FLAGD - fixed EP8FF
  SYNCDELAY;
  PORTACFG |= 0x80;             // FLAGD, set alt. func. of PA7 pin
  SYNCDELAY;
  FIFOPINPOLAR = 0x00;          // all signals active low
  SYNCDELAY;
  
  // handle the case where we were already in AUTO mode...
  EP2FIFOCFG = 0x01;            // AUTOOUT=0, WORDWIDE=0
  SYNCDELAY;
  
  EP2FIFOCFG = 0x11;            // AUTOOUT=1, WORDWIDE=0
  SYNCDELAY;
  
  // handle the case where we were already in AUTO mode...
  EP4FIFOCFG = 0x01;            // AUTOOUT=0, WORDWIDE=0
  SYNCDELAY;
  
  EP4FIFOCFG = 0x11;            // AUTOOUT=1, WORDWIDE=0
  SYNCDELAY;
  
  EP6FIFOCFG = 0x0D;            // AUTOIN=1, ZEROLENIN=1, WORDWIDE=0
  SYNCDELAY;
  EP8FIFOCFG = 0x0d;            // AUTOIN=1, ZEROLENIN=1, WORDWIDE=0

 /*
 SYNCDELAY;
 EP6AUTOINLENH = 0x02;
 SYNCDELAY;
 EP6AUTOINLENL = 0x00;
 */
 }

void TD_Poll( void )
{ // Called repeatedly while the device is idle

  // ...nothing to do... slave fifo's are in AUTO mode...

}

BOOL TD_Suspend( void )          
{ // Called before the device goes into suspend mode
   return( TRUE );
}

BOOL TD_Resume( void )          
{ // Called after the device resumes
   return( TRUE );
}

//-----------------------------------------------------------------------------
// Device Request hooks
//   The following hooks are called by the end point 0 device request parser.
//-----------------------------------------------------------------------------
BOOL DR_GetDescriptor( void )
{
   return( TRUE );
}

BOOL DR_SetConfiguration( void )   
{ // Called when a Set Configuration command is received
  
  if( EZUSB_HIGHSPEED( ) )
  { // ...FX2 in high speed mode
    EP6AUTOINLENH = 0x02;
    SYNCDELAY;
    EP8AUTOINLENH = 0x02;   // set core AUTO commit len = 512 bytes
    SYNCDELAY;
    EP6AUTOINLENL = 0x00;
    SYNCDELAY;
    EP8AUTOINLENL = 0x00;
  }
  else
  { // ...FX2 in full speed mode
    EP6AUTOINLENH = 0x00;
    SYNCDELAY;
    EP8AUTOINLENH = 0x00;   // set core AUTO commit len = 64 bytes
    SYNCDELAY;
    EP6AUTOINLENL = 0x40;
    SYNCDELAY;
    EP8AUTOINLENL = 0x40;
  }
      
  Configuration = SETUPDAT[ 2 ];
  return( TRUE );        // Handled by user code
}

BOOL DR_GetConfiguration( void )   
{ // Called when a Get Configuration command is received
   EP0BUF[ 0 ] = Configuration;
   EP0BCH = 0;
   EP0BCL = 1;
   return(TRUE);          // Handled by user code
}

BOOL DR_SetInterface( void )       
{ // Called when a Set Interface command is received
   AlternateSetting = SETUPDAT[ 2 ];
   return( TRUE );        // Handled by user code
}

BOOL DR_GetInterface( void )       
{ // Called when a Set Interface command is received
   EP0BUF[ 0 ] = AlternateSetting;
   EP0BCH = 0;
   EP0BCL = 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 );
}

BOOL DR_VendorCmnd( void )
{
  return( TRUE );
}

//-----------------------------------------------------------------------------
// 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
{
   if ( EZUSB_HIGHSPEED( ) )
   {
      pConfigDscr = pHighSpeedConfigDscr;
      pOtherConfigDscr = pFullSpeedConfigDscr;
   }
   else
   {
      pConfigDscr = pFullSpeedConfigDscr;
      pOtherConfigDscr = pHighSpeedConfigDscr;
   }
   
   EZUSB_IRQ_CLEAR( );
   USBIRQ = bmURES;       // Clear URES IRQ
}

void ISR_Susp( void ) interrupt 0
{
   Sleep = TRUE;
   EZUSB_IRQ_CLEAR( );
   USBIRQ = bmSUSP;
}

void ISR_Highspeed( void ) interrupt 0
{
   if ( EZUSB_HIGHSPEED( ) )
   {
      pConfigDscr = pHighSpeedConfigDscr;
      pOtherConfigDscr = pFullSpeedConfigDscr;
   }
   else
   {
      pConfigDscr = pFullSpeedConfigDscr;
      pOtherConfigDscr = pHighSpeedConfigDscr;
   }

   EZUSB_IRQ_CLEAR( );
   USBIRQ = bmHSGRANT;
}
void ISR_Ep0ack( void ) interrupt 0
{
}
void ISR_Stub( void ) interrupt 0
{
}
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_Ep2inout( void ) interrupt 0
{
}
void ISR_Ep4inout( void ) interrupt 0
{
}
void ISR_Ep6inout( void ) interrupt 0
{
}
void ISR_Ep8inout( void ) interrupt 0
{
}
void ISR_Ibn( void ) interrupt 0
{
}
void ISR_Ep0pingnak( void ) interrupt 0
{
}
void ISR_Ep1pingnak( void ) interrupt 0
{
}
void ISR_Ep2pingnak( void ) interrupt 0
{
}
void ISR_Ep4pingnak( void ) interrupt 0
{
}
void ISR_Ep6pingnak( void ) interrupt 0
{
}
void ISR_Ep8pingnak( void ) interrupt 0
{
}
void ISR_Errorlimit( void ) interrupt 0
{
}
void ISR_Ep2piderror( void ) interrupt 0
{
}
void ISR_Ep4piderror( void ) interrupt 0
{
}
void ISR_Ep6piderror( void ) interrupt 0
{
}
void ISR_Ep8piderror( void ) interrupt 0
{
}
void ISR_Ep2pflag( void ) interrupt 0
{
}
void ISR_Ep4pflag( void ) interrupt 0
{
}
void ISR_Ep6pflag( void ) interrupt 0
{
}
void ISR_Ep8pflag( void ) interrupt 0
{
}
void ISR_Ep2eflag( void ) interrupt 0
{
}
void ISR_Ep4eflag( void ) interrupt 0
{
}
void ISR_Ep6eflag( void ) interrupt 0
{
}
void ISR_Ep8eflag( void ) interrupt 0
{
}
void ISR_Ep2fflag( void ) interrupt 0
{
}
void ISR_Ep4fflag( void ) interrupt 0
{
}
void ISR_Ep6fflag( void ) interrupt 0
{
}
void ISR_Ep8fflag( void ) interrupt 0
{
}
void ISR_GpifComplete( void ) interrupt 0
{
}
void ISR_GpifWaveform( void ) interrupt 0
{
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产白丝网站精品污在线入口| 国产日韩欧美不卡在线| 欧美一级爆毛片| 精品国产伦一区二区三区观看体验| 国产区在线观看成人精品| 亚洲欧美区自拍先锋| 亚洲成人中文在线| 久久国产精品第一页| 成人午夜av影视| 欧美日韩久久久久久| 国产校园另类小说区| 亚洲另类色综合网站| 视频一区国产视频| 国产一区二区在线影院| 91精品1区2区| 精品久久久久久久久久久久久久久久久| 亚洲国产精品国自产拍av| 亚洲国产成人av网| 国产精品自拍在线| 欧美三级视频在线播放| 中文字幕第一区二区| 午夜影院久久久| 成人午夜在线视频| 欧美一区二区免费视频| 中文字幕一区二区三区四区不卡| 丝袜诱惑亚洲看片| av电影在线不卡| 日韩女优毛片在线| 一区二区三区精品视频| 国产精品一区二区在线看| 欧美天堂亚洲电影院在线播放| 久久众筹精品私拍模特| 亚洲aaa精品| www.亚洲在线| 久久综合狠狠综合久久激情| 亚洲3atv精品一区二区三区| 不卡av在线网| 久久免费看少妇高潮| 午夜久久久久久电影| 99久久99久久精品免费看蜜桃| 欧美成人一区二区三区片免费| 一区二区三区影院| 国v精品久久久网| 欧美一区二区三区四区久久| 亚洲精品免费一二三区| 国产91清纯白嫩初高中在线观看| 9191久久久久久久久久久| 亚洲日本一区二区| 粉嫩aⅴ一区二区三区四区 | 久久久久9999亚洲精品| 亚洲成人在线免费| 91国偷自产一区二区使用方法| 国产人成亚洲第一网站在线播放| 久久疯狂做爰流白浆xx| 欧美电影一区二区| 亚洲精品免费在线播放| 91在线视频在线| 国产精品系列在线| 国产黄色精品视频| 久久亚洲捆绑美女| 精品一区二区av| 欧美一区二区三区四区视频| 午夜精品一区二区三区免费视频| 色一情一乱一乱一91av| 中文字幕在线视频一区| 成人综合激情网| 久久精品一区二区三区不卡牛牛| 韩国成人福利片在线播放| 日韩午夜在线影院| 免费久久精品视频| 日韩欧美亚洲国产精品字幕久久久| 日韩av成人高清| 欧美丰满少妇xxxbbb| 亚洲成人av电影| 欧美精品色一区二区三区| 亚洲图片有声小说| 欧美色手机在线观看| 午夜精品久久久久久久久久| 欧美日韩精品三区| 日韩精品福利网| 日韩一区二区精品| 狠狠色综合日日| 久久人人爽爽爽人久久久| 国产精品456露脸| 国产精品电影一区二区三区| 97久久精品人人澡人人爽| 亚洲婷婷在线视频| 欧美伊人久久久久久久久影院| 一区二区三区不卡在线观看| 欧美日韩中字一区| 日韩av网站免费在线| 精品国产髙清在线看国产毛片| 激情亚洲综合在线| 国产精品色哟哟网站| 91色porny在线视频| 亚洲一区中文日韩| 91精品国产aⅴ一区二区| 日产精品久久久久久久性色| 欧美va日韩va| 成人毛片老司机大片| 亚洲精品成人少妇| 欧美一区二区三区视频免费播放| 久久精品国产77777蜜臀| 国产欧美日韩不卡| 色噜噜久久综合| 免费成人在线播放| 国产日韩欧美高清| 欧美在线观看视频一区二区三区| 日韩中文字幕亚洲一区二区va在线| 精品国产在天天线2019| 成人福利在线看| 亚洲成人av电影| 国产亚洲一区二区三区四区| 一本久久a久久精品亚洲| 爽爽淫人综合网网站| 久久久久久久久97黄色工厂| 91麻豆swag| 免费观看成人av| 国产精品超碰97尤物18| 欧美乱熟臀69xxxxxx| 国产成人综合自拍| 一区二区在线观看免费| 日韩精品一区国产麻豆| 成人av网址在线| 日本中文字幕一区| 亚洲欧洲av另类| 日韩一级成人av| 91香蕉视频在线| 老司机精品视频线观看86| 亚洲欧洲色图综合| 日韩精品一区二区三区视频播放 | 欧美一区二区三区日韩| 国产精品69毛片高清亚洲| 亚洲一级二级在线| 国产婷婷色一区二区三区四区| 日本精品一级二级| 国产一区二区三区在线观看免费| 亚洲免费观看高清| 久久婷婷成人综合色| 欧美日韩亚洲高清一区二区| 丰满少妇久久久久久久| 日产欧产美韩系列久久99| 亚洲丝袜自拍清纯另类| 精品日韩99亚洲| 欧美亚洲综合色| 国产成人亚洲精品狼色在线| 天天综合天天做天天综合| 亚洲三级久久久| 欧美国产精品一区二区| 欧美二区乱c少妇| 日本道免费精品一区二区三区| 国模套图日韩精品一区二区 | 欧美日高清视频| av影院午夜一区| 国产精品一二三四| 免费高清视频精品| 亚洲国产精品一区二区www| 中文字幕国产一区| 精品国产伦一区二区三区观看体验 | 色94色欧美sute亚洲线路一ni| 国产精品资源站在线| 美女视频免费一区| 婷婷久久综合九色国产成人| 亚洲精品久久嫩草网站秘色| 国产精品无码永久免费888| 欧美sm极限捆绑bd| 日韩一区二区在线看片| 欧美男生操女生| 欧美三级韩国三级日本三斤| 97久久久精品综合88久久| 不卡的电视剧免费网站有什么| 国产福利一区在线观看| 国产一区二区视频在线| 麻豆成人av在线| 日本vs亚洲vs韩国一区三区二区| 亚洲图片欧美一区| 亚洲电影在线播放| 亚洲午夜久久久久中文字幕久| 亚洲精品欧美在线| 一区二区三区精品在线观看| 亚洲精品国产第一综合99久久 | 国产99一区视频免费| 国产精品中文字幕一区二区三区| 美女网站视频久久| 蜜桃av一区二区三区电影| 天天综合日日夜夜精品| 天天综合色天天| 免费成人性网站| 九九精品一区二区| 国产呦精品一区二区三区网站| 蜜桃av一区二区在线观看| 久久99热狠狠色一区二区| 蜜桃一区二区三区在线| 国内久久精品视频| 国产一区二区三区最好精华液| 国产激情一区二区三区四区| 国产不卡视频一区二区三区| 成人av免费网站| 色狠狠一区二区| 欧美亚洲一区二区在线|