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

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

?? chap_9.lst

?? USB2.0開發示例程序
?? LST
?? 第 1 頁 / 共 5 頁
字號:
 380   5                                              //讀取ISP1581中斷寄存器
 381   5                                              USB_Int_Flag.VALUE |= D14_Cntrl_Reg.D14_INT.VALUE;
 382   5                                              //回寫ISP1581中斷寄存器
 383   5                                              D14_Cntrl_Reg.D14_INT.VALUE = USB_Int_Flag.VALUE;
 384   5                                              if(USB_Int_Flag.BITS.SUSP || USB_Int_Flag.BITS.RESET)
 385   5                                                      return;
 386   5                                      }
 387   4                                      USB_Int_Flag.BITS.EP0TX = 0;
 388   4                                      break;                          
 389   4                              }
 390   3                      }
 391   2              }
 392   1      }
 393          
 394          //***********************************************************************
 395          //*                                                                                                                                     *
 396          //*     Routine         :                                                               *
 397          //*     Input           : None                                                                                  *
 398          //*     Output          : None                                                                  *
 399          //*     Function        :                                                               *
 400          //*                                                                                                                                             *
 401          //***********************************************************************
 402          
 403          void    reserved(void)
 404          {
 405   1      }
 406          
 407          
 408          //Get_Descriptor()獲取描述符
 409          void get_descriptor(void)
 410          {
 411   1      
 412   1              switch(USB_Device_Request.wValue)
 413   1              {
 414   2              case  1://設備描述符
 415   2                      //選擇描述符
 416   2                      if(Kernel_Flag.BITS.HS_FS_State == FULL_SPEED)
 417   2                              Descriptor_Ptr = &Standard_Device_Descriptor[0];        //set pointer to device descriptor
 418   2                      if(Kernel_Flag.BITS.HS_FS_State == HIGH_SPEED)
 419   2                              Descriptor_Ptr = &HS_Device_Descriptor[0];      //set pointer to device descriptor
 420   2                      count = *Descriptor_Ptr;                                                        //read in descriptor length
 421   2                      //選擇端點號
 422   2                      D14_Cntrl_Reg.D14_ENDPT_INDEX = 1;
 423   2                      //寫下發送字節數
 424   2                      D14_Cntrl_Reg.D14_BUFFER_LENGTH_LSB = 0x12;
 425   2                      D14_Cntrl_Reg.D14_BUFFER_LENGTH_MSB = 0;
 426   2                      //send descriptor
 427   2                      //發送描述符
C51 COMPILER V7.06   CHAP_9                                                                07/02/2003 10:05:13 PAGE 8   

 428   2                      while(count != 0)
 429   2                      {
 430   3                              D14_Cntrl_Reg.D14_DATA_PORT_LSB = *Descriptor_Ptr;
 431   3                              count--;
 432   3                              Descriptor_Ptr++;
 433   3                      }
 434   2                      wait_ep0tx();
 435   2                      ep0out_ack();
 436   2                      break;
 437   2                      
 438   2              case  2        :  //獲取配置描述符
 439   2                      USB_Int_Flag.BITS.EP0RX = 0;
 440   2                      Temp = 64;
 441   2                      Descriptor_Ptr = &Standard_Config_Descriptor[0];        //set pointer to configuration descriptor
 442   2                      count = *Descriptor_Ptr;                                                        //get configuration Descriptor length
 443   2                      //選擇端點號1
 444   2                      D14_Cntrl_Reg.D14_ENDPT_INDEX = 1;
 445   2                      //check if only configuration descriptor required
 446   2                      //檢查描述符長度,決定是只發送配置描述符還是描述符集合
 447   2                      if(count >= USB_Device_Request.wLength)                         //Send only Configuration descriptor
 448   2                      {
 449   3                              //寫入發送字節數
 450   3                              D14_Cntrl_Reg.D14_BUFFER_LENGTH_LSB = (UC) USB_Device_Request.wLength;
 451   3                              D14_Cntrl_Reg.D14_BUFFER_LENGTH_MSB = (UC) (USB_Device_Request.wLength >> 8);
 452   3                              //send descriptor
 453   3                              //發送描述符
 454   3                              for(count = 0 ; count < USB_Device_Request.wLength ; count++)
 455   3                              {
 456   4                                      D14_Cntrl_Reg.D14_DATA_PORT_LSB = *Descriptor_Ptr;
 457   4                                      Descriptor_Ptr++;
 458   4                              }
 459   3                              wait_ep0tx();
 460   3                              ep0out_ack();
 461   3                      }
 462   2                      else //send Configuration,Interface and Endpoint descriptor
 463   2                      {
 464   3                              //發送描述符集合(配置+接口+端點)
 465   3                              if(USB_Device_Request.wLength >= 32)
 466   3                              {
 467   4                                      //寫入配置描述符
 468   4                                      while(count != 0)
 469   4                                      {
 470   5                                              D14_Cntrl_Reg.D14_DATA_PORT_LSB = *Descriptor_Ptr;
 471   5                                              count--;
 472   5                                              Descriptor_Ptr++;
 473   5                                      }
 474   4                                      //選擇高速還是全速接口描述符
 475   4                                      if(Kernel_Flag.BITS.HS_FS_State == FULL_SPEED)
 476   4                                              Descriptor_Ptr = &Bulk_Interface_Descriptor[0]; //set pointer to interface descriptor
 477   4                                      if(Kernel_Flag.BITS.HS_FS_State == HIGH_SPEED)
 478   4                                              Descriptor_Ptr = &HS_Bulk_Interface_Descriptor[0]; //set pointer to interface descriptor
 479   4                                      count = *Descriptor_Ptr;        //get the descriptor count
 480   4                                      //寫入接口描述符
 481   4                                      while(count != 0)
 482   4                                      {
 483   5                                              D14_Cntrl_Reg.D14_DATA_PORT_LSB = *Descriptor_Ptr;
 484   5                                              count--;
 485   5                                              Descriptor_Ptr++;
 486   5                                      }
 487   4                                      //選擇高速還是全速端點1IN描述符
 488   4                                      if(Kernel_Flag.BITS.HS_FS_State == FULL_SPEED)
 489   4                                              Descriptor_Ptr = &Int_In_Descriptor[0]; //set pointer to interface descriptor
C51 COMPILER V7.06   CHAP_9                                                                07/02/2003 10:05:13 PAGE 9   

 490   4                                      if(Kernel_Flag.BITS.HS_FS_State == HIGH_SPEED)
 491   4                                              Descriptor_Ptr = &HS_Int_In_Descriptor[0]; //set pointer to interface descriptor
 492   4                                      count = *Descriptor_Ptr;        //read in descriptor length
 493   4                                      //寫入端點1IN描述符
 494   4                                      while(count != 0)
 495   4                                      {
 496   5                                              D14_Cntrl_Reg.D14_DATA_PORT_LSB = *Descriptor_Ptr;
 497   5                                              count--;
 498   5                                              Descriptor_Ptr++;
 499   5                                      }
 500   4                                      //選擇高速還是全速端點1OUT描述符
 501   4                                      if(Kernel_Flag.BITS.HS_FS_State == FULL_SPEED)
 502   4                                              Descriptor_Ptr = &Int_Out_Descriptor[0]; //set pointer to interface descriptor
 503   4                                      if(Kernel_Flag.BITS.HS_FS_State == HIGH_SPEED)
 504   4                                              Descriptor_Ptr = &HS_Int_Out_Descriptor[0]; //set pointer to interface descriptor
 505   4                                      count = *Descriptor_Ptr;        //read in descriptor length
 506   4                                      //寫入端點1OUT描述符
 507   4                                      while(count != 0)
 508   4                                      {
 509   5                                              D14_Cntrl_Reg.D14_DATA_PORT_LSB = *Descriptor_Ptr;
 510   5                                              count--;
 511   5                                              Descriptor_Ptr++;
 512   5                                      }
 513   4                                      //選擇高速還是全速端點2IN描述符
 514   4                                      if(Kernel_Flag.BITS.HS_FS_State == FULL_SPEED)
 515   4                                              Descriptor_Ptr = &Bulk_In_Descriptor[0]; //set pointer to interface descriptor
 516   4                                      if(Kernel_Flag.BITS.HS_FS_State == HIGH_SPEED)
 517   4                                              Descriptor_Ptr = &HS_Bulk_In_Descriptor[0]; //set pointer to interface descriptor
 518   4                                      count = *Descriptor_Ptr;        //read in descriptor length
 519   4                                      //寫入端點2IN描述符
 520   4                                      while(count != 0)
 521   4                                      {
 522   5                                              D14_Cntrl_Reg.D14_DATA_PORT_LSB = *Descriptor_Ptr;
 523   5                                              count--;
 524   5                                              Descriptor_Ptr++;
 525   5                                      }
 526   4                                      //選擇高速還是全速端點2OUT描述符
 527   4                                      if(Kernel_Flag.BITS.HS_FS_State == FULL_SPEED)
 528   4                                              Descriptor_Ptr = &Bulk_Out_Descriptor[0]; //set pointer to interface descriptor
 529   4                                      if(Kernel_Flag.BITS.HS_FS_State == HIGH_SPEED)
 530   4                                              Descriptor_Ptr = &HS_Bulk_Out_Descriptor[0]; //set pointer to interface descriptor
 531   4                                      count = *Descriptor_Ptr;        //read in descriptor length
 532   4                                      //寫入端點2OUT描述符
 533   4                                      while(count != 0)
 534   4                                      {
 535   5                                              D14_Cntrl_Reg.D14_DATA_PORT_LSB = *Descriptor_Ptr;
 536   5                                              count--;
 537   5                                              Descriptor_Ptr++;
 538   5                                      }
 539   4                              }
 540   3                              //使端點有效
 541   3                              D14_Cntrl_Reg.D14_CONTROL_FUNCTION.BITS.VENDP = 1;      //validate FIFO
 542   3                              wait_ep0tx();
 543   3                              ep0out_ack();
 544   3                      }
 545   2                      break;
 546   2                      
 547   2                      case  3:  //獲取字符串描述符
 548   2                              Descriptor_Ptr = &Standard_String_ID[0];                //set pointer to interface descriptor
 549   2                              count = *Descriptor_Ptr;                //get length
 550   2                              D14_Cntrl_Reg.D14_ENDPT_INDEX = 1;
 551   2                              if(USB_Device_Request.wLength < count)
C51 COMPILER V7.06   CHAP_9                                                                07/02/2003 10:05:13 PAGE 10  

 552   2                                      count = USB_Device_Request.wLength;                     //get the remaining length
 553   2                              D14_Cntrl_Reg.D14_BUFFER_LENGTH_LSB = count;
 554   2                              D14_Cntrl_Reg.D14_BUFFER_LENGTH_MSB = 0;
 555   2                              //send string ID
 556   2                              while(count != 0)
 557   2                              {
 558   3                                      D14_Cntrl_Reg.D14_DATA_PORT_LSB = *Descriptor_Ptr;      //fill up FIFO
 559   3                                      Descriptor_Ptr++;
 560   3                                      count--;
 561   3                              }
 562   2                              wait_ep0tx();
 563   2                              ep0out_ack();
 564   2                              break;
 565   2                              
 566   2                              
 567   2                      case  4:  
 568   2                              reserved();
 569   2                              break;
 570   2                              
 571   2                      case  5:  //獲取端點描述符
 572   2                              Temp = 0;
 573   2                              if((USB_Device_Request.wValue & 0x00ff) > 0x0001)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
a4yy欧美一区二区三区| 日韩电影网1区2区| 9人人澡人人爽人人精品| 国产精品欧美经典| 91亚洲国产成人精品一区二三| 国产精品不卡在线观看| 91久久一区二区| 亚洲成人av免费| 欧美一区二区三区影视| 国产在线精品不卡| 中文字幕av资源一区| 91传媒视频在线播放| 日韩精品国产欧美| 国产偷国产偷精品高清尤物 | 久草精品在线观看| 久久久欧美精品sm网站| 99久久免费国产| 午夜久久久久久电影| 亚洲精品一区二区三区四区高清| 成人免费毛片嘿嘿连载视频| 亚洲自拍偷拍图区| 日韩精品一区二区三区在线播放 | 日韩成人精品在线观看| 欧美不卡视频一区| 成人sese在线| 首页国产欧美久久| 欧美激情一二三区| 欧美日韩不卡在线| 成人免费看黄yyy456| 亚洲国产精品综合小说图片区| 欧美一级久久久久久久大片| 不卡高清视频专区| 日本视频一区二区| **网站欧美大片在线观看| 91精品国产综合久久久蜜臀图片| 成人精品电影在线观看| 日韩精品成人一区二区三区| 国产精品高清亚洲| 精品国产乱码久久久久久闺蜜| 色婷婷综合激情| 粉嫩av一区二区三区粉嫩| 手机精品视频在线观看| 亚洲柠檬福利资源导航| 久久综合资源网| 欧美三级电影精品| av在线这里只有精品| 国产在线精品一区二区夜色| 亚洲一区二区精品久久av| 国产蜜臀av在线一区二区三区| 欧美一区二区三区啪啪| 欧美性三三影院| 波多野结衣中文一区| 国产成人在线视频免费播放| 免费一级片91| 午夜精品久久久久久久久| 亚洲欧美日韩国产另类专区| 中文子幕无线码一区tr| 久久久久久久久久久黄色| 日韩一区二区三区观看| 欧美日韩一级二级三级| 欧美主播一区二区三区美女| 91原创在线视频| 成人av午夜电影| 成人午夜激情影院| 国产精品一区二区男女羞羞无遮挡| 日本强好片久久久久久aaa| 亚洲小说欧美激情另类| 亚洲精品国产一区二区精华液| 国产精品久久久久久久第一福利| 欧美精品一区二区三区四区 | 日本一区二区免费在线观看视频| 欧美xingq一区二区| 日韩一区二区高清| 日韩欧美卡一卡二| 91麻豆精品国产无毒不卡在线观看| 欧美手机在线视频| 欧美视频在线观看一区二区| 欧美亚洲国产一区在线观看网站| 色噜噜狠狠成人网p站| 色先锋久久av资源部| 色一情一乱一乱一91av| 欧美吞精做爰啪啪高潮| 欧美日韩高清一区二区| 在线播放视频一区| 69堂精品视频| 日韩久久久精品| 久久天天做天天爱综合色| 久久久久国色av免费看影院| 国产午夜精品久久| 亚洲视频一二三| 午夜欧美在线一二页| 麻豆91在线看| 成人av在线播放网址| 欧美在线色视频| 91精品免费观看| 久久久99久久| 椎名由奈av一区二区三区| 亚洲国产日韩在线一区模特| 日韩**一区毛片| 国产丶欧美丶日本不卡视频| eeuss鲁片一区二区三区在线观看| 91视频精品在这里| 欧美精品在线视频| 久久久久久久久久久久久久久99 | 国产精品久久三| 亚洲已满18点击进入久久| 蜜桃一区二区三区在线观看| 粉嫩av一区二区三区| 欧美在线观看视频在线| 日韩精品一区二区三区老鸭窝| 欧美国产综合色视频| 一区二区三区在线高清| 久久99精品一区二区三区| 成人高清视频免费观看| 欧美日韩精品一区二区三区| 欧美精品一区男女天堂| 亚洲综合一二区| 国产综合久久久久久久久久久久| 97精品国产97久久久久久久久久久久| 91麻豆精品国产| 国产精品理伦片| 青青草成人在线观看| 风间由美一区二区av101| 在线成人av影院| 中文字幕一区二区在线观看| 日本成人在线网站| 91视频观看视频| 精品人在线二区三区| 亚洲综合视频网| 国产成人激情av| 欧美日韩免费观看一区三区| 国产精品久久久久影院色老大| 日韩精品一级二级 | 国产一区二区美女诱惑| 欧美性生活大片视频| 国产精品久久久久久一区二区三区| 日韩av中文字幕一区二区三区| 91香蕉国产在线观看软件| 欧美精品一区男女天堂| 日韩精品一卡二卡三卡四卡无卡| 一本久久a久久精品亚洲| 国产欧美日韩另类视频免费观看| 日本在线观看不卡视频| 欧美自拍偷拍一区| 中文字幕一区二区三区蜜月| 国产福利91精品一区二区三区| 日韩欧美中文字幕公布| 亚洲国产精品影院| 欧美影片第一页| 综合久久综合久久| 成人久久视频在线观看| 久久久久久久久蜜桃| 激情久久久久久久久久久久久久久久| 欧美日韩国产在线观看| 亚洲一区在线观看网站| 91一区二区三区在线观看| 日本一区二区高清| 国产成人欧美日韩在线电影| 久久精品亚洲精品国产欧美| 久久99精品国产.久久久久久 | 欧美三片在线视频观看| 亚洲免费色视频| 91一区二区在线| 一区二区三区在线观看视频| 色诱亚洲精品久久久久久| 亚洲三级免费观看| 99国产精品99久久久久久| 亚洲欧美影音先锋| 色综合久久久久久久| 亚洲综合色自拍一区| 欧美日产国产精品| 日本不卡视频一二三区| 日韩欧美成人一区| 精品一区二区综合| 国产日韩欧美精品综合| 99国产精品久久久久久久久久| 亚洲老司机在线| 欧美日韩精品一区视频| 久热成人在线视频| 久久久久久久久99精品| 国产精品99久久久久久有的能看| 久久精品一区四区| 91在线免费视频观看| 丝袜美腿一区二区三区| 欧美xxxx老人做受| 99久久精品国产精品久久| 亚洲一区在线观看视频| 91麻豆精品国产91久久久| 国产一区二区在线看| 中文字幕一区二区在线播放| 欧美三级视频在线| 激情六月婷婷久久| 亚洲人成小说网站色在线 | 亚洲精品乱码久久久久久久久| 欧美视频一区在线| 久久er精品视频| 中文字幕第一区| 宅男噜噜噜66一区二区66| 国产福利精品导航| 亚洲国产综合视频在线观看|