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

📄 isr.lst

📁 usb demo controller
💻 LST
字号:
C51 COMPILER V7.00  ISR                                                                    12/15/2004 13:45:56 PAGE 1   


C51 COMPILER V7.00, COMPILATION OF MODULE ISR
OBJECT MODULE PLACED IN ISR.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ISR.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include "declare.h"
   2          #include "isr.h"
   3          
   4          //#pragma disable
   5          void extern0_ISR(void) interrupt 0
   6          {
   7   1        d12comm(0xf4);
   8   1        s = d12read();
   9   1        d12read();
  10   1      
  11   1        if (sb7 == 1) //SuspendChange
  12   1        {
  13   2        }
  14   1        else if (sb6 == 1)    //BusReset
  15   1        {
  16   2          Configured = 0;
  17   2        }
  18   1        else if (sb0 == 1)    //EP0Out
  19   1        {
  20   2          d12comm(0x40);
  21   2          d12read();
  22   2          SetupPacketReceived();
  23   2        }
  24   1        else if (sb1 == 1) //EP0In
  25   1        {
  26   2          d12comm(0x41);
  27   2          d12read();
  28   2      
  29   2          if (SaveLength != 0)
  30   2          {
  31   3            PTR = SavePTR;
  32   3            SendNextPieceOfDescriptor(SaveLength);
  33   3          }
  34   2        }
  35   1        else if (sb2 == 1)    //EP1Out
  36   1        {
  37   2          d12comm(0x42);
  38   2          d12read();
  39   2        }
  40   1        else if (sb3 == 1)    //EP1In
  41   1        {
  42   2          d12comm(0x43);
  43   2          d12read();
  44   2      
  45   2          IsListening = 1;
  46   2      
  47   2          if (mode == D12TEST) Output(Counter);
  48   2        }
  49   1        else if (sb4 == 1)    //EP2Out
  50   1        {
  51   2          d12comm(0x44);
  52   2          d12read();
  53   2        }
  54   1        else if (sb5 == 1)    //EP2In
  55   1        {
C51 COMPILER V7.00  ISR                                                                    12/15/2004 13:45:56 PAGE 2   

  56   2          d12comm(0x45);
  57   2          d12read();
  58   2        }
  59   1        else                  //SOF
  60   1        {
  61   2          if (Configured == 1)
  62   2          {
  63   3      
  64   3              if (--MSecCounter == 0)
  65   3              {
  66   4                MSecCounter = 125;
  67   4                Counter++;
  68   4             
  69   4                ReplyCount = 1;
  70   4                ReplyBuffer[0] = Counter;
  71   4      
  72   4                IsListening = 0;
  73   4      
  74   4                d12comm(0x03);
  75   4      
  76   4                SendReplyBuffer();
  77   4              }
  78   3          
  79   3          }
  80   2        }
  81   1      }
  82          
  83          void timer0_ISR (void) interrupt 1{}    /* not used */
  84          void extern1_ISR(void) interrupt 2{}    /* not used */
  85          void timer1_ISR (void) interrupt 3{}    /* not used */
  86          void serial_ISR (void) interrupt 4{}    /* not used */
  87          
  88          void SetupPacketReceived(void)
  89          {
  90   1        SaveLength = 0;
  91   1      
  92   1        d12comm(0x00);
  93   1      
  94   1       d12comm (0xf0);
  95   1        SetupDataResv = d12read();
  96   1        SetupDataLen = d12read();
  97   1        RequestType = d12read();
  98   1        Request = d12read();
  99   1        wValueLow = d12read();
 100   1        wValueHigh = d12read();
 101   1        wIndexLow = d12read();
 102   1        wIndexHigh = d12read();
 103   1        wLengthLow = d12read();
 104   1        wLengthHigh = d12read();
 105   1      /*
 106   1      #define tttt 0
 107   1      if (++temp == tttt)//////////////////////////////////////////////////////////////////////////////////
 108   1      {
 109   1        Output(SetupDataLen);
 110   1        delay(4000);
 111   1        Output(RequestType);
 112   1        delay(4000);
 113   1        Output(Request);
 114   1        delay(4000);
 115   1        Output(wValueLow);
 116   1        delay(4000);
 117   1        Output(wValueHigh);
C51 COMPILER V7.00  ISR                                                                    12/15/2004 13:45:56 PAGE 3   

 118   1        delay(4000);
 119   1        Output(wIndexLow);
 120   1        delay(4000);
 121   1        Output(wIndexHigh);
 122   1        delay(4000);
 123   1        Output(wLengthLow);
 124   1        delay(4000);
 125   1        Output(wLengthHigh);
 126   1        delay(4000);
 127   1      }*/
 128   1      
 129   1        d12comm(0xf1);
 130   1        d12comm(0xf2);
 131   1        d12comm(0x01);
 132   1        d12comm(0xf1);
 133   1      
 134   1        if (SetupDataLen != 0)
 135   1        {
 136   2          ServiceSetupPacket();
 137   2          if (STALL == 1)
 138   2          {
 139   3            d12comm(0x40);    //SendStall
 140   3            d12write(0x01);
 141   3      
 142   3            d12comm(0x41);
 143   3            d12write(0x01);
 144   3          }
 145   2          else
 146   2          {
 147   3            if (SetAddr == 1)
 148   3            {
 149   4              SetD12Address();
 150   4            }
 151   3            else if (SendData == 0)
 152   3            {
 153   4              HandShake();
 154   4            }
 155   3            else if (IsDescriptor == 0)
 156   3            {
 157   4              SendReplyBuffer();
 158   4            }
 159   3            else
 160   3            {
 161   4              SendDescriptor();
 162   4            }
 163   3          }
 164   2        }
 165   1      }
 166          
 167          void SendDescriptor(void)
 168          {
 169   1        if (wLengthHigh == 0)
 170   1        {
 171   2          if (ReturnLength < wLengthLow)
 172   2          {
 173   3            SendNextPieceOfDescriptor(ReturnLength);
 174   3          }
 175   2          else
 176   2          {
 177   3            SendNextPieceOfDescriptor(wLengthLow);
 178   3          }
 179   2        }
C51 COMPILER V7.00  ISR                                                                    12/15/2004 13:45:56 PAGE 4   

 180   1        else
 181   1        {
 182   2          SendNextPieceOfDescriptor(ReturnLength);
 183   2        }
 184   1      }
 185          
 186          void SendNextPieceOfDescriptor(unsigned char Len)
 187          {
 188   1        if (Len > EP0Size)
 189   1        {
 190   2          SaveLength = Len - EP0Size;
 191   2          SavePTR = PTR + EP0Size;
 192   2          SendPacketToD12(EP0Size);
 193   2        }
 194   1        else
 195   1        {
 196   2          SaveLength = 0;
 197   2          SendPacketToD12(Len);
 198   2        }
 199   1      }
 200          
 201          void SendPacketToD12(unsigned char Len)
 202          {
 203   1      /*
 204   1      if(temp++==2)
 205   1      {
 206   1        Output(Len);
 207   1        delay(5000);
 208   1      }
 209   1      *///to send but not sending
 210   1        ReplyCount = Len;
 211   1        if (Len != 0)
 212   1        {
 213   2          for (i=0;i<Len;i++)
 214   2          {
 215   3            ReplyBuffer[i] = *(PTR++);//CBYTE[PTR++];
 216   3          }
 217   2        }
 218   1        SendReplyBuffer();
 219   1      }
 220          
 221          void SendReplyBuffer(void)
 222          {
 223   1        d12comm(0xf0);
 224   1        d12write(0x00);
 225   1        d12write(ReplyCount);
 226   1      
 227   1        if (ReplyCount != 0)
 228   1        {
 229   2          for (i=0;i<ReplyCount;i++)
 230   2          {
 231   3            d12write(ReplyBuffer[i]);
 232   3            ReplyBuffer[i] = 0;///////////////////////////////////////////////////////////
 233   3          }
 234   2        }
 235   1      
 236   1        d12comm(0xfa);
 237   1      /*
 238   1      if (temp == tttt)///////////////////////////////////////////////////////////////////
 239   1      {
 240   1        Output(ReplyCount);
 241   1        delay(4000);
C51 COMPILER V7.00  ISR                                                                    12/15/2004 13:45:56 PAGE 5   

 242   1        for (i=0;i<ReplyCount;i++)
 243   1        {
 244   1          Output(ReplyBuffer[i]);
 245   1          delay(4000);
 246   1        }
 247   1      }
 248   1      */
 249   1      }
 250          
 251          void SetD12Address(void)
 252          {
 253   1        d12comm(0xd0);
 254   1        s = wValueLow;
 255   1        sb7 = 1;
 256   1        d12write(s);
 257   1      
 258   1        d12comm(0xd8);
 259   1        d12write(0x01);
 260   1      
 261   1        if (mode == D12TEST)
 262   1        {
 263   2          d12comm(0xfb);
 264   2          d12write(0x20);
 265   2        }
 266   1      
 267   1        HandShake();
 268   1      }
 269          
 270          void HandShake(void)
 271          {
 272   1        SendPacketToD12(0);
 273   1      }
 274          
 275          void Wait4D(void)
 276          {
 277   1        do {
 278   2          d12comm(0xf4);
 279   2          s = d12read();
 280   2          d12read();
 281   2        } while (s^0 == 0);
 282   1      
 283   1        d12comm(0x00);
 284   1      
 285   1        d12comm(0xf0);
 286   1        d12read();
 287   1        d12read();
 288   1      
 289   1        
 290   1          i = d12read();
 291   1          if (i == 0xff)
 292   1          {
 293   2            Counter = Input();
 294   2          }
 295   1          else
 296   1          {
 297   2            Counter = i;
 298   2          }
 299   1         
 300   1        
 301   1      
 302   1        d12comm(0xf1);
 303   1        d12comm(0xf2);
C51 COMPILER V7.00  ISR                                                                    12/15/2004 13:45:56 PAGE 6   

 304   1        d12comm(0x01);
 305   1        d12comm(0xf1);
 306   1      }


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