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

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

?? pdiusbd12.lst

?? HID 設備測試程序
?? LST
?? 第 1 頁 / 共 4 頁
字號:
 474   1              return len;
 475   1      }
 476          
 477          //===============================================================================//
 478          //== 函 數 名:disconnect_usb
 479          //== 功    能:斷開USB連接
 480          //== 說    明:斷開后要有一100ms的延時
 481          //== 時    間:2008.8.13 創建函數
 482          //== 入口參數:無
 483          //== 返 回 值:0
 484          //===============================================================================//
 485          unsigned char disconnect_usb(void)
 486          {
 487   1              unsigned int i;
 488   1      
 489   1              #ifdef __DEBUG__        //== 打印調試信息
C51 COMPILER V7.50   PDIUSBD12                                                             11/24/2008 09:12:37 PAGE 9   

 490   1                      Print_Msg("Runing disconnect_usb()!\r\n");
 491   1              #endif
 492   1      
 493   1              #ifdef __DEBUG__        //== 打印調試信息
 494   1                      Print_Msg("     斷開USB連接........................\r\n");
 495   1              #endif
 496   1      
 497   1              write_D12_command(0xf3);
 498   1              write_a_D12_data(0x0e);
 499   1              write_a_D12_data(0x47);                                         
 500   1              for (i=0; i<50000; i++);        //== 延時100ms
 501   1              return 0;
 502   1      }
 503          
 504          //===============================================================================//
 505          //== 函 數 名:connect_usb
 506          //== 功    能:連接USB
 507          //== 說    明:連接USB后并設置D12的輸出時鐘頻率
 508          //--0xF3  設置模式 寫入兩個字節
 509          //--1、配置字節  D7,D6(00):端點配置 模式0:非同步模式  模式1:同步輸出模式
 510          //---------------                    模式2:同步輸入模式 同步輸入/輸出模式
 511          //---------------D5(0): 保留位
 512          //---------------D4(0): softConnect 1:VBUS可用 上行數據上拉電阻被連接
 513          //---------------D3(1): 中斷模式  1:表示報告所有的錯誤和”NKing”并產生一個中
 514          //---------------                 0:表示只有"OK"被報告
 515          //---------------D2(1):時鐘運行,1:表示在掛起狀態下仍然有時鐘和PLL,0表示無
 516          //---------------D1(1): 無LAZYCLOCK 1:表示CLKOUT不會切換到LazyClock
 517          //---------------                    0:表示CLKOUT在Suspend變高之后切換到LazyClock
 518          //---------------D0(0):  保留位
 519          //--2、時鐘分頻系數字節
 520          //---------------D7(0): SOF-ONLY中斷模式
 521          //---------------1:表示僅當楨時鐘的起始(SOF)時刻引起中斷的產生,而不管引腳中斷模式的設定
 522          //---------------D6(0):SET_TO_ONE模式
 523          //---------------D5,D4(00):    保留位
 524          //---------------D3,2,1,0(1011):N表示分頻系數輸出頻率為48MHz/(N+1)
 525          //== 時    間:2008.8.13 創建函數
 526          //== 入口參數:無
 527          //== 返 回 值:0
 528          //===============================================================================//
 529          unsigned char connect_usb(void)
 530          {
 531   1              #ifdef __DEBUG__        //== 打印調試信息
 532   1                      Print_Msg("Runing connect_usb()!\r\n");
 533   1              #endif
 534   1      
 535   1              #ifdef __DEBUG__        //== 打印調試信息
 536   1                      Print_Msg("     連接USB...............\r\n");
 537   1              #endif
 538   1      
 539   1              write_D12_command(0xf3);                        //== 初始化USBD12
 540   1              write_a_D12_data(0x1e);                         //== 連接USB
 541   1              write_a_D12_data(0x47);                         //== 設置頻率
 542   1              return 0;
 543   1      }
 544          
 545          //===============================================================================//
 546          //== 函 數 名:init_usb
 547          //== 功    能:初始化D12
 548          //== 說    明:
 549          //== 時    間:2008.8.13 創建函數
 550          //== 入口參數:無
 551          //== 返 回 值:0
