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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bulkloop.c.bak

?? 提供了usb接口fx2芯片的編程。從io輸入到后來的差分信號輸出。都給了詳細的例子
?? BAK
?? 第 1 頁 / 共 2 頁
字號:
#pragma NOIV               // Do not generate interrupt vectors
//-----------------------------------------------------------------------------
//   File:      bulkloop.c
//   Contents:   Hooks required to implement USB peripheral function.
//
//   Copyright (c) 2000 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
sbit RDCLK = IOA ^ 0;

#define VR_NAKALL_ON    0xD0    //制造商請求
#define VR_NAKALL_OFF   0xD1
#define SINGLEWRITE     0xB0 
#define SINGLEREAD      0xB1
  WORD j;
  BYTE rddr;
  BYTE AD;
  WORD i;

void rddata(BYTE rddr,BYTE AD);



//-----------------------------------------------------------------------------
// Task Dispatcher hooks
//   The following hooks are called by the task dispatcher.
//-----------------------------------------------------------------------------

void TD_Init(void)             // Called once at startup
{  
   // set the CPU clock to 48MHz
  // CPUCS = ((CPUCS & ~bmCLKSPD) | bmCLKSPD1) ;
   CPUCS = 0x20;

   // set the slave FIFO interface to 48MHz
 //  IFCONFIG |= 0x40;
   //OEB|=0xFF    //

  // 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

  // default: all endpoints have their VALID bit set
  // default: TYPE1 = 1 and TYPE0 = 0 --> BULK  
  // default: EP2 and EP4 DIR bits are 0 (OUT direction)
  // default: EP6 and EP8 DIR bits are 1 (IN direction)
  // default: EP2, EP4, EP6, and EP8 are double buffered

  // we are just using the default values, yes this is not necessary...
  EP1OUTCFG = 0xA0;
  EP1INCFG = 0xA0;
  SYNCDELAY;                    // see TRM section 15.14
  EP2CFG = 0xA2;
  SYNCDELAY;                    
  EP4CFG = 0xA0;
  SYNCDELAY;                    
  EP6CFG = 0xE2;
  SYNCDELAY;                    
  EP8CFG = 0xE0;

  // out endpoints do not come up armed
  
  // since the defaults are double buffered we must write dummy byte counts twice
  SYNCDELAY;                    
  EP2BCL = 0x80;                // arm EP2OUT by writing byte count w/skip.
  SYNCDELAY;                    
  EP2BCL = 0x80;
  SYNCDELAY;                    
  EP4BCL = 0x80;                // arm EP4OUT by writing byte count w/skip.
  SYNCDELAY;                    
  EP4BCL = 0x80;    

  // enable dual autopointer feature
  AUTOPTRSETUP |= 0x01;
  PORTACFG = 0x00; 
  OEB |= 0xFF;
  OEA |= 0xFF;
  Rwuen = TRUE;                 // Enable remote-wakeup
//  EPIE=0x10;
}


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

   if(!(EP2468STAT & bmEP2EMPTY))
    { // check EP2 EMPTY(busy) bit in EP2468STAT (SFR), core set's this bit when FIFO is empty
      IOB= EP2FIFOBUF[0];   //addr output
	  AD=EP2FIFOBUF[0];
      j=0x40&EP2FIFOBUF[0];
	  RDCLK=1;
	  RDCLK=0;
	  RDCLK=1;
/*	  switch(j)
	  {
	   case 0x00:          //master channel
	      rddr=0x04;
          rddata(rddr,AD);  
    	  break;
	   default:            //slave channel 
	      rddr=0x44;
	      rddata(rddr,AD);  
  	  }
*/	 }
EP2BCL = 0x80;
 


}                                                                                                                                                                       
                                                                                                                                                                         
 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
{
   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)
{
  BYTE tmp;
  
  switch (SETUPDAT[1])
  {
     case VR_NAKALL_ON:
        tmp = FIFORESET;
        tmp |= bmNAKALL;      
        SYNCDELAY;                    
        FIFORESET = tmp;
        break;
     case VR_NAKALL_OFF:
        tmp = FIFORESET;
        tmp &= ~bmNAKALL;      
        SYNCDELAY;                    
        FIFORESET = tmp;
        break;
     case SINGLEWRITE:    //single write,data in SETUPDAT[2],ram address in SETUPDAT[4]
          OEC |= 0xFF;
          IOB = SETUPDAT[4];
          tmp = SETUPDAT[2];
		  IOC = tmp;
		  SYNCDELAY;  
		  SYNCDELAY;  
		  //IOA=0x00;
		  IOB=0x36;
          OEC=0x00;
      	  EP0BUF[1]=IOC;
          EP0BUF[0] = SETUPDAT[4];  //隨便返回一個值,用于測試   
          //EP0BUF[5] = tmp;
                                       
		  EP0BCH = 0;        //這兩句保留                                          
		  EP0BCL = 8;
          break;                                
     case SINGLEREAD:         //single read,ram address in SETUPDAT[4],put the data in EP0BUF[0]
          OEC &= 0x00; 
          IOB = SETUPDAT[4];
          EP0BUF[0] = IOC;
          EP0BCH = 0;        //這兩句保留
		  EP0BCL = 8; 
          break; 


     default:
        return(TRUE);
  }

  return(FALSE);
}

//-----------------------------------------------------------------------------
// 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
{
   // whenever we get a USB reset, we should revert to full speed mode
   pConfigDscr = pFullSpeedConfigDscr;
   ((CONFIGDSCR xdata *) pConfigDscr)->type = CONFIG_DSCR;
   pOtherConfigDscr = pHighSpeedConfigDscr;
   ((CONFIGDSCR xdata *) pOtherConfigDscr)->type = OTHERSPEED_DSCR;

   EZUSB_IRQ_CLEAR();
   USBIRQ = bmURES;         // Clear URES IRQ
}

void ISR_Susp(void) interrupt 0
{
   Sleep = TRUE;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美在线不卡| 五月激情综合色| 美女一区二区久久| 在线观看一区二区精品视频| 精品国产伦一区二区三区观看体验| 欧美激情在线观看视频免费| 看电视剧不卡顿的网站| 在线精品视频免费观看| 中文字幕不卡一区| 久99久精品视频免费观看| 欧美精品三级在线观看| 亚洲色图欧美偷拍| 99r精品视频| 日本一区二区不卡视频| 美腿丝袜亚洲色图| 6080日韩午夜伦伦午夜伦| 一区二区三区四区不卡在线 | 国产精品18久久久久久久网站| 欧美日韩一区二区在线视频| 中文字幕在线观看一区二区| 国产精品亚洲а∨天堂免在线| 欧美精品一区二区三区在线 | 洋洋成人永久网站入口| av成人动漫在线观看| 国产精品美女一区二区三区| 国产精品羞羞答答xxdd| 久久久久久久久久久久久久久99| 激情综合一区二区三区| 日韩欧美一区二区三区在线| 麻豆精品在线视频| 精品国产一区二区三区不卡| 精品一区二区三区免费观看 | 91精品国产91热久久久做人人| 亚洲国产美女搞黄色| 91电影在线观看| 亚洲国产精品综合小说图片区| 91极品视觉盛宴| 亚洲国产一区二区在线播放| 欧美日韩精品三区| 麻豆精品久久久| 国产日韩三级在线| 成人免费视频免费观看| 一区二区三区中文免费| 欧美日韩成人在线| 黄页视频在线91| 中文字幕精品一区二区精品绿巨人| 成人禁用看黄a在线| 一区二区国产视频| 欧美挠脚心视频网站| 精品一区精品二区高清| 国产精品久久久久久久岛一牛影视 | 亚洲国产一区在线观看| 日韩一区和二区| 处破女av一区二区| 亚洲制服丝袜av| 337p粉嫩大胆噜噜噜噜噜91av | 《视频一区视频二区| 在线观看日韩精品| 天堂蜜桃91精品| 久久久久久99精品| 91福利视频久久久久| 麻豆91免费观看| 亚洲日本中文字幕区| 欧美伦理电影网| 国产高清亚洲一区| 午夜精品免费在线| 国产欧美视频在线观看| 欧美色图天堂网| 国产精品中文字幕日韩精品 | 国产麻豆精品在线观看| 亚洲乱码国产乱码精品精小说| 欧美一区二区观看视频| eeuss鲁片一区二区三区在线观看| 亚洲成人精品影院| 亚洲国产精品精华液2区45| 欧美日韩黄视频| 国产成人综合视频| 美女任你摸久久| 亚洲一区在线看| 国产精品动漫网站| 亚洲精品在线网站| 欧美性视频一区二区三区| 国产suv一区二区三区88区| 日韩国产精品大片| 亚洲永久精品国产| 国产精品免费aⅴ片在线观看| 欧美一区二区三区在| 91传媒视频在线播放| 成人永久aaa| 久久av老司机精品网站导航| 亚洲自拍另类综合| 亚洲精品日韩一| 中文字幕巨乱亚洲| 国产三级精品在线| 精品久久久久av影院| 欧美日产国产精品| 欧美性xxxxxx少妇| 一本到三区不卡视频| www.亚洲人| jlzzjlzz亚洲日本少妇| 国产a区久久久| 国产91精品在线观看| 久久97超碰色| 麻豆精品精品国产自在97香蕉| 亚洲成人福利片| 亚洲高清免费观看| 亚洲一区二区在线免费观看视频 | 久久精品日韩一区二区三区| 日韩免费高清视频| 精品区一区二区| 精品国产制服丝袜高跟| 欧美成人午夜电影| 亚洲精品一区二区三区99| 日韩欧美电影在线| 久久综合色天天久久综合图片| 精品久久国产老人久久综合| 日韩美一区二区三区| 欧美电影免费提供在线观看| 日韩欧美在线一区二区三区| 精品不卡在线视频| 中文在线一区二区| 国产精品丝袜黑色高跟| 亚洲欧美日韩一区| 亚洲自拍欧美精品| 日本成人中文字幕在线视频 | 成人黄色软件下载| 一本大道久久a久久精二百| 色视频一区二区| 欧美怡红院视频| 日韩一区二区视频| 久久久精品tv| 一区二区三区在线视频观看 | 亚洲青青青在线视频| 亚洲国产精品一区二区久久恐怖片 | 亚洲综合一区二区精品导航| 亚洲成人在线观看视频| 久久狠狠亚洲综合| 成人av午夜影院| 欧美日韩一级黄| 精品三级av在线| 亚洲欧美中日韩| 日韩主播视频在线| 国产一区二区三区日韩| 91久久人澡人人添人人爽欧美| 欧美日韩国产成人在线91| 精品国产髙清在线看国产毛片| 亚洲国产经典视频| 亚洲444eee在线观看| 激情伊人五月天久久综合| 99久久久久免费精品国产| 久久久蜜臀国产一区二区| 亚洲男同性恋视频| 日本中文一区二区三区| 国产成人a级片| 7777精品伊人久久久大香线蕉经典版下载 | 日韩一级在线观看| 国产精品二三区| 视频一区视频二区在线观看| 国产成人免费视频| 欧美婷婷六月丁香综合色| 国产欧美日韩三级| 亚洲香肠在线观看| 国产高清在线观看免费不卡| 欧美日韩国产精品成人| 亚洲欧美在线aaa| 老司机午夜精品| 欧美日本一区二区三区四区| 国产精品无人区| 六月婷婷色综合| 欧美日韩一级视频| 亚洲男人天堂av| 国产精品一区二区黑丝| 欧美午夜精品电影| 亚洲人成小说网站色在线| 国产一区二区三区黄视频| 欧美日韩精品一区二区三区蜜桃| 成人免费在线播放视频| 九九九久久久精品| 91精品国产91热久久久做人人| 亚洲视频一二三区| 成人综合婷婷国产精品久久| 久久日韩粉嫩一区二区三区| 日本在线不卡视频| 欧美日韩一级大片网址| 亚洲精品国产无天堂网2021| 国产精品一区2区| 亚洲欧美自拍偷拍| 国产在线精品不卡| 欧美一区国产二区| 亚洲自拍偷拍图区| 91视频一区二区| 国产精品二三区| 成人黄色小视频| 国产精品美女久久久久久久网站| 国内精品伊人久久久久影院对白| 91精品国产aⅴ一区二区| 天天影视网天天综合色在线播放| 欧美日韩日日夜夜| 日本少妇一区二区| 精品福利一区二区三区免费视频|