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

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

?? et_easy_usb_bulk_usb_lib.c

?? ET44 Bulk transfer is a simple USB(bulk mode)device tester package. There are firmware, software and
?? C
?? 第 1 頁 / 共 4 頁
字號:
#include <usb_reg.h>

//Use lib generator to create ET_Easy_usb_bulk_c_setting.h
#include "ET_Easy_usb_bulk_c_setting.h"
#include <interrupt.h>

#include <c_macro.h>

#include "ET_Easy_usb_bulk_usb_lib.h"

void UsbIntPre() using USBBANK
{
   if(_USB_AUTO_SET_BANK)
       M_BANK(USB_BANK);
 
   if(_USB_AUTO_STORE_IAP0)
   {
       STACK_IAP0 = IAP0;
   }  
}

// UsbInital() revised by USB_INITAL
void UsbInitial() using USBBANK
{
    // set iap0 auto inc 1 when iac0 is use
	IAPADR = 0x05;

    // enable usb function
    M_BS6(PRIE);
    
//    M_BANK(USB_BANK);    
//hub endpoint transmit: 0: not transmit yet  1:transmit ok, 

    M_BC3(HUB_STATUS);
	USB_STATUS = 0;
	STATUS_BUF = 0;
	A_INTERFACE = 0;

// enable embedd function interrupt
    EPINTE = 0x3f;
	M_NOP;

//_ENABLE USB Bus Reset Event 
	STAINTE = 0x01;
	M_NOP;

//Hub initilize: interrupt _ENABLE
	HINTE = 0xCF;
	M_NOP;



//Address clear  
	ADDRESS_BUFh = 0;
	ADDRESS_BUFf = 0;
	
	
	FAR = 0xFF;
	M_NOP;
	HAR = 0xFF;
	M_NOP;
	
//USB SPEED setting
    if(_USB_FULL_SPEED)	
       M_BS7(GCNTR);
    else
       M_BC7(GCNTR);
       
    M_NOP;
    
//Start transmition: plug-in    
    M_BS1(GCNTR);
        
    M_NOP;
    
    //. call macro  _ADD_USB_INITIAL_WORK_SUB      
    AddUsbInitialWorkSub();
    
    return;
  
}

//. RST_ISR
void Int_RstInte() interrupt INT_RSTINTE using USBBANK
{
   if(_USB_AUTO_SET_BANK ||_USB_AUTO_STORE_IAP0)
      UsbIntPre();
   
   

   // software reset usb device 
   M_BS0(GCNTR);
   M_NOP;

   // clear usb bus reset event detect

//**Remote-wakeup disable,power switch disable   
   
   //HGSR = 0;
   _asm
     MOV A,#0x00
     MOV _HGSR,A
   _endasm;  


   // set Hub address
//   HAR = 0x00;
   M_NOP;
   
   // usb device address
   HAR = 0;
   M_NOP;
   FAR = 0;
   M_NOP;
   
   STAINTR = 0xFE;//#0b11111110
   M_NOP;
  
   nAddrBuf = 0;
   HEP1_CNT = 0;
   USB_STATUS = 0;
   STATUS_BUF = 0;
   
   if(!_USB_HUB)
   {
      HAR = 127;
      M_NOP;
      M_BS5(HGSR);
      M_NOP;
      HPCONR = 145;//#0b10010001
      M_NOP;
      M_BC0(HPSCR1);
            
      M_NOP;
      M_BS5(GCNTR);
      M_NOP;
      HPCONR = 137; //#0b10001001
      M_NOP;
      M_BC4(HPSCR1);   
      M_NOP;
   }
   //. call macro _ADD_USB_BUS_RESET_SUB
   //AddUsbBusResetSub();

 Back_To_Mloop: 
   if(_USB_AUTO_STORE_IAP0)
   {
      IAP0=STACK_IAP0;
      M_NOP;        
   }
   if(_USB_DIS_ANO_INT)
      M_ENI;
   return;  
}