C51 COMPILER V7.50   PDIUSBD12                                                             11/24/2008 09:12:37 PAGE 10  

 552          //===============================================================================//
 553          unsigned char init_usb(void)               
 554          {
 555   1              #ifdef __DEBUG__        //== 打印調試信息
 556   1                      Print_Msg("Runing init_usb()!\r\n");
 557   1              #endif
 558   1      
 559   1              #ifdef __DEBUG__        //== 打印調試信息
 560   1                      Print_Msg("     set+enable D12 address!\r\n");
 561   1              #endif
 562   1      
 563   1              set_usb_addr(0);
 564   1              set_endpoint_enable();
 565   1              return 0;
 566   1      }
 567          
 568          //===============================================================================//
 569          //== 函 數 名:D12_ReadChipID
 570          //== 功    能:讀取D12版本號
 571          //== 說    明:
 572          //== 時    間:2008.8.13 創建函數
 573          //== 入口參數:無
 574          //== 返 回 值:0
 575          //===============================================================================//
 576          unsigned char D12_ReadChipID(void)
 577          {
 578   1              unsigned char Chip_ID[2];
 579   1              #ifdef __DEBUG__        //== 打印調試信息
 580   1                      Print_Msg("D12_ReadChipID()!\r\n");
 581   1              #endif
 582   1              write_D12_command(Read_ChipID);
 583   1              Chip_ID[0] = read_a_D12_data();
 584   1              Chip_ID[1] = read_a_D12_data();
 585   1              Print_Msg("     Chip_ID:");
 586   1              Print_Hex(Chip_ID, 2);
 587   1              Print_Msg("!\r\n");
 588   1              return 0;
 589   1      }
 590          //===============================================================================//
 591          //== 函 數 名:endp0_out
 592          //== 功    能:終端點0輸出中斷處理
 593          //== 說    明:
 594          //== 時    間:2008.8.13 創建函數
 595          //== 入口參數:無
 596          //== 返 回 值:0
 597          //===============================================================================//
 598          unsigned char endp0_out(void)
 599          {
 600   1              unsigned char i;
 601   1              #ifdef __DEBUG__        //== 打印調試信息
 602   1                      Print_Msg("Runing endp0_out()!\r\n");
 603   1              #endif
 604   1      
 605   1              D12_last_status.Register = read_last_status(0); //== 讀取端點0的最后狀態寄存器并清中斷標志
 606   1      
 607   1              if (D12_last_status.Status.setup_packet)                //== 如果收到建立(setup)包
 608   1              {
 609   2                      Control_Data.wLength = 0;                                       //== 傳輸字節總數清零
 610   2                      Control_Data.wCount = 0;                                        //== 傳輸字節計數器清零
 611   2                      if (read_endpoint_buff(0,sizeof(Control_Data.DeviceRequest),(unsigned char *)(&(Control_Data.DeviceReque
             -st))) != sizeof(REQUESTCMD))
 612   2                      {                                                                                       //== 如果從端點0讀取8個字節失敗
C51 COMPILER V7.50   PDIUSBD12                                                             11/24/2008 09:12:37 PAGE 11  

 613   3                              set_endpoint_status(0,0);                               //== 停止控制端點0
 614   3                              set_endpoint_status(1,0);                               //== 停止控制端點1
 615   3                              bEPPflags.bits.control_state = USB_IDLE;
 616   3                              return 1;
 617   3                      }
 618   2      
 619   2                      Print_Hex((unsigned char*)(&(Control_Data.DeviceRequest)), 8);
 620   2                      Print_Msg("!\r\n");
 621   2      
 622   2                      Control_Data.DeviceRequest.wValue = SWAP16(Control_Data.DeviceRequest.wValue);
 623   2                      Control_Data.DeviceRequest.wIndex = SWAP16(Control_Data.DeviceRequest.wIndex);
 624   2                      Control_Data.DeviceRequest.wLength = SWAP16(Control_Data.DeviceRequest.wLength);
 625   2      
 626   2                      Print_Hex((unsigned char*)(&(Control_Data.DeviceRequest)), 8);
 627   2                      Print_Msg("!\r\n");
 628   2      
 629   2                      ack_setup(0);                                                                                           //== 對控制端點0 進行建立包應答
 630   2                      ack_setup(1);                                                                                           //== 對控制端點1 進行建立包應答
 631   2      
 632   2                      Control_Data.wLength = Control_Data.DeviceRequest.wLength;      //== 取出要傳輸數據的總字節數
 633   2                      Control_Data.wCount = 0;                                                                        //== 傳輸字節計數器清零
 634   2      
 635   2                      if (Control_Data.DeviceRequest.bmRequestType&0x80)                      //== 如果控制傳輸是控制讀取(設備到主機)
 636   2                      {
 637   3                              bEPPflags.bits.setup_packet_in = 1;                                             //== 通知處理Setup 包,get command
 638   3                              bEPPflags.bits.control_state = USB_IDLE;
 639   3                      }
 640   2                      else                                                                                                            //== 控制輸出(主機到設備),不過要向主機返回一個長度為0的數據包
 641   2                      {
 642   3                              if (Control_Data.DeviceRequest.wLength == 0)                    //== set command 返回信息的字節長度是0
 643   3                              {
 644   4                                      bEPPflags.bits.setup_packet_out = 1;
 645   4                                      bEPPflags.bits.control_state = USB_IDLE;
 646   4                              }
 647   3                              else
 648   3                              {
 649   4                                      if (Control_Data.DeviceRequest.wLength > MAX_CONTROLDATA_SIZE)  //== 主機發給設備的令牌包的數據
 650   4                                      {                                                                                                                               //-- 長度不能大于8個字節
 651   5                                              bEPPflags.bits.control_state = USB_IDLE;
 652   5                                              set_endpoint_status(0,1);                                                                       //== 運行控制端點0
 653   5                                              set_endpoint_status(1,1);                                                                       //== 運行控制端點1
 654   5                                      }
 655   4                                      else
 656   4                                      {
 657   5                                              bEPPflags.bits.control_state = USB_RECEIVE;                             //== set command with OUT token
 658   5                                      }
 659   4                              }                                                                                                                                       //== set command with data
 660   3                      }                                                                                                                                               //== else set command
 661   2              }                                                                                                                                                       //== if setup packet
 662   1              else
 663   1              {
 664   2                      if (bEPPflags.bits.control_state == USB_RECEIVE)
 665   2                      {
 666   3                              i = read_endpoint_buff(0, EP0_PACKET_SIZE, Control_Data.dataBuffer + Control_Data.wCount);
 667   3                              Control_Data.wCount += i;
 668   3                              if ((i != EP0_PACKET_SIZE) || (Control_Data.wCount >= Control_Data.wLength))
 669   3                              {
 670   4                                      bEPPflags.bits.setup_packet_out = 1;
 671   4                                      bEPPflags.bits.control_state = USB_IDLE;
 672   4                              }
 673   3                      }
 674   2                      else
C51 COMPILER V7.50   PDIUSBD12                                                             11/24/2008 09:12:37 PAGE 12  

 675   2                      {
 676   3                              bEPPflags.bits.control_state = USB_IDLE;
 677   3                      }
 678   2              }
 679   1              select_endpoint(0);             //== 這是必須的
 680   1              clear_buffer();
 681   1      
 682   1              return 0;
 683   1      }
 684          
 685          //===============================================================================//
 686          //== 函 數 名:endp0_in
 687          //== 功    能:終端點0輸入處理
 688          //== 說    明:
 689          //== 時    間:2008.8.13 創建函數
 690          //== 入口參數:無
 691          //== 返 回 值:0
 692          //===============================================================================//
 693          unsigned char endp0_in(void)
 694          {
 695   1              short i;
 696   1      
 697   1              #ifdef __DEBUG__        //== 打印調試信息
 698   1                      Print_Msg("Runing endp0_in()!\r\n");
 699   1              #endif
 700   1              bEPPflags.bits.usb_endp0_in = 1;
 701   1              i = Control_Data.wLength - Control_Data.wCount;
 702   1              D12_last_status.Register = read_last_status(1);         //== Clear interrupt flag
 703   1              if (bEPPflags.bits.control_state != USB_TRANSMIT)
 704   1                      return 1;
 705   1      
 706   1              if (i >= EP0_PACKET_SIZE)                                                       //== 一次沒傳完
 707   1              {
 708   2                      write_endpoint_buff(1, EP0_PACKET_SIZE, Control_Data.pData + Control_Data.wCount);
 709   2      
 710   2                      if (bEPPflags.bits.first_get_descriptor)
 711   2                      {
 712   3                              bEPPflags.bits.control_state = USB_IDLE;        //== 第一次傳控制端點最大緩沖區的字節數就可以(在這里是16)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久久网站| 色婷婷精品久久二区二区蜜臀av| 欧美色手机在线观看| 亚洲一二三专区| 欧美日韩三级视频| 日本va欧美va欧美va精品| 精品国产一区二区三区久久影院| 国产真实乱对白精彩久久| 国产欧美一区二区精品仙草咪| 国产高清精品在线| 亚洲人妖av一区二区| 欧美中文字幕一区二区三区| 麻豆一区二区在线| 国产欧美日韩久久| 在线免费观看一区| 奇米精品一区二区三区四区 | 精品国产精品一区二区夜夜嗨| 久久99蜜桃精品| 亚洲欧洲成人av每日更新| 色偷偷一区二区三区| 国产乱淫av一区二区三区| 中文字幕在线观看不卡| 欧美日本一区二区| 国产乱码字幕精品高清av | 欧美日韩mp4| 精品影视av免费| 中文字幕日本不卡| 日韩一区二区三区免费看 | 丁香婷婷深情五月亚洲| 亚洲欧美国产77777| 欧美顶级少妇做爰| 成人动漫一区二区在线| 日韩精品一区第一页| 欧美高清在线精品一区| 欧美日韩激情在线| 国产99久久久久| 五月婷婷另类国产| 中文在线免费一区三区高中清不卡 | 2021久久国产精品不只是精品| 成a人片国产精品| 日本va欧美va精品| 亚洲精品网站在线观看| 久久这里都是精品| 欧美日本一区二区在线观看| 99综合电影在线视频| 捆绑紧缚一区二区三区视频| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 日本欧美一区二区| 亚洲精品免费看| 国产清纯在线一区二区www| 欧美日韩高清一区二区不卡| 成人免费视频网站在线观看| 毛片一区二区三区| 午夜不卡在线视频| 亚洲一区二区三区视频在线播放| 欧美国产成人精品| 久久久精品国产免费观看同学| 在线91免费看| 欧美午夜精品一区二区三区| 大胆欧美人体老妇| 国产成人精品一区二区三区四区| 青青草原综合久久大伊人精品| 夜夜精品浪潮av一区二区三区| 日本一区二区在线不卡| 久久久午夜精品理论片中文字幕| 日韩一级高清毛片| 日韩欧美国产一区二区在线播放| 国产欧美日韩在线| 精品久久久久久无| 欧美一区二区三区四区久久| 欧美蜜桃一区二区三区 | 8x8x8国产精品| 欧美三级一区二区| 色婷婷综合久色| 92精品国产成人观看免费| 成人激情免费电影网址| a级高清视频欧美日韩| 成人少妇影院yyyy| 91免费在线视频观看| 91浏览器在线视频| 欧洲一区二区三区免费视频| 在线视频欧美精品| 51精品秘密在线观看| 欧美一二三区在线| 精品日韩在线观看| 久久久久久久久久久久电影| 久久精品一区蜜桃臀影院| 国产色产综合产在线视频| 欧美国产精品一区二区三区| 专区另类欧美日韩| 亚洲国产日产av| 免费日本视频一区| 激情六月婷婷久久| 成人91在线观看| 在线观看视频一区二区| 91精品国产乱| 国产性色一区二区| 中文字幕一区在线观看视频| 一区二区三区电影在线播| 亚洲成av人片www| 久久av老司机精品网站导航| 国产福利一区在线| 色狠狠色狠狠综合| 3d动漫精品啪啪一区二区竹菊| 欧美电影免费观看高清完整版在线观看 | 一区二区三区精密机械公司| 午夜视频久久久久久| 美国十次了思思久久精品导航| 国产精品一区二区你懂的| 色哟哟国产精品| 欧美一区二区三区视频在线观看| 国产日韩欧美精品电影三级在线| 亚洲欧美国产三级| 久久99久久99| 91蝌蚪porny| 欧美成人r级一区二区三区| 亚洲欧美在线高清| 蜜臀久久99精品久久久画质超高清| 高清beeg欧美| 9191精品国产综合久久久久久| 中文字幕精品一区二区精品绿巨人| 午夜精品福利在线| 成人爽a毛片一区二区免费| 欧美日韩成人在线| |精品福利一区二区三区| 久久国产福利国产秒拍| 色综合久久久久久久久久久| 精品国产1区2区3区| 亚洲综合另类小说| jiyouzz国产精品久久| 日韩三级在线观看| 亚洲福利一二三区| 成人动漫精品一区二区| 欧美mv日韩mv亚洲| 亚洲小说欧美激情另类| 不卡欧美aaaaa| 久久女同性恋中文字幕| 亚洲国产成人av好男人在线观看| 成人毛片老司机大片| 欧美精品一区二区三| 亚洲不卡av一区二区三区| 99久久久国产精品免费蜜臀| 国产人伦精品一区二区| 视频在线观看91| 欧美亚洲丝袜传媒另类| 国产精品短视频| 国产成人综合亚洲网站| 精品免费视频一区二区| 日韩高清在线观看| 欧美日韩亚洲综合一区二区三区 | 欧美v亚洲v综合ⅴ国产v| 亚洲二区在线观看| 色域天天综合网| 中文字幕欧美一区| 成人毛片视频在线观看| 午夜精品久久久久久久久久久 | 波多野结衣在线一区| 国产日韩欧美综合在线| 国产成人精品亚洲日本在线桃色| 日韩欧美专区在线| 美女一区二区视频| 日韩一二在线观看| 极品少妇一区二区| 日韩一级大片在线观看| 日韩黄色小视频| 日韩一区二区在线观看视频播放| 丝袜美腿成人在线| 日韩一区二区三区免费观看| 久久精品国产在热久久| 欧美一区二区三区免费大片| 另类成人小视频在线| 欧美成人video| 国产69精品久久久久毛片| 欧美国产视频在线| 91丨九色丨蝌蚪富婆spa| 亚洲美女偷拍久久| 欧美性高清videossexo| 日韩电影在线一区| 精品久久久久99| 精品制服美女丁香| 国产日韩精品久久久| 一本大道久久精品懂色aⅴ| 一区二区三区在线观看网站| 在线免费观看视频一区| 日本成人中文字幕| 久久品道一品道久久精品| 成人黄页毛片网站| 亚洲一区二区影院| 日韩一区二区免费视频| 国产麻豆日韩欧美久久| 中文字幕一区二区三区蜜月| 色爱区综合激月婷婷| 天堂va蜜桃一区二区三区漫画版| 精品国产1区2区3区| 99久久免费视频.com| 五月天国产精品| 国产日韩综合av| 欧美日韩卡一卡二| 国产成人av一区| 亚洲第一二三四区|