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

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

?? f34x_usb_isr.lst

?? c8051f340單片機開發板中USB通訊的源碼
?? LST
?? 第 1 頁 / 共 2 頁
字號:
 263   4                  {
 264   5                     TempReg |= rbDATAEND;    // Add Data End bit to mask
 265   5                     Ep_Status[0] = EP_IDLE;  // and return Endpoint 0 to an idle state
 266   5                  }
 267   4                  POLL_WRITE_BYTE(E0CSR, TempReg);                          // Write mask to E0CSR
 268   4               }
 269   3            }
 270   2         }
 271   1      }
 272          
 273          //-----------------------------------------------------------------------------
 274          // Handle_In1
 275          //-----------------------------------------------------------------------------
 276          //
 277          // Return Value : None
 278          // Parameters   : None
 279          //
 280          // This routine loads the current value from In_Packet on the Endpoint 1 fifo,
 281          // after  an interrupt is received from the last packet being transmitted
 282          //
 283          //-----------------------------------------------------------------------------
 284          
 285          void Handle_In1()
 286          {
 287   1         BYTE ControlReg;
 288   1      
 289   1         POLL_WRITE_BYTE(INDEX, 1);           // Set index to endpoint 1 registers
 290   1         POLL_READ_BYTE(EINCSR1, ControlReg); // Read contol register for EP 1
 291   1      
 292   1         if (Ep_Status[1] == EP_HALT)         // If endpoint is currently halted, 
 293   1                                              // send a stall
 294   1         {
 295   2            POLL_WRITE_BYTE(EINCSR1, rbInSDSTL);
 296   2         }
 297   1      
 298   1         else                                 // Otherwise send last updated 
 299   1                                              // data to host
 300   1         {
 301   2            if (ControlReg & rbInSTSTL)       // Clear sent stall if last packet
 302   2                                                  // returned a stall
 303   2            {
C51 COMPILER V7.06   F34X_USB_ISR                                                          09/10/2008 08:42:46 PAGE 6   

 304   3               POLL_WRITE_BYTE(EINCSR1, rbInCLRDT);
 305   3            }
 306   2      
 307   2            if (ControlReg & rbInUNDRUN)      // Clear underrun bit if it was set
 308   2            {
 309   3               POLL_WRITE_BYTE(EINCSR1, 0x00);
 310   3            }
 311   2      
 312   2                                              // Put new data on Fifo
 313   2            Fifo_Write(FIFO_EP1, EP1_PACKET_SIZE, (BYTE *)IN_PACKET);
 314   2            POLL_WRITE_BYTE(EINCSR1, rbInINPRDY);
 315   2                                              // Set In Packet ready bit, indicating 
 316   2         }                                    // fresh data on Fifo 1
 317   1      }
 318          
 319          //-----------------------------------------------------------------------------
 320          // Handle_Out2
 321          //-----------------------------------------------------------------------------
 322          //
 323          // Return Value : None
 324          // Parameters   : None
 325          //
 326          // Take the received packet from the host off the fifo and put it into
 327          // the Out_Packet array
 328          //
 329          //-----------------------------------------------------------------------------
 330          
 331          void Handle_Out2()
 332          {
 333   1         BYTE Count = 0;
 334   1         BYTE ControlReg;
 335   1      
 336   1         POLL_WRITE_BYTE(INDEX, 2);          // Set index to endpoint 2 registers
 337   1         POLL_READ_BYTE(EOUTCSR1, ControlReg);
 338   1      
 339   1         if (Ep_Status[2] == EP_HALT)        // If endpoint is halted, send a stall
 340   1         {
 341   2            POLL_WRITE_BYTE(EOUTCSR1, rbOutSDSTL);
 342   2         }
 343   1      
 344   1         else                                // Otherwise read packet from host
 345   1         {
 346   2            if (ControlReg & rbOutSTSTL)     // Clear sent stall bit if last packet 
 347   2                                             // was a stall
 348   2            {
 349   3               POLL_WRITE_BYTE(EOUTCSR1, rbOutCLRDT);
 350   3            }
 351   2      
 352   2            POLL_READ_BYTE(EOUTCNTL, Count);
 353   2            if (Count != EP2_PACKET_SIZE)    // If host did not send correct packet 
 354   2                                                 // size, flush buffer
 355   2            {
 356   3               POLL_WRITE_BYTE(EOUTCNTL, rbOutFLUSH);
 357   3            }
 358   2            else                             // Otherwise get the data packet
 359   2            {
 360   3               Fifo_Read(FIFO_EP2, EP2_PACKET_SIZE, (BYTE*)OUT_PACKET);
 361   3            }
 362   2            POLL_WRITE_BYTE(EOUTCSR1, 0);    // Clear Out Packet ready bit
 363   2         }
 364   1      }
 365          