//RX0_ISR 2004/01/27 Create by Brooklin
void Int_Int0Rxe(void) interrupt INT_INT0RXE using USBBANK
{
    if(_USB_AUTO_SET_BANK || _USB_AUTO_STORE_IAP0)
        UsbIntPre();
    
    if(M_ISBS0(EP0RXTR))    // JBS	EP0RXTR,OUT,f_out_package
    {//. f_out_package
        EP0RXTR = 0xFE; //#0b11111110
        M_NOP;
        //. JBC 	FC_STATUS,DATA_OUT,next_f_inout   					
        if(M_ISBC2(FC_STATUS))
            goto Next_F_Inout;
        else
        {
            M_BC2(FC_STATUS);   
            //macro  _ADD_USB_SET_REPORT_SUB
            AddUsbSetReportSub();  
            
            nwLength = 0;     
            //wLengthL = 0;
            //wLengthH = 0;
            
            //. next_f_inout
        }
    }
    //. f_setup_package
    else
    {
        if(M_ISBS1(EP0RXTR))
        {
            EP0RXTR = 0xFD; //#0b11111101        
        }
        else
        {
            EP0RXTR = 0xFB; //#0b11111011
        }

        _asm 
          NOP
          MOV A,#_bmRequestType
          MOV _IAP0,A
          NOP
        _endasm;

        
        while(M_ISBC3(IAP0))
        {
           IAC0 = EP0RXDAR;
        }

// replace wLengthH and wLengthL by nwLength 
//        if(!wLengthH && !wLengthL)
        if(!nwLength)
        {
           EP0TXCTR = 0;
           M_NOP;
        }    
        
        M_BC1(USB_STATUS);
        M_BC0(USB_STATUS);
        M_BC2(USB_STATUS);
        M_BC5(USB_STATUS);
        
//        _asm
//          MOV A,#_bmRequestType
//        _endasm;
        StageOne();
         
        if(M_ISBS0(USB_STATUS)) 
        {//.f_stall
           M_BS1(EP0RXCSR);
           M_NOP;
           M_BS1(EP0TXCSR); 
           M_NOP;
           goto Back_To_Mloop;       
        }    
    } 
 
 Next_F_Inout:   
   M_BC1(EP0RXCSR);
   M_NOP;
   M_BC1(EP0TXCSR);
   M_NOP;
   M_BS0(EP0RXCSR);
   M_NOP;
   M_BS0(EP0TXCSR); 
  // BACK_TO_MLOOP
 Back_To_Mloop: 
   


   if(_USB_AUTO_STORE_IAP0)
   {
      IAP0=STACK_IAP0;
      M_NOP;            
   }
   if(_USB_DIS_ANO_INT)
      M_ENI;
   return;        
}


//. IN0_ISR
void Int_Int0Ine(void) interrupt INT_INT0INE using USBBANK
{
   if(_USB_AUTO_SET_BANK ||_USB_AUTO_STORE_IAP0)
      UsbIntPre();
      
 //Clear interrupt INT_flag   
   EPINTR = 251;//#0b11111011
   M_NOP;

   if(_USB_AUTO_STORE_IAP0)
   {
      IAP0=STACK_IAP0;
      M_NOP;
      M_NOP;            
   }
   if(_USB_DIS_ANO_INT)
      M_ENI;
   return;  
}




//. TX0_ISR
void Int_Int0Txe(void) interrupt INT_INT0TXE using USBBANK
{
   if(_USB_AUTO_SET_BANK ||_USB_AUTO_STORE_IAP0)
      UsbIntPre();
 //Clear interrupt INT_flag   
   EPINTR = 253;//#0b11111101
   M_NOP;
   
   FAR = ADDRESS_BUFf;
   M_NOP;
   if(!TBLL)
   {//. exit_tx01
      EP0TXCTR=0;
      M_NOP;
   }
   else if(wLengthH)
   {//. TX0_ISR1
      if(M_ISBS5(FC_STATUS))
      {//. USB_GET_REPORT_SUB
       //. call macro  _ADD_USB_GET_REPORT_EXP_SUB
         AddUsbGetReportExpSub();
      }
      else
      {
         nTable = nRomAdr;
         //HTBL = ROMADRH;
         //LTBL = ROMADRL;
         M_NOP;
         fTransmitTable();
      }  
   }

 Next_F_Inout:   
   M_BC1(EP0RXCSR);
   M_NOP;
   M_BC1(EP0TXCSR);
   M_NOP;
   M_BS0(EP0RXCSR);
   M_NOP;
   M_BS0(EP0TXCSR); 
}

