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

📄 isr.lst

📁 usb程序 硬件用的是isp1518
💻 LST
📖 第 1 页 / 共 2 页
字号:
 182   1      }
 183          
 184          void Isr_EP0Setup(void)
 185          {
 186   1              // Getting Setup Packet
 187   1              ISP1581_IntClearl(int_ep0set);
 188   1              SetupToken_Handler();
 189   1      }
 190          void Isr_Ep00RxDone(unsigned char nosetup)
 191          {
 192   1              UCHAR       i;
 193   1              unsigned short len;
 194   1              
 195   1              //ISP1581_IntClearl(int_ep0rx);
 196   1              switch (bZBoardFlags.bits.DCP_state)
 197   1              {
 198   2              case USBFSM4DCP_DATAOUT:
 199   2                      
 200   2                      if(ControlData.wLength >= ControlData.wCount)
 201   2                              len = ControlData.wLength - ControlData.wCount;
 202   2                      else
 203   2                              len = 0x0;
 204   2                              
 205   2                      i =ISP1581_ReadControlEndpoint(ControlData.dataBuffer + ControlData.wCount, len);
 206   2                      ControlData.wCount += i;
 207   2      
 208   2                      if(ControlData.wCount <= ControlData.wLength && i <= EP0_PACKET_SIZE)
 209   2                      {
 210   3                              bZBoardFlags.bits.CONTROL_HANDLE_DONE = 1;
 211   3                              bZBoardFlags.bits.DCP_state = USBFSM4DCP_REQUESTPROC;
 212   3                      }
 213   2                      else    // too much data out than expected
 214   2                      {
 215   3                              if(nosetup)
 216   3                              {
 217   4                              ISP1581_StallEP0InControlWrite();
 218   4                              bZBoardFlags.bits.DCP_state = USBFSM4DCP_STALL;
 219   4                              }
 220   3                      }
 221   2                      ISP1581_IntClearl(int_ep0rx);
 222   2                      break;
 223   2              case USBFSM4DCP_CONTROLREADHANDSHAKE:
 224   2                      bZBoardFlags.bits.DCP_state = USBFSM4DCP_IDLE;
 225   2                      ISP1581_IntClearl(int_ep0rx);
 226   2                      break;
 227   2              case USBFSM4DCP_IDLE:
 228   2                      bZBoardFlags.bits.DCP_state = USBFSM4DCP_IDLE;
 229   2                      if(nosetup)
 230   2                              {//MCU_LED0 = 0;
 231   3                              ISP1581_IntClearl(int_ep0rx);}
 232   2                      break;
 233   2              case USBFSM4DCP_STALL:
 234   2                      if(nosetup)
 235   2                              ISP1581_IntClearl(int_ep0rx);
 236   2                      break;
 237   2              default:
 238   2              if(nosetup)
 239   2                      {
C51 COMPILER V8.02   ISR                                                                   08/03/2006 10:10:36 PAGE 5   

 240   3                      
 241   3                      ISP1581_StallEP0InControlWrite();
 242   3                      bZBoardFlags.bits.DCP_state = USBFSM4DCP_STALL;
 243   3                      }
 244   2                      break;
 245   2              }
 246   1      }
 247          void Isr_Ep00TxDone(unsigned char nosetup)
 248          {
 249   1              short i;
 250   1              ISP1581_IntClearl(int_ep0tx);
 251   1              switch (bZBoardFlags.bits.DCP_state)
 252   1              {
 253   2              case USBFSM4DCP_CONTROLREADHANDSHAKE:
 254   2                      ISP1581_ControlReadHandshake();
 255   2                      bZBoardFlags.bits.DCP_state = USBFSM4DCP_CONTROLREADHANDSHAKE;
 256   2                      break;
 257   2              case USBFSM4DCP_CONTROLWRITEHANDSHAKE:
 258   2                      bZBoardFlags.bits.DCP_state = USBFSM4DCP_IDLE;
 259   2                      break;
 260   2              case USBFSM4DCP_DATAIN:
 261   2                      i = ControlData.wLength - ControlData.wCount;
 262   2                      if( i >= EP0_PACKET_SIZE)
 263   2                      {
 264   3                              ISP1581_WriteControlEndpoint(ControlData.pData + ControlData.wCount, EP0_PACKET_SIZE);
 265   3                              ControlData.wCount += EP0_PACKET_SIZE;
 266   3                              bZBoardFlags.bits.DCP_state = USBFSM4DCP_DATAIN;
 267   3                      }
 268   2                      else if( i != 0)
 269   2                      {
 270   3                              ISP1581_WriteControlEndpoint(ControlData.pData + ControlData.wCount, i);
 271   3                              ControlData.wCount += i;
 272   3                              bZBoardFlags.bits.DCP_state = USBFSM4DCP_CONTROLREADHANDSHAKE;
 273   3                      }
 274   2                      else if (i == 0)
 275   2                      {
 276   3                              ISP1581_WriteControlEndpoint(0, 0);
 277   3                              bZBoardFlags.bits.DCP_state = USBFSM4DCP_CONTROLREADHANDSHAKE;
 278   3                      }
 279   2                      break;
 280   2              case USBFSM4DCP_STALL:
 281   2                      bZBoardFlags.bits.DCP_state = USBFSM4DCP_IDLE;
 282   2                      break;
 283   2              case USBFSM4DCP_IDLE:
 284   2                      //MCU_LED0=0;
 285   2                      break;
 286   2              case USBFSM4DCP_REQUESTPROC:
 287   2                      
 288   2                      break;
 289   2              case USBFSM4DCP_SETUPPROC:
 290   2                      
 291   2                      break;
 292   2              case USBFSM4DCP_DATAOUT:
 293   2                      
 294   2                      break;
 295   2              default:
 296   2      // do nothing, maybe just 1st nak for control in.
 297   2                      if(nosetup)
 298   2                      {
 299   3                              //MCU_LED0=0;
 300   3                              ISP1581_StallEP0InControlRead();
 301   3                              bZBoardFlags.bits.DCP_state = USBFSM4DCP_STALL;
C51 COMPILER V8.02   ISR                                                                   08/03/2006 10:10:36 PAGE 6   

 302   3                      }
 303   2                      break;
 304   2              
 305   2              }
 306   1      }
 307          
 308          void Isr_Ep01rxDone(void)
 309          {
 310   1              unsigned short len;
 311   1              ISP1581_IntClearl(int_ep1rx);
 312   1              len= ISP1581_ReadBulkEndpoint(EPINDEX4EP01OUT,GenEpBuf,EP1_PACKET_SIZE);
 313   1      }
 314          void Isr_Ep01txDone(void)
 315          {
 316   1              ISP1581_IntClearl(int_ep1tx);
 317   1      }
 318          void Isr_Ep02rxDone(void)
 319          {
 320   1              unsigned short len;
 321   1              ISP1581_IntClearl(int_ep2rx);
 322   1              len= ISP1581_ReadBulkEndpoint(EPINDEX4EP02OUT,GenEpBuf,maxepsize_FS);
 323   1      
 324   1      }
 325          void Isr_Ep02txDone(void)
 326          {
 327   1              ISP1581_IntClearl(int_ep2tx);
 328   1      }
 329          void Isr_Ep03rxDone(void)
 330          {
 331   1              ISP1581_IntClearh(int_ep3rx);
 332   1      }
 333          void Isr_Ep03txDone(void)
 334          {
 335   1              ISP1581_IntClearh(int_ep3tx);
 336   1      }
 337          void Isr_Ep04rxDone(void)
 338          {
 339   1              unsigned short len;
 340   1              ISP1581_IntClearh(int_ep4rx);
 341   1              len= ISP1581_ReadBulkEndpoint(EPINDEX4EP04OUT,GenEpBuf,EP4_PACKET_SIZE);
 342   1              ioRequest.bCommand=GenEpBuf[0];
 343   1              bZBoardFlags.bits.bLED = 1;
 344   1              
 345   1      }
 346          void Isr_Ep04txDone(void)
 347          {
 348   1              ISP1581_IntClearh(int_ep4tx);   
 349   1      }
 350          
 351          
 352          ///////////////////////////////////////////////////////////////////////////
 353          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1021    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      4      19
   IDATA SIZE       =     64    ----
   BIT SIZE         =   ----    ----
C51 COMPILER V8.02   ISR                                                                   08/03/2006 10:10:36 PAGE 7   

   EDATA SIZE       =   ----    ----
   HDATA SIZE       =   ----    ----
   XDATA CONST SIZE =   ----    ----
   FAR CONST SIZE   =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -