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

📄 vendor.lst

📁 USB2.0例程(有3个
💻 LST
📖 第 1 页 / 共 2 页
字号:
 108   3                              Kernel_Flag.BITS.In_Reset_Done = 0;
 109   3                      }
 110   2                      
 111   2                      if(FileSize.Size.DIR == 0x00 || FileSize.Size.DIR == 0x80)
 112   2                              DMA_Mode(Write);
 113   2                      else
 114   2                              DMA_Mode(Read);
 115   2              }
 116   1      }
 117          
C51 COMPILER V7.06   VENDOR                                                                07/02/2003 10:05:12 PAGE 3   

 118          
 119          //***********************************************************************
 120          //*                                                                                                                                                    *
 121          //*     Routine         : DMA Mode                                                         *
 122          //*     Input           : DMA Controller setting                                                    *
 123          //*     Output  : None                                                                        *
 124          //*     Function        : to do GDMA data transfer                                            *
 125          //*                                                                                                                                                            *
 126          //***********************************************************************
 127          
 128          void DMA_Mode(Data)
 129          {
 130   1              UI Datcount;
 131   1              UC i;
 132   1      
 133   1              if(Data)
 134   1              {
 135   2                      //read
 136   2                      do
 137   2                      {
 138   3                              //Check for Out Token ACK interrupt
 139   3                              while(!USB_Int_Flag.BITS.EP2RX);
 140   3                              EA_DISABLE;
 141   3                              USB_Int_Flag.BITS.EP2RX = 0;
 142   3                              D14_Cntrl_Reg.D14_ENDPT_INDEX = 4;
 143   3                              //Read in FIFO data
 144   3                              if (bytecount > PIO_Count)
 145   3                              {
 146   4                                      Datcount = PIO_Count;
 147   4                              }
 148   3                              else
 149   3                              {
 150   4                                      Datcount = bytecount;
 151   4                              }
 152   3              
 153   3                              for(i = 0 ; i < (UC)Datcount ; i++)
 154   3                                      Endpt_FIFO[i] = D14_Cntrl_Reg.D14_DATA_PORT_LSB;
 155   3                      
 156   3                              EA_ENABLE;
 157   3                              bytecount -= Datcount;
 158   3                      }while(bytecount);              
 159   2                      rt2_process();
 160   2              }
 161   1              else
 162   1              {
 163   2                      //write
 164   2                      do
 165   2                      {
 166   3                              //initialize endpoint index
 167   3                              D14_Cntrl_Reg.D14_ENDPT_INDEX = 5;
 168   3                              //Write data to FIFO
 169   3                              if (bytecount>PIO_Count)
 170   3                              {
 171   4                                      D14_Cntrl_Reg.D14_BUFFER_LENGTH_LSB =( unsigned char ) PIO_Count;
 172   4                                      D14_Cntrl_Reg.D14_BUFFER_LENGTH_MSB = ( unsigned char ) (PIO_Count>>8);
 173   4                                      Datcount = PIO_Count;
 174   4                              }
 175   3                              else
 176   3                              {
 177   4                                      D14_Cntrl_Reg.D14_BUFFER_LENGTH_LSB =( unsigned char ) bytecount;
 178   4                                      D14_Cntrl_Reg.D14_BUFFER_LENGTH_MSB = ( unsigned char ) (bytecount>>8);
 179   4                                      Datcount = bytecount;
C51 COMPILER V7.06   VENDOR                                                                07/02/2003 10:05:12 PAGE 4   

 180   4                              }
 181   3      
 182   3                              
 183   3                                      tt2_process();
 184   3                                      for(Count_PIO = 0 ; Count_PIO < Datcount ; Count_PIO++)
 185   3                                              D14_Cntrl_Reg.D14_DATA_PORT_LSB = Endpt_FIFO[Count_PIO];
 186   3                              
 187   3                              //Check for In Token ACK
 188   3                              while(!USB_Int_Flag.BITS.EP2TX)
 189   3                              {    
 190   4                                      if(USB_Int_Flag.BITS.SUSP || Kernel_Flag.BITS.Bus_Reset || USB_Int_Flag.BITS.EP0SETUP)
 191   4                                              break;
 192   4                              }    
 193   3                              EA_DISABLE;
 194   3                              USB_Int_Flag.BITS.EP2TX = 0;
 195   3                              EA_ENABLE;
 196   3                              bytecount -= Datcount; 
 197   3                      }while(bytecount);
 198   2                      //stop DMA controller
 199   2                      DMA_Start = GDMA_Stop;
 200   2                      //transfewr done,reset internal variables
 201   2                      DMA_Int_Flag.BITS.DMA_DONE = 0;
 202   2                      Count_PIO = 0;
 203   2              }
 204   1              Kernel_Flag.BITS.Transfer_Start = 0;  
 205   1      }
 206          


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