C51 COMPILER V7.06   F34X_USB_ISR                                                          09/10/2008 08:42:46 PAGE 7   

 366          //-----------------------------------------------------------------------------
 367          // Usb_Suspend
 368          //-----------------------------------------------------------------------------
 369          //
 370          // Return Value : None
 371          // Parameters   : None
 372          //
 373          // Enter suspend mode after suspend signalling is present on the bus
 374          //
 375          //-----------------------------------------------------------------------------
 376          
 377          void Usb_Suspend(void)
 378          {          
 379   1         // Put the device in a low power configuration
 380   1                                     
 381   1         P0MDIN  = 0x00;                     // Port 0 configured as analog input
 382   1         P1MDIN  = 0x00;                     // Port 1 configured as analog input
 383   1         P2MDIN  = 0x00;                     // Port 2 configured as analog input
 384   1         P3MDIN  = 0x00;                     // Port 3 configured as analog input
 385   1      
 386   1         ADC0CN &= ~0x80;                    // Disable ADC0
 387   1         REF0CN  = 0x00;                     // Disable voltage reference
 388   1      
 389   1         OSCICN |= 0x20;                     // Put oscillator 
 390   1      
 391   1         // When the device receives a non-idle USB event, it will resume execution
 392   1         // on the instruction that follows OSCICN |= 0x20.  
 393   1      
 394   1         // Re-enable everything that was disabled when going into Suspend
 395   1      
 396   1         P0MDIN  = 0xFF;                     // Port 0 configured as digital pins
 397   1         P1MDIN  = 0x7F;                     // Port 1 pin 7 set as digital pin
 398   1         P2MDIN  = 0xFF;                     // Port 2 configured as digital pins
 399   1         P3MDIN  = 0xFF;                     // Port 3 configured as digital pins
 400   1      
 401   1         REF0CN  = 0x0E;                     // Enable voltage reference VREF
 402   1         ADC0CN |= 0x80;                     // Re-enable ADC0
 403   1      }
 404          
 405          //-----------------------------------------------------------------------------
 406          // Usb_Resume
 407          //-----------------------------------------------------------------------------
 408          //
 409          // Return Value : None
 410          // Parameters   : None
 411          //
 412          // Resume normal USB operation
 413          //
 414          //-----------------------------------------------------------------------------
 415          
 416          void Usb_Resume(void)
 417          {
 418   1         volatile int k;
 419   1      
 420   1         k++;
 421   1      
 422   1         // Add code for resume
 423   1      }
 424          
 425          //-----------------------------------------------------------------------------
 426          // Fifo_Read
 427          //-----------------------------------------------------------------------------
