⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 d12ci.lst

📁 usblab usb程序开发实验 一个实例
💻 LST
📖 第 1 页 / 共 2 页
字号:
 211   1              D12Data();
 212   1              D12OutPort(bStalled);
 213   1              D12Dis()        ;
 214   1                      //outportb(D12_DATA, bStalled);
 215   1      
 216   1              if(bEPPflags.bits.in_isr == 0)
 217   1                      ENABLE;
 218   1      }
 219          
 220          #if 0
              unsigned short D12_ReadCurrentFrameNumber(void)
              {
                      unsigned short i,j;
              
                      if(bEPPflags.bits.in_isr == 0)
                              DISABLE;
              
                      D12Command();
                      D12En();
                      D12OutPort(0xF5);
                              //outportb(D12_COMMAND, 0xF5);
                      D12Data();
                      P2=0xFF;
                      D12InPort(i);
                      D12InPort(j);
                      D12Dis()        ;
                              //i= inportb(D12_DATA);
                              //j = inportb(D12_DATA);
              
                      i += (j<<8);
              
C51 COMPILER V8.01   D12CI                                                                 04/24/2006 19:23:08 PAGE 5   

                      if(bEPPflags.bits.in_isr == 0)
                              ENABLE;
              
                      return i;
              }
              #endif
 248          
 249          unsigned short D12_ReadChipID(void)
 250          {
 251   1              unsigned int    D12ID;
 252   1      
 253   1              if(bEPPflags.bits.in_isr == 0)
 254   1                      DISABLE;
 255   1      
 256   1              D12Command();
 257   1              D12En();
 258   1              D12OutPort(0xFD);
 259   1              
 260   1              D12Data();
 261   1              P2=0xFF;
 262   1              D12InPort(((UCHAR*)&D12ID)[0]);
 263   1              D12InPort(((UCHAR*)&D12ID)[1]);
 264   1              D12Dis();
 265   1      
 266   1              if(bEPPflags.bits.in_isr == 0)
 267   1                      ENABLE;
 268   1      
 269   1              return D12ID;
 270   1      }
 271          
 272          unsigned char D12_ReadEndpoint(unsigned char endp, unsigned char * buf, unsigned char len)
 273          {
 274   1              unsigned char i, j;
 275   1      
 276   1              if(bEPPflags.bits.in_isr == 0)
 277   1                      DISABLE;
 278   1      
 279   1              D12Command();
 280   1              D12En();
 281   1              D12OutPort(endp);
 282   1                      //outportb(D12_COMMAND, endp);
 283   1                      
 284   1              D12Data();
 285   1              P2=0xFF;
 286   1              D12InPort(i);
 287   1              if((i&D12_FULLEMPTY) == 0) {
 288   2                      if(bEPPflags.bits.in_isr == 0)
 289   2                              ENABLE;
 290   2                      return 0;
 291   2              }
 292   1              
 293   1              D12Command();
 294   1              D12OutPort(0xF0);
 295   1                      //outportb(D12_COMMAND, 0xF0);
 296   1              D12Data();
 297   1              P2=0xFF;
 298   1              D12InPort(j);
 299   1              D12InPort(j);           
 300   1                      //j = inportb(D12_DATA);
 301   1                      //j = inportb(D12_DATA);
 302   1      
 303   1              if(j > len)
C51 COMPILER V8.01   D12CI                                                                 04/24/2006 19:23:08 PAGE 6   

 304   1                      j = len;
 305   1      
 306   1              for(i=0; i<j; i++)
 307   1                      D12InPort(*(buf+i));
 308   1                              //*(buf+i) = inportb(D12_DATA);
 309   1      
 310   1              D12Command();
 311   1              D12OutPort(0xF2);
 312   1                      //outportb(D12_COMMAND, 0xF2);
 313   1              D12Dis()        ;
 314   1                      
 315   1              if(bEPPflags.bits.in_isr == 0)
 316   1                      ENABLE;
 317   1      
 318   1              return j;
 319   1      }
 320          
 321          #if 0
              // D12_ReadMainEndpoint() added by V2.2 to support double-buffering.
              // Caller should assume maxium 128 bytes of returned data.
              unsigned char D12_ReadMainEndpoint(unsigned char * buf)
              {
                      unsigned char i, j, k = 0, bDblBuf = 1;
              
                      if(bEPPflags.bits.in_isr == 0)
                              DISABLE;
              
              //      outportb(D12_COMMAND, 0x84);
              //      if( (inportb(D12_DATA) & 0x60) == 0x60)
                              bDblBuf = 2;
              
                      while(bDblBuf) {
                              outportb(D12_COMMAND, 4);
                              if((inportb(D12_DATA) & D12_FULLEMPTY) == 0)
                                      break;
              
                              outportb(D12_COMMAND, 0xF0);
                              j = inportb(D12_DATA);
                              j = inportb(D12_DATA);
              
                              for(i=0; i<j; i++)
                                      *(buf+i+k) = inportb(D12_DATA);
              
                              k += j;
              
                              outportb(D12_COMMAND, 0xF2);
              
                              bDblBuf --;
                      }
              
                      if(bEPPflags.bits.in_isr == 0)
                              ENABLE;
              
                      return k;
              }
              #endif
 360          
 361          unsigned char D12_WriteEndpoint(unsigned char endp, unsigned char * buf, unsigned char len)
 362          {
 363   1              unsigned char i;
 364   1      
 365   1              if(bEPPflags.bits.in_isr == 0)
C51 COMPILER V8.01   D12CI                                                                 04/24/2006 19:23:08 PAGE 7   

 366   1                      DISABLE;
 367   1      
 368   1              D12Command();
 369   1              D12En();
 370   1              D12OutPort(endp);
 371   1                      //outportb(D12_COMMAND, endp);
 372   1              D12Data();
 373   1              P2=0xFF;
 374   1              D12InPort(i);           
 375   1                      //inportb(D12_DATA);
 376   1                      
 377   1              D12Command();
 378   1              D12OutPort(0xF0);
 379   1                      //outportb(D12_COMMAND, 0xF0);
 380   1              D12Data();
 381   1              D12OutPort(0);  
 382   1              D12OutPort(len);
 383   1                      //outportb(D12_DATA, 0);
 384   1                      //outportb(D12_DATA, len);
 385   1      
 386   1              for(i=0; i<len; i++)
 387   1                      D12OutPort(*(buf+i));
 388   1                      //outportb(D12_DATA, *(buf+i));
 389   1                      
 390   1              D12Command();
 391   1              D12OutPort(0xFA);
 392   1                      //outportb(D12_COMMAND, 0xFA);
 393   1              D12Dis()        ;
 394   1                      
 395   1              if(bEPPflags.bits.in_isr == 0)
 396   1                      ENABLE;
 397   1      
 398   1              return len;
 399   1      }
 400          
 401          void D12_AcknowledgeEndpoint(unsigned char endp)
 402          {
 403   1              D12Command();
 404   1              D12En();
 405   1              D12OutPort(endp);
 406   1              D12OutPort(0xF1);
 407   1                      //outportb(D12_COMMAND, endp);
 408   1                      //outportb(D12_COMMAND, 0xF1);
 409   1              if(endp == 0)
 410   1                      D12OutPort(0xF2);
 411   1                      //outportb(D12_COMMAND, 0xF2);
 412   1              D12Dis()        ;
 413   1      }
 414          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    728    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      12
   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 + -