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

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

?? f34x_usb_standard_requests.lst

?? C8051F340的USB應(yīng)用例程
?? LST
?? 第 1 頁 / 共 3 頁
字號:
 198          //-----------------------------------------------------------------------------
 199          // Clear_Feature
 200          //-----------------------------------------------------------------------------
 201          //
 202          // Return Value : None
 203          // Parameters   : None
 204          //
 205          // This routine can clear Halt Endpoint features on endpoint 1 and 2.
 206          //
 207          //-----------------------------------------------------------------------------
 208          
 209          void Clear_Feature()                            
 210          {                                               
 211   1      
 212   1         if ((USB_State != DEV_CONFIGURED)          ||// Send procedural stall if device isn't configured
 213   1         (Setup.bmRequestType == IN_DEVICE)         ||// or request is made to host(remote wakeup not supported)
 214   1         (Setup.bmRequestType == IN_INTERFACE)      ||// or request is made to interface
 215   1         Setup.wValue.c[MSB]  || Setup.wIndex.c[MSB]||// or msbs of value or index set to non-zero value
 216   1         Setup.wLength.c[MSB] || Setup.wLength.c[LSB])// or data length set to non-zero.
 217   1         {
 218   2            Force_Stall();
 219   2         }
 220   1      
 221   1         else
 222   1         {
 223   2            if ((Setup.bmRequestType == IN_ENDPOINT)&&// Verify that packet was directed at an endpoint
 224   2            (Setup.wValue.c[LSB] == ENDPOINT_HALT)  &&// the feature selected was HALT_ENDPOINT
 225   2            ((Setup.wIndex.c[LSB] == IN_EP1) ||       // and that the request was directed at EP 1 in
 226   2            (Setup.wIndex.c[LSB] == OUT_EP2)))        // or EP 2 out
 227   2            {
 228   3               if (Setup.wIndex.c[LSB] == IN_EP1)
 229   3               {
 230   4                  POLL_WRITE_BYTE (INDEX, 1);         // Clear feature endpoint 1 halt
 231   4                  POLL_WRITE_BYTE (EINCSR1, rbInCLRDT);
 232   4                  Ep_Status[1] = EP_IDLE;             // Set endpoint 1 status back to idle
 233   4               }
 234   3               else
 235   3               {
 236   4                  POLL_WRITE_BYTE (INDEX, 2);         // Clear feature endpoint 2 halt
 237   4                  POLL_WRITE_BYTE (EOUTCSR1, rbOutCLRDT);
 238   4                  Ep_Status[2] = EP_IDLE;             // Set endpoint 2 status back to idle
 239   4               }
 240   3            }
 241   2            else
C51 COMPILER V8.02   F34X_USB_STANDARD_REQUESTS                                            04/28/2008 13:24:09 PAGE 5   

 242   2            {
 243   3               Force_Stall();                         // Send procedural stall
 244   3            }
 245   2         }
 246   1         POLL_WRITE_BYTE(INDEX, 0);                   // Reset Index to 0
 247   1         if (Ep_Status[0] != EP_STALL)
 248   1         {
 249   2            // Indicate setup packet has been serviced
 250   2            POLL_WRITE_BYTE(E0CSR, rbSOPRDY);
 251   2         }
 252   1      }
 253          
 254          //-----------------------------------------------------------------------------
 255          // Set_Feature
 256          //-----------------------------------------------------------------------------
 257          //
 258          // Return Value : None
 259          // Parameters   : None
 260          //
 261          // This routine will set the EP Halt feature for endpoints 1 and 2
 262          //
 263          //-----------------------------------------------------------------------------
 264          
 265          void Set_Feature(void)                          
 266          {                                             
 267   1      
 268   1         if ((USB_State != DEV_CONFIGURED)          ||// Make sure device is configured, setup data
 269   1         (Setup.bmRequestType == IN_DEVICE)         ||// is all valid and that request is directed at
 270   1         (Setup.bmRequestType == IN_INTERFACE)      ||// an endpoint
 271   1         Setup.wValue.c[MSB]  || Setup.wIndex.c[MSB]||
 272   1         Setup.wLength.c[MSB] || Setup.wLength.c[LSB])
 273   1         {
 274   2            Force_Stall();                            // Otherwise send stall to host
 275   2         }
 276   1      
 277   1         else
 278   1         {
 279   2            if ((Setup.bmRequestType == IN_ENDPOINT)&&// Make sure endpoint exists and that halt
 280   2            (Setup.wValue.c[LSB] == ENDPOINT_HALT)  &&// endpoint feature is selected
 281   2            ((Setup.wIndex.c[LSB] == IN_EP1)        ||
 282   2            (Setup.wIndex.c[LSB] == OUT_EP2)))
 283   2            {
 284   3               if (Setup.wIndex.c[LSB] == IN_EP1)
 285   3               {
 286   4                  POLL_WRITE_BYTE (INDEX, 1);         // Set feature endpoint 1 halt
 287   4                  POLL_WRITE_BYTE (EINCSR1, rbInSDSTL);
 288   4                  Ep_Status[1] = EP_HALT;
 289   4               }
 290   3               else
 291   3               {
 292   4                  POLL_WRITE_BYTE (INDEX, 2);         // Set feature Ep2 halt
 293   4                  POLL_WRITE_BYTE (EOUTCSR1, rbOutSDSTL);
 294   4                  Ep_Status[2] = EP_HALT;
 295   4               }
 296   3            }
 297   2            else
 298   2            {
 299   3               Force_Stall();                         // Send procedural stall
 300   3            }
 301   2         }
 302   1         POLL_WRITE_BYTE(INDEX, 0);
 303   1         if (Ep_Status[0] != EP_STALL)
C51 COMPILER V8.02   F34X_USB_STANDARD_REQUESTS                                            04/28/2008 13:24:09 PAGE 6   

 304   1         {
 305   2            // Indicate setup packet has been serviced
 306   2            POLL_WRITE_BYTE(E0CSR, rbSOPRDY);
 307   2         }
 308   1      }
 309          
 310          //-----------------------------------------------------------------------------
 311          // Set_Address
 312          //-----------------------------------------------------------------------------
 313          //
 314          // Return Value : None
 315          // Parameters   : None
 316          //
 317          // Set new function address
 318          //
 319          //-----------------------------------------------------------------------------
 320          
 321          void Set_Address(void)                          
 322          {
 323   1         if ((Setup.bmRequestType != IN_DEVICE)     ||// Request must be directed to device
 324   1         Setup.wIndex.c[MSB]  || Setup.wIndex.c[LSB]||// with index and length set to zero.
 325   1         Setup.wLength.c[MSB] || Setup.wLength.c[LSB]||
 326   1         Setup.wValue.c[MSB]  || (Setup.wValue.c[LSB] & 0x80))
 327   1         {
 328   2           Force_Stall();                             // Send stall if setup data invalid
 329   2         }
 330   1      
 331   1         Ep_Status[0] = EP_ADDRESS;                   // Set endpoint zero to update address next status phase
 332   1         if (Setup.wValue.c[LSB] != 0)
 333   1         {
 334   2            USB_State = DEV_ADDRESS;                  // Indicate that device state is now address
 335   2         }
 336   1         else
 337   1         {
 338   2            USB_State = DEV_DEFAULT;                  // If new address was 0x00, return device to default
 339   2         }                                            // state
 340   1         if (Ep_Status[0] != EP_STALL)
 341   1         {
 342   2            // Indicate setup packet has been serviced
 343   2            POLL_WRITE_BYTE(E0CSR, rbSOPRDY);
 344   2         }
 345   1      }
 346          
 347          //-----------------------------------------------------------------------------
 348          // Get_Descriptor
 349          //-----------------------------------------------------------------------------
 350          //
 351          // Return Value : None
 352          // Parameters   : None
 353          //
 354          // This routine sets the data pointer and size to correct 
 355          // descriptor and sets the endpoint status to transmit
 356          //
 357          //-----------------------------------------------------------------------------
 358          
 359          void Get_Descriptor(void)                       
 360          {                                              
 361   1      
 362   1         switch(Setup.wValue.c[MSB])                  // Determine which type of descriptor
 363   1         {                                            // was requested, and set data ptr and
 364   2            case DSC_DEVICE:                          // size accordingly
 365   2               DataPtr = (BYTE*) &DeviceDesc;
C51 COMPILER V8.02   F34X_USB_STANDARD_REQUESTS                                            04/28/2008 13:24:09 PAGE 7   

 366   2               DataSize = DeviceDesc.bLength;
 367   2               break;
 368   2      
 369   2            case DSC_CONFIG:
 370   2               DataPtr = (BYTE*) &ConfigDesc;
 371   2                                                      // Compiler Specific - The next statement reverses the
 372   2                                                      // bytes in the configuration descriptor for the compiler
 373   2               DataSize = ConfigDesc.wTotalLength.c[MSB] + 256*ConfigDesc.wTotalLength.c[LSB];
 374   2               break;
 375   2      
 376   2            case DSC_STRING:
 377   2               DataPtr = StringDescTable[Setup.wValue.c[LSB]];
 378   2                                                      // Can have a maximum of 255 strings
 379   2               DataSize = *DataPtr;
 380   2               break;
 381   2      
 382   2            case DSC_INTERFACE:
 383   2               DataPtr = (BYTE*) &InterfaceDesc;
 384   2               DataSize = InterfaceDesc.bLength;
 385   2               break;
 386   2      
 387   2            case DSC_ENDPOINT:
 388   2               if ((Setup.wValue.c[LSB] == IN_EP1) ||
 389   2               (Setup.wValue.c[LSB] == OUT_EP2))
 390   2               {
 391   3                  if (Setup.wValue.c[LSB] == IN_EP1)
 392   3                  {
 393   4                     DataPtr = (BYTE*) &Endpoint1Desc;
 394   4                     DataSize = Endpoint1Desc.bLength;
 395   4                  }
 396   3                  else
 397   3                  {
 398   4                     DataPtr = (BYTE*) &Endpoint2Desc;
 399   4                     DataSize = Endpoint2Desc.bLength;
 400   4                  }
 401   3               }
 402   2               else
 403   2               {

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品 日韩| 午夜久久福利影院| 午夜av一区二区| 精品综合免费视频观看| 91在线观看美女| 久久亚区不卡日本| 日本美女一区二区| 色av成人天堂桃色av| 国产欧美一区二区精品性色| 亚洲超碰精品一区二区| av中文字幕在线不卡| 精品日韩99亚洲| 亚洲国产精品麻豆| 91蜜桃免费观看视频| 国产校园另类小说区| 免费亚洲电影在线| 欧美美女一区二区| 亚洲国产日产av| 99re视频精品| 国产精品麻豆视频| 国产成人精品www牛牛影视| 欧美一级高清大全免费观看| 亚洲综合免费观看高清完整版| 国产麻豆精品视频| 久久网这里都是精品| 青娱乐精品在线视频| 欧美理论片在线| 石原莉奈在线亚洲二区| 欧美激情中文字幕一区二区| 日韩和欧美的一区| 56国语精品自产拍在线观看| 亚洲午夜三级在线| 欧美性受xxxx黑人xyx| 一级特黄大欧美久久久| 色婷婷精品大在线视频| 亚洲精品日韩一| 在线视频中文字幕一区二区| 一区二区三区欧美久久| 欧美自拍偷拍午夜视频| 亚洲6080在线| 91精品国产色综合久久不卡电影| 日韩专区欧美专区| 91精品福利在线一区二区三区| 蜜桃av一区二区| 久久久国产一区二区三区四区小说| 国产精品亚洲人在线观看| 欧美国产1区2区| 色婷婷激情综合| 日韩高清在线观看| 欧美www视频| 成人一区二区三区| 亚洲一区二区在线观看视频| 欧美日韩一级片网站| 久久精品国产**网站演员| 日韩精品电影在线| 久久综合色天天久久综合图片| 国产乱码精品一区二区三区五月婷 | 欧美电影精品一区二区| 国产老妇另类xxxxx| 国产精品女同一区二区三区| 色就色 综合激情| 麻豆久久久久久久| 日本一区二区三区电影| 欧美怡红院视频| 国产专区综合网| 亚洲乱码国产乱码精品精可以看| 欧美顶级少妇做爰| 成人av在线播放网址| 亚洲综合在线第一页| 337p粉嫩大胆色噜噜噜噜亚洲| 99久久99精品久久久久久| 午夜精品久久久久久久99樱桃 | 久久蜜桃av一区精品变态类天堂| 成人app在线| 日本欧美一区二区三区| 综合久久久久久| 欧美一区二区观看视频| 99亚偷拍自图区亚洲| 久久国产精品99久久人人澡| 亚洲精品免费在线播放| 久久网站热最新地址| 欧美视频一区二| 99热精品国产| 国产一本一道久久香蕉| 五月天亚洲婷婷| 亚洲免费资源在线播放| 久久亚洲捆绑美女| 欧美久久久久中文字幕| 色综合欧美在线视频区| 国产成人av资源| 九九精品一区二区| 偷拍与自拍一区| 亚洲自拍偷拍欧美| 国产精品欧美极品| 欧美国产成人精品| 久久久久久免费毛片精品| 欧美一二三区在线| 欧美日本一区二区| 在线观看一区二区精品视频| 成人激情动漫在线观看| 精品一区免费av| 精品一区二区精品| 久久国产生活片100| 日韩av网站在线观看| 亚洲成人免费影院| 亚洲专区一二三| 夜夜精品浪潮av一区二区三区| 中文字幕日韩av资源站| 国产视频一区在线播放| 久久久亚洲精华液精华液精华液| 日韩欧美一卡二卡| 精品久久人人做人人爰| 精品久久久久久最新网址| 日韩欧美资源站| 精品少妇一区二区三区在线视频| 91麻豆精品国产91久久久久久| 欧美色图天堂网| 欧美日韩国产综合一区二区 | 日韩欧美高清一区| 日韩一级高清毛片| 天天亚洲美女在线视频| 亚洲国产欧美在线| 日韩一区精品视频| 久久国产精品一区二区| 精品一区二区免费看| 国产精品一区专区| 成人91在线观看| 在线中文字幕不卡| 欧美日本国产视频| 精品国产一区二区三区av性色 | 色狠狠色噜噜噜综合网| 欧美四级电影网| 日韩午夜在线观看| 久久久久久黄色| 亚洲婷婷国产精品电影人久久| 综合在线观看色| 亚洲成人午夜电影| 狠狠色丁香婷婷综合久久片| 国产一区二区不卡在线 | 激情深爱一区二区| 国产99久久久精品| 欧美在线观看一区| 精品日韩在线一区| 亚洲人午夜精品天堂一二香蕉| 亚洲一区二区三区四区五区黄| 日韩精品国产精品| 成人国产一区二区三区精品| 欧美午夜不卡视频| 日韩精品中文字幕在线一区| 中文在线一区二区| 天天综合色天天综合| 国产电影一区二区三区| 91麻豆精东视频| 精品国产乱子伦一区| 亚洲黄色尤物视频| 国产中文字幕精品| 欧美三区免费完整视频在线观看| 精品国产乱码久久久久久久 | 99re视频精品| 欧美videofree性高清杂交| 亚洲欧美自拍偷拍| 精品在线视频一区| 欧美性猛交一区二区三区精品| 欧美www视频| 亚洲国产日韩av| 成人h动漫精品一区二区| 日韩一区二区影院| 亚洲免费在线电影| 国产精品一二二区| 欧美一区二区精品| 一区二区三区不卡在线观看| 国产精品主播直播| 精品少妇一区二区三区日产乱码 | 亚洲电影在线免费观看| 国产91精品免费| 日韩一区二区三区电影在线观看| 亚洲视频一区二区在线观看| 精品一区二区三区免费播放| 色成年激情久久综合| 国产精品视频观看| 韩国av一区二区| 日韩欧美资源站| 91麻豆蜜桃一区二区三区| 精品日产卡一卡二卡麻豆| 亚洲国产日韩a在线播放性色| 99久久99久久精品国产片果冻| 久久久综合视频| 激情欧美一区二区三区在线观看| 欧美日韩国产bt| 亚洲一区二区三区不卡国产欧美| 成人av小说网| 国产人久久人人人人爽| 国产美女精品在线| 精品久久久久久无| 九九久久精品视频| 久久亚洲精精品中文字幕早川悠里| 免费在线看一区| 日韩欧美电影一二三| 久久精品国产一区二区三区免费看| 91精品国产色综合久久不卡蜜臀|