//. EP1_ISR
void Int_Int1e() interrupt INT_INT1E using USBBANK
{
   //UsbIntPre();
   //M_BC1(PORTB);
   EPINTR = 247; // #0b11110111
   M_NOP;
   //. call macro _ADD_USB_EP1_SUB
   AddUsbEp1Sub();

 Back_To_Mloop: 
   if(_USB_AUTO_STORE_IAP0)
   {
      IAP0=STACK_IAP0;
      M_NOP;            
   }
   if(_USB_DIS_ANO_INT)
      M_ENI;
  
      
   return;  
}



//. EP2_ISR
void Int_Int2e() interrupt INT_INT2E using USBBANK
{
   UsbIntPre();
   EPINTR = 239; // #0b11101111
   M_NOP;
   //. call macro _ADD_USB_EP2_SUB
   AddUsbEp2Sub();


 Back_To_Mloop: 
   if(_USB_AUTO_STORE_IAP0)
   {
      IAP0=STACK_IAP0;
      M_NOP;            
   }
   if(_USB_DIS_ANO_INT)
      M_ENI;
   return; 
}




//. EP3_ISR
void Int_Int3e() interrupt INT_INT3E using USBBANK
{
   UsbIntPre();
   EPINTR = 223; // #0b11011111
   M_NOP;
   //. call macro _ADD_USB_EP3_SUB
   AddUsbEp3Sub();


 Back_To_Mloop: 
   if(_USB_AUTO_STORE_IAP0)
   {
      IAP0=STACK_IAP0;
      M_NOP;            
   }
   if(_USB_DIS_ANO_INT)
      M_ENI;
   return; 
}



//. IDLE_ISR
void Int_IdleInte() interrupt INT_IDLEINTE using USBBANK
{
   if(_USB_AUTO_SET_BANK ||_USB_AUTO_STORE_IAP0)
      UsbIntPre();

   STAINTE = 0x0F;
   M_NOP;

   STAINTR = 253; //#0b11111101
   M_NOP;
  
   M_BS2(GCNTR);
   M_NOP;
   
   //. call macro _ADD_USB_IDLE_INT_SUB
   AddUsbIdleIntSub();
   
 Back_To_Mloop: 
   if(_USB_AUTO_STORE_IAP0)
   {
      IAP0=STACK_IAP0;
      M_NOP;            
   }
   if(_USB_DIS_ANO_INT)
      M_ENI;

   return;    

}



//. RESUME_WAKEUP_ISR
void Int_FrwpInte() interrupt INT_FRWPINTE using USBBANK
{
   if(_USB_AUTO_SET_BANK ||_USB_AUTO_STORE_IAP0)
      UsbIntPre();
   if(M_ISBC2(STAINTR))
   {
      STAINTE = 7;
      M_NOP;
      //. call macro _ADD_USB_WAKEUP_INT_SUB
      AddUsbWakeup();
   }
   else
   {
      STAINTE = 0x0B;
      M_NOP;
      //. call macro _ADD_USB_WAKEUP_INT_SUB
      AddUsbWakeup();         
   }
   
 Back_To_Mloop: 
   if(_USB_AUTO_STORE_IAP0)
   {
      IAP0=STACK_IAP0;
      M_NOP;            
   }
   if(_USB_DIS_ANO_INT)
      M_ENI;
   return;    

}

//. HRX0_ISR
void Int_Hint0Rxe() interrupt INT_HINT0RXE using USBBANK
{
   if(_USB_AUTO_SET_BANK ||_USB_AUTO_STORE_IAP0)
      UsbIntPre();
   if(M_ISBC0(HEP0RXTR))
   {//. h_setup_package
      if(M_ISBS1(HEP0RXTR))
         HEP0RXTR = 253;// #0b11111101
      else
         HEP0RXTR = 251;// #0b11111011
      M_NOP;
      
      _asm
        MOV A,#_HbmRequestType
        MOV _IAP0,A
        NOP
      _endasm;
      
      while(M_ISBC3(IAP0))
      {//. hReceiveCommand
         IAC0 = HEP0RXDAR;      
      }
      
      if(!nHwLength)
      {
         HEP0TXCTR = 0;
         M_NOP;
      }   
         
      
      //. skip_hub_nodata_set
      M_BC1(USB_STATUS);
      M_BC0(USB_STATUS);
      
      //_asm 
      //  MOV A,#_HbmRequestType
      //_endasm;
      StageOne();
      if(M_ISBS0(USB_STATUS))  
      {//. h_stall
         M_BS1(HEP0RXCSR);
         M_NOP;
         M_BS1(HEP0TXCSR);
         M_NOP;
      }
      else
      {//. next_h_inout
         goto Next_H_Inout;
      }
   }
   else
   {//. h_out_package
      HEP0RXTR = 254; //#0b11111110
      M_NOP;      
   }
   
 Next_H_Inout:   
   M_BC1(HEP0RXCSR);
   M_NOP;
   M_BC1(HEP0TXCSR);
   M_NOP;
   M_BC0(HEP0RXCSR);
   M_NOP;
   M_BC0(HEP0TXCSR);
   M_NOP;      

 Back_To_Mloop: 
   if(_USB_AUTO_STORE_IAP0)
   {
      IAP0=STACK_IAP0;
      M_NOP;            
   }
   if(_USB_DIS_ANO_INT)
      M_ENI;
   return;
}

//. HIN0_ISR
void Int_Hint0Ine() interrupt INT_HINT0INE using USBBANK
{
   if(_USB_AUTO_SET_BANK ||_USB_AUTO_STORE_IAP0)
      UsbIntPre();
   
   HINTR = 251;// #0b11111011
   M_NOP;
   

 Back_To_Mloop: 
   if(_USB_AUTO_STORE_IAP0)
   {
      IAP0=STACK_IAP0;
      M_NOP;            
   }
   if(_USB_DIS_ANO_INT)
      M_ENI;
   return;
         

}

//. HTX0_ISR

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久综合| 欧美精品在线视频| 久久成人羞羞网站| 亚洲国产一区在线观看| 中文字幕一区二区三区四区不卡| 精品粉嫩超白一线天av| 欧美日韩国产精选| 欧美丰满美乳xxx高潮www| 欧美性极品少妇| 色激情天天射综合网| 一本大道久久a久久精二百| 成人午夜精品在线| 成人免费va视频| 成人av手机在线观看| 成人h动漫精品| av中文字幕一区| 91丨porny丨户外露出| 色综合天天综合在线视频| 99久久综合色| 在线视频国产一区| 欧美吻胸吃奶大尺度电影| 欧美日韩高清一区| 欧美电影免费观看高清完整版在| 日韩欧美一级片| 久久久久久麻豆| 椎名由奈av一区二区三区| 亚洲精品成a人| 亚洲成人激情综合网| 美女任你摸久久| 懂色一区二区三区免费观看| 91视频.com| 欧美日韩国产在线观看| 欧美成人一区二区三区在线观看| 欧美电视剧在线看免费| 国产精品麻豆一区二区| 亚洲韩国一区二区三区| 美女在线观看视频一区二区| 国产成人在线免费| 日本高清不卡在线观看| 欧美一区二区三区电影| 国产精品免费久久| 强制捆绑调教一区二区| 成人性生交大合| 8x福利精品第一导航| 2024国产精品| 香蕉加勒比综合久久 | 久久国产尿小便嘘嘘| 成人性视频免费网站| 制服丝袜日韩国产| 国产精品少妇自拍| 日本欧美加勒比视频| 成人爱爱电影网址| 日韩一区二区三区免费看| 亚洲欧洲性图库| 黑人巨大精品欧美黑白配亚洲| 99久久综合色| xfplay精品久久| 偷窥少妇高潮呻吟av久久免费| 欧美三级乱人伦电影| 国产亚洲一本大道中文在线| 午夜视频一区在线观看| 91丨九色丨黑人外教| 久久久久久97三级| 日韩高清国产一区在线| 色香色香欲天天天影视综合网| 久久一二三国产| 日本不卡一区二区| 欧美日韩国产综合一区二区三区 | 欧美aaa在线| 在线观看成人小视频| 欧美国产视频在线| 久久99久久久久| 欧美一区二区三区公司| 亚洲bt欧美bt精品| 欧美日免费三级在线| 亚洲你懂的在线视频| 91偷拍与自偷拍精品| 中文字幕在线一区免费| 国产传媒一区在线| 久久精品夜夜夜夜久久| 国产在线精品视频| 精品国产乱码久久久久久免费 | 91精品国产综合久久精品app| 亚洲欧美欧美一区二区三区| 成人免费高清在线| 国产精品网站导航| 国产aⅴ综合色| 亚洲国产精品黑人久久久| 精品亚洲国产成人av制服丝袜| 欧美一区二区黄| 五月综合激情网| 91精品在线免费观看| 日本女优在线视频一区二区| 日韩欧美成人午夜| 国产在线看一区| 国产日产欧产精品推荐色 | 久久久不卡网国产精品一区| 精品一区二区三区免费播放| 26uuu亚洲| 成人午夜激情影院| 亚洲欧美电影一区二区| 欧美怡红院视频| 日韩精品免费视频人成| 日韩欧美国产1| 国产精品一区二区视频| 国产精品国产三级国产| 欧美视频第二页| 久久电影国产免费久久电影| 国产精品色眯眯| 欧美亚洲综合在线| 黄网站免费久久| 国产精品你懂的在线| 精品视频999| 麻豆视频观看网址久久| 中文天堂在线一区| 欧美午夜一区二区三区免费大片| 免费看日韩a级影片| 久久久精品国产免费观看同学| 成人久久18免费网站麻豆| 亚洲成年人影院| 久久久亚洲国产美女国产盗摄| 99视频精品在线| 久久国产视频网| 亚洲另类一区二区| 久久亚洲春色中文字幕久久久| 99久久国产免费看| 免费在线欧美视频| 亚洲欧洲制服丝袜| 欧美精品一区二区蜜臀亚洲| 久久综合久久99| 欧美日韩免费一区二区三区 | 亚洲精品一区二区三区99| 在线免费观看一区| 国产福利一区二区三区在线视频| 亚洲最快最全在线视频| 中文字幕精品在线不卡| 91精品在线麻豆| 色综合色综合色综合| 国产精品羞羞答答xxdd| 日韩和的一区二区| 亚洲人成精品久久久久| 国产调教视频一区| 精品久久久久一区| 91精品黄色片免费大全| 在线精品视频一区二区三四| 成人精品高清在线| 国产成人亚洲综合a∨猫咪| 喷水一区二区三区| 亚洲愉拍自拍另类高清精品| 1000精品久久久久久久久| 久久夜色精品国产欧美乱极品| 欧美精选午夜久久久乱码6080| 色综合天天在线| 成人看片黄a免费看在线| 久久精品国产一区二区三| 人人精品人人爱| 日韩精品电影一区亚洲| 五月激情综合网| 亚洲国产美女搞黄色| 一区二区三区不卡视频在线观看| 中文字幕亚洲在| 亚洲欧美自拍偷拍| 亚洲天堂成人网| 亚洲色大成网站www久久九九| 国产婷婷色一区二区三区四区| 精品区一区二区| 久久久久久久久99精品| 久久久久综合网| 日本一区二区视频在线| 国产精品白丝在线| 亚洲欧美色图小说| 一级女性全黄久久生活片免费| 亚洲影视在线播放| 午夜视频在线观看一区二区三区 | 欧美日韩一区二区不卡| 欧美精品高清视频| 日韩精品一区二区三区视频播放 | 欧美国产一区二区| 中文字幕中文字幕一区二区| 亚洲乱码一区二区三区在线观看| 一区二区三区小说| 午夜精品一区二区三区免费视频| 日本美女一区二区三区视频| 麻豆一区二区三| 不卡在线视频中文字幕| 在线精品国精品国产尤物884a| 欧美剧在线免费观看网站| 久久亚洲综合色| 亚洲欧美另类久久久精品2019| 亚洲电影第三页| 国产综合成人久久大片91| av亚洲精华国产精华精华| 欧美老女人第四色| 国产日韩欧美高清| 亚洲国产欧美日韩另类综合| 国产资源在线一区| 欧美三级电影在线观看| 欧美激情在线免费观看| 亚洲成人综合视频| 国产成都精品91一区二区三|