C51 COMPILER V7.06   F34X_USB_ISR                                                          09/10/2008 08:42:46 PAGE 8   

 428          //
 429          // Return Value : None
 430          // Parameters   :
 431          //                1) BYTE addr : target address
 432          //                2) unsigned int uNumBytes : number of bytes to unload
 433          //                3) BYTE * pData : read data destination
 434          //
 435          // Read from the selected endpoint FIFO
 436          //
 437          //-----------------------------------------------------------------------------
 438          
 439          void Fifo_Read(BYTE addr, unsigned int uNumBytes, BYTE * pData)
 440          {
 441   1         int i;
 442   1      
 443   1         if (uNumBytes)                         // Check if >0 bytes requested,
 444   1         {
 445   2            USB0ADR = (addr);                   // Set address
 446   2            USB0ADR |= 0xC0;                    // Set auto-read and initiate
 447   2                                                // first read
 448   2      
 449   2            // Unload <NumBytes> from the selected FIFO
 450   2            for(i=0;i<uNumBytes-1;i++)
 451   2            {
 452   3               while(USB0ADR & 0x80);           // Wait for BUSY->'0' (data ready)
 453   3               pData[i] = USB0DAT;              // Copy data byte
 454   3            }
 455   2      
 456   2            USB0ADR = 0;                           // Clear auto-read
 457   2      
 458   2            while(USB0ADR & 0x80);               // Wait for BUSY->'0' (data ready)
 459   2            pData[i] = USB0DAT;                  // Copy data byte
 460   2         }
 461   1      }
 462          
 463          //-----------------------------------------------------------------------------
 464          // Fifo_Write
 465          //-----------------------------------------------------------------------------
 466          //
 467          // Return Value : None
 468          // Parameters   :
 469          //                1) BYTE addr : target address
 470          //                2) unsigned int uNumBytes : number of bytes to unload
 471          //                3) BYTE * pData : location of source data
 472          //
 473          // Write to the selected endpoint FIFO
 474          //
 475          //-----------------------------------------------------------------------------
 476          
 477          void Fifo_Write(BYTE addr, unsigned int uNumBytes, BYTE * pData)
 478          {
 479   1         int i;
 480   1      
 481   1         // If >0 bytes requested,
 482   1         if (uNumBytes)
 483   1         {
 484   2            while(USB0ADR & 0x80);              // Wait for BUSY->'0'
 485   2                                                // (register available)
 486   2            USB0ADR = (addr);                   // Set address (mask out bits7-6)
 487   2      
 488   2            // Write <NumBytes> to the selected FIFO
 489   2            for(i=0;i<uNumBytes;i++)
C51 COMPILER V7.06   F34X_USB_ISR                                                          09/10/2008 08:42:46 PAGE 9   

 490   2            {
 491   3               USB0DAT = pData[i];
 492   3               while(USB0ADR & 0x80);           // Wait for BUSY->'0' (data ready)
 493   3            }
 494   2         }
 495   1      }
 496          
 497          //-----------------------------------------------------------------------------
 498          // Force_Stall
 499          //-----------------------------------------------------------------------------
 500          //
 501          // Return Value : None
 502          // Parameters   : None
 503          //
 504          // Force a procedural stall to be sent to the host
 505          //
 506          //-----------------------------------------------------------------------------
 507          
 508          void Force_Stall(void)
 509          {
 510   1         POLL_WRITE_BYTE(INDEX, 0);
 511   1         POLL_WRITE_BYTE(E0CSR, rbSDSTL);       // Set the send stall bit
 512   1         Ep_Status[0] = EP_STALL;               // Put the endpoint in stall status
 513   1      }
 514          
 515          //-----------------------------------------------------------------------------
 516          // End Of File
 517          //-----------------------------------------------------------------------------


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1031    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     19      17
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产露脸精彩对白| 波波电影院一区二区三区| 国产色产综合产在线视频| 91精品国产综合久久蜜臀| 欧美日韩在线一区二区| 色狠狠色噜噜噜综合网| 91香蕉视频污| 一本大道久久a久久综合| 不卡电影免费在线播放一区| 色噜噜夜夜夜综合网| 国产91精品露脸国语对白| 国产一区二区调教| 国产91丝袜在线播放| 成人av网站在线观看免费| 成人av免费在线播放| 91在线看国产| 欧美日韩一级片网站| 91精品国产福利| 精品国免费一区二区三区| 久久久欧美精品sm网站| 国产精品亲子伦对白| 亚洲美女屁股眼交| 婷婷久久综合九色综合绿巨人 | 国产盗摄一区二区| 国产成人一区在线| 91亚洲精品久久久蜜桃网站| 欧美性受xxxx黑人xyx性爽| 91精品国产综合久久久久久久久久| 91精品国产手机| 国产日韩一级二级三级| 最近中文字幕一区二区三区| 亚洲成av人片| 国产伦精品一区二区三区免费| 9i在线看片成人免费| 在线观看精品一区| 日韩一区二区在线看片| 中文字幕成人在线观看| 亚洲国产精品久久一线不卡| 国内精品自线一区二区三区视频| 成人黄色一级视频| 欧美久久久一区| 欧美韩日一区二区三区| 天堂成人国产精品一区| 丁香网亚洲国际| 91精品一区二区三区久久久久久| 久久久久久9999| 日韩视频永久免费| 国产精品夜夜爽| 69p69国产精品| 午夜精品久久久久久久99樱桃| 91日韩在线专区| 欧美日韩精品一区视频| 日韩黄色一级片| 91精品国产色综合久久| 在线亚洲欧美专区二区| 日本强好片久久久久久aaa| 粉嫩av一区二区三区| 欧美日韩一区二区在线观看视频| 久久精品免费在线观看| 日韩激情在线观看| 91久久久免费一区二区| 国产欧美精品一区aⅴ影院| 麻豆国产欧美一区二区三区| 91黄色免费网站| 亚洲色图视频网| 成人三级伦理片| 国产婷婷精品av在线| 久久66热re国产| 日韩一区二区三区四区五区六区| 亚洲一区在线观看视频| 97精品久久久久中文字幕| 国产亲近乱来精品视频| 国产乱一区二区| 久久综合久久久久88| 久久精品av麻豆的观看方式| 欧美精品日日鲁夜夜添| 婷婷亚洲久悠悠色悠在线播放| 91成人在线观看喷潮| 一区二区三区四区在线| 91美女片黄在线观看| 国产精品久久久久久久久久免费看 | 成人国产亚洲欧美成人综合网| 久久久天堂av| 国产成人精品1024| 日本一区二区高清| thepron国产精品| 成人欧美一区二区三区白人| 99精品国产99久久久久久白柏| 国产精品国产三级国产普通话三级| 懂色av一区二区三区蜜臀| 亚洲国产精品黑人久久久| 成人美女视频在线观看18| 国产精品不卡在线| 在线免费av一区| 性欧美大战久久久久久久久| 91麻豆精品国产自产在线| 蜜桃久久精品一区二区| 精品国产一区二区三区av性色| 久草精品在线观看| 亚洲国产精品国自产拍av| 91黄视频在线| 久久精品国产77777蜜臀| 欧美高清在线一区二区| 日本高清无吗v一区| 天天色综合成人网| 中文乱码免费一区二区| av亚洲精华国产精华| 一区二区三区日本| 精品国产髙清在线看国产毛片| 国产福利一区二区三区视频在线| 综合久久久久久| 在线播放一区二区三区| 韩国在线一区二区| 亚洲视频一区在线| 欧美一二三四区在线| 成人精品国产一区二区4080| 亚洲mv在线观看| 日本一区二区久久| 欧美精品久久一区| av综合在线播放| 男人操女人的视频在线观看欧美| 国产午夜一区二区三区| 欧美日韩精品系列| 成人亚洲一区二区一| 婷婷六月综合亚洲| 亚洲同性gay激情无套| 日韩免费性生活视频播放| 97精品久久久午夜一区二区三区| 麻豆专区一区二区三区四区五区| 国产精品第四页| 欧美tk丨vk视频| 欧美日韩精品系列| 97国产一区二区| 国产精品一品视频| 看片的网站亚洲| 图片区小说区区亚洲影院| 国产精品久久久久7777按摩| 日韩欧美久久久| 欧美视频一区二| 91亚洲永久精品| 成人97人人超碰人人99| 国产一区二区三区香蕉| 蜜臀a∨国产成人精品| 亚洲成人精品影院| 一区二区成人在线观看| 国产精品久久久久久久久快鸭 | 亚洲精品在线一区二区| 欧美日韩国产精品自在自线| 日本韩国欧美国产| 91在线视频播放地址| 成人av午夜影院| 国产91精品露脸国语对白| 国产精品一二三| 国产精品一二二区| 国产黄色精品视频| 国产精品一二三四五| 国产精品综合二区| 国产aⅴ综合色| 国产69精品久久777的优势| 国产一区二区三区免费在线观看| 久久99久久精品| 狠狠色丁香婷婷综合| 国产一区二区三区在线观看免费视频| 久久精品国产一区二区三| 久久99精品国产.久久久久 | 亚洲国产精品成人综合| 国产日韩精品一区二区浪潮av| 国产视频一区在线观看| 国产精品国产成人国产三级| 最近中文字幕一区二区三区| 亚洲激情中文1区| 性做久久久久久免费观看欧美| 三级久久三级久久| 麻豆中文一区二区| 成人手机在线视频| 欧美怡红院视频| 欧美va亚洲va香蕉在线| 国产精品毛片大码女人| 亚洲综合在线观看视频| 青娱乐精品视频| 国产.欧美.日韩| 色综合色综合色综合 | 国内成+人亚洲+欧美+综合在线| 国产一区二区美女诱惑| www.久久久久久久久| 在线看国产日韩| 精品精品欲导航| 亚洲欧美激情小说另类| 奇米色一区二区| 成人h精品动漫一区二区三区| 欧美午夜影院一区| 久久精品这里都是精品| 亚洲激情在线播放| 狠狠v欧美v日韩v亚洲ⅴ| 色综合久久久网| 精品捆绑美女sm三区| 亚洲免费大片在线观看| 久久超碰97中文字幕| 日本精品免费观看高清观看| 精品成人免费观看|