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

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

?? isr.lst

?? 基于PDIUSBD12芯片的USB開發板固件程序
?? LST
字號:
C51 COMPILER V7.02a   ISR                                                                  09/20/2005 15:10:00 PAGE 1   


C51 COMPILER V7.02a, COMPILATION OF MODULE ISR
OBJECT MODULE PLACED IN ISR.OBJ
COMPILER INVOKED BY: D:\Program Files\Keilc7\C51\BIN\C51.EXE ISR.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /*
   2             //*************************************************************************
   3             //
   4             //                  P H I L I P S   P R O P R I E T A R Y
   5             //
   6             //           COPYRIGHT (c)   1997 BY PHILIPS SINGAPORE.
   7             //                     --  ALL RIGHTS RESERVED  --
   8             //
   9             // File Name:        ISR.C
  10             // Author:           Wenkai Du
  11             // Created:          19 Dec 97
  12             // Modified:
  13             // Revision:         3.0
  14             //
  15             //*************************************************************************
  16             //
  17             // 98/11/25          Added I/O mode Main endpoints access. (WK)
  18             //*************************************************************************
  19             */
  20          #include <stdio.h>
  21          #include <string.h>
  22          
  23          #include <reg51.h>                /* special function register declarations   */
  24          
  25          #include "epphal.h"
  26          #include "d12ci.h"
  27          #include "mainloop.h"
  28          #include "usb100.h"
  29          
  30          extern void bus_reset(void);
  31          
  32          extern void ep0_txdone(void);
  33          extern void ep0_rxdone(void);
  34          
  35          extern void ep1_txdone(void);
  36          extern void ep1_rxdone(void);
  37          extern void main_txdone(void);
  38          extern void main_rxdone(void);
  39          
  40          //extern void main_txdone(void);
  41          //extern void main_rxdone(void);
  42          
  43          //extern void dma_eot(void);
  44          
  45          /*
  46          //*************************************************************************
  47          //  Public static data
  48          //*************************************************************************
  49          */
  50          
  51          EPPFLAGS bEPPflags;
  52          
  53          /* Control endpoint TX/RX buffers */
  54          extern CONTROL_XFER ControlData;
  55          
C51 COMPILER V7.02a   ISR                                                                  09/20/2005 15:10:00 PAGE 2   

  56          /* ISR static vars */
  57          unsigned char idata GenEpBuf[EP1_PACKET_SIZE]={0,0,0,0};
  58          unsigned char idata EpBuf[EP2_PACKET_SIZE];
  59          //IO_REQUEST idata ioRequest;
  60          
  61          
  62          usb_isr() interrupt 2
  63          {
  64   1              DISABLE;
  65   1              fn_usb_isr();
  66   1              ENABLE;
  67   1      }
  68          
  69          void fn_usb_isr()
  70          {
  71   1              unsigned int i_st;
  72   1      
  73   1              bEPPflags.bits.in_isr = 1;
  74   1      
  75   1              i_st = D12_ReadInterruptRegister();
  76   1      
  77   1              if(i_st != 0) {
  78   2      /*              if(i_st & D12_INT_BUSRESET) 
  79   2                      {
  80   2                              bEPPflags.bits.bus_reset = 1;
  81   2                      }
  82   2                      if(i_st & D12_INT_SUSPENDCHANGE)
  83   2                              bEPPflags.bits.suspend = 1;*/
  84   2      
  85   2                      if(i_st & D12_INT_ENDP0IN)
  86   2                              ep0_txdone();
  87   2                      if(i_st & D12_INT_ENDP0OUT)
  88   2                              ep0_rxdone();
  89   2                      if(i_st & D12_INT_ENDP1IN)
  90   2                              ep1_txdone();
  91   2                      if(i_st & D12_INT_ENDP1OUT)
  92   2                              ep1_rxdone();
  93   2                      if(i_st & D12_INT_ENDP2IN)
  94   2                              main_txdone();
  95   2                      if(i_st & D12_INT_ENDP2OUT)
  96   2                              main_rxdone();
  97   2              }
  98   1      
  99   1              bEPPflags.bits.in_isr = 0;
 100   1      }
 101          
 102          void ep0_rxdone(void)
 103          {
 104   1              unsigned char ep_last, i;
 105   1      
 106   1              ep_last = D12_ReadLastTransactionStatus(0); // Clear interrupt flag
 107   1      
 108   1              if (ep_last & D12_SETUPPACKET) {
 109   2      
 110   2                      ControlData.wLength = 0;
 111   2                      ControlData.wCount = 0;
 112   2      
 113   2                      if( D12_ReadEndpoint(0, sizeof(ControlData.DeviceRequest),
 114   2                              (unsigned char *)(&(ControlData.DeviceRequest))) != sizeof(DEVICE_REQUEST) ) {
 115   3      
 116   3                              D12_SetEndpointStatusIsr(0, 1);
 117   3                              D12_SetEndpointStatusIsr(1, 1);
C51 COMPILER V7.02a   ISR                                                                  09/20/2005 15:10:00 PAGE 3   

 118   3                              bEPPflags.bits.control_state = USB_IDLE;
 119   3                              
 120   3                              return;
 121   3                      }
 122   2      
 123   2                      ControlData.DeviceRequest.wValue = SWAP(ControlData.DeviceRequest.wValue);
 124   2                      ControlData.DeviceRequest.wIndex = SWAP(ControlData.DeviceRequest.wIndex);
 125   2                      ControlData.DeviceRequest.wLength = SWAP(ControlData.DeviceRequest.wLength);
 126   2      
 127   2                      // Acknowledge setup here to unlock in/out endp
 128   2                      D12_AcknowledgeEndpoint(0);
 129   2                      D12_AcknowledgeEndpoint(1);
 130   2      
 131   2                      ControlData.wLength = ControlData.DeviceRequest.wLength;
 132   2                      ControlData.wCount = 0;
 133   2      
 134   2                      if (ControlData.DeviceRequest.bmRequestType & (unsigned char)USB_ENDPOINT_DIRECTION_MASK) {
 135   3                              bEPPflags.bits.setup_packet = 1;
 136   3                              bEPPflags.bits.control_state = USB_IDLE;                /* get command */
 137   3                      }
 138   2                      else {
 139   3                              if (ControlData.DeviceRequest.wLength == 0) {
 140   4                                      bEPPflags.bits.setup_packet = 1;
 141   4                                      bEPPflags.bits.control_state = USB_IDLE;                /* set command */
 142   4                              }
 143   3                              else {
 144   4                                      if(ControlData.DeviceRequest.wLength > MAX_CONTROLDATA_SIZE) {
 145   5                                              bEPPflags.bits.control_state = USB_IDLE;
 146   5                                              D12_SetEndpointStatusIsr(0, 1);
 147   5                                              D12_SetEndpointStatusIsr(1, 1);
 148   5                                      }
 149   4                                      else {
 150   5                                              bEPPflags.bits.control_state = USB_RECEIVE;     /* set command with OUT token */
 151   5                                      }
 152   4                              } // set command with data
 153   3                      } // else set command
 154   2              } // if setup packet
 155   1      
 156   1              else if (bEPPflags.bits.control_state == USB_RECEIVE) {
 157   2                      i =     D12_ReadEndpoint(0, EP0_PACKET_SIZE,
 158   2                              ControlData.dataBuffer + ControlData.wCount);
 159   2      
 160   2                      ControlData.wCount += i;
 161   2                      if( i != EP0_PACKET_SIZE || ControlData.wCount >= ControlData.wLength) {
 162   3                              bEPPflags.bits.setup_packet = 1;
 163   3                              bEPPflags.bits.control_state = USB_IDLE;
 164   3                      }
 165   2              }
 166   1      
 167   1              else {
 168   2                      bEPPflags.bits.control_state = USB_IDLE;
 169   2              }
 170   1      }
 171          
 172          void ep0_txdone(void)
 173          {
 174   1              short i = ControlData.wLength - ControlData.wCount;
 175   1      
 176   1              D12_ReadLastTransactionStatus(1); // Clear interrupt flag
 177   1      
 178   1              if (bEPPflags.bits.control_state != USB_TRANSMIT) 
 179   1                      return;
C51 COMPILER V7.02a   ISR                                                                  09/20/2005 15:10:00 PAGE 4   

 180   1      
 181   1              if( i >= EP0_PACKET_SIZE) {
 182   2                      D12_WriteEndpointIsr(1, EP0_PACKET_SIZE, ControlData.pData + ControlData.wCount);
 183   2                      ControlData.wCount += EP0_PACKET_SIZE;
 184   2      
 185   2                      bEPPflags.bits.control_state = USB_TRANSMIT;
 186   2              }
 187   1              else if( i != 0) {
 188   2                      D12_WriteEndpointIsr(1, i, ControlData.pData + ControlData.wCount);
 189   2                      ControlData.wCount += i;
 190   2      
 191   2                      bEPPflags.bits.control_state = USB_IDLE;
 192   2              }
 193   1              else if (i == 0){
 194   2                      D12_WriteEndpointIsr(1, 0, 0); // Send zero packet at the end ???
 195   2      
 196   2                      bEPPflags.bits.control_state = USB_IDLE;
 197   2              }
 198   1      }
 199          
 200          
 201          void ep1_txdone(void)
 202          {
 203   1              D12_ReadLastTransactionStatus(3); /* Clear interrupt flag */
 204   1      }
 205          
 206          void ep1_rxdone(void)
 207          {
 208   1              unsigned char len;
 209   1      
 210   1              D12_ReadLastTransactionStatus(2); /* Clear interrupt flag */
 211   1      
 212   1              len = D12_ReadEndpoint(2, sizeof(GenEpBuf), GenEpBuf);
 213   1      
 214   1              if(len != 0)
 215   1              {
 216   2                      bEPPflags.bits.ep1_rxdone = 1;
 217   2      
 218   2              }
 219   1      }
 220          
 221          void main_txdone(void)
 222          {
 223   1              D12_ReadLastTransactionStatus(5);
 224   1      }
 225          
 226          void main_rxdone(void)
 227          {
 228   1              unsigned char len;
 229   1              D12_ReadLastTransactionStatus(4);
 230   1              len = D12_ReadEndpoint(4, sizeof(EpBuf),EpBuf);
 231   1      
 232   1              if(len != 0)
 233   1              {
 234   2                      bEPPflags.bits.main_rxdone = 1;
 235   2              }
 236   1      }
 237          
 238          


MODULE INFORMATION:   STATIC OVERLAYABLE
C51 COMPILER V7.02a   ISR                                                                  09/20/2005 15:10:00 PAGE 5   

   CODE SIZE        =    583    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3       4
   IDATA SIZE       =     68    ----
   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一区二区三区免费野_久草精品视频
国产一区二区三区四区在线观看| 一区二区免费看| 欧美三级乱人伦电影| 福利一区在线观看| 国内精品国产成人| 国产精品一区二区在线观看不卡| 美日韩黄色大片| 国产一区二区调教| 国产大陆a不卡| 成人一区二区三区视频在线观看 | 日本va欧美va欧美va精品| 一级精品视频在线观看宜春院| 综合色中文字幕| 亚洲欧美另类图片小说| 一区二区免费看| 免费精品视频在线| 狠狠色狠狠色合久久伊人| 色综合欧美在线视频区| 99re热这里只有精品免费视频 | 色综合久久久久综合99| 在线精品视频免费观看| 成人免费视频播放| 99久久婷婷国产综合精品| av成人老司机| 欧美日韩视频专区在线播放| 日韩免费视频一区二区| 国产香蕉久久精品综合网| 久久精品日韩一区二区三区| 亚洲人成在线观看一区二区| 日韩电影网1区2区| 国产精品18久久久久久久久久久久 | 91亚洲精华国产精华精华液| 欧美中文字幕亚洲一区二区va在线| 欧美日韩成人综合天天影院| 久久综合五月天婷婷伊人| 日韩成人免费电影| 国产精品一区在线| 色av成人天堂桃色av| 欧美一区二区三区四区在线观看| 久久久天堂av| 午夜精品久久久久久久| 国产麻豆精品视频| 欧美日韩国产bt| 国产精品午夜在线观看| 蜜臀av一区二区| 色综合天天综合网国产成人综合天| 91精品国产手机| 国产精品电影院| 久久成人羞羞网站| 色婷婷av一区二区三区gif| 日韩欧美三级在线| 亚洲精品国产精华液| 国产成人精品网址| 日韩一区二区三区在线观看| 日韩精品一区国产麻豆| 六月丁香婷婷久久| 一区二区三区在线免费观看| 制服丝袜成人动漫| 韩国精品久久久| 色狠狠综合天天综合综合| 欧美精品一区二区三区四区| 成人免费看的视频| 日韩高清在线不卡| 欧美成人精品1314www| 成人一级黄色片| 亚洲三级免费电影| 中文字幕欧美国产| 精品一区二区免费在线观看| 欧美午夜精品一区二区蜜桃 | 亚洲精选在线视频| 成人午夜视频在线| 久久久久9999亚洲精品| 久久91精品久久久久久秒播| 欧美一区二区三区爱爱| 日韩激情中文字幕| 在线成人免费观看| 美腿丝袜在线亚洲一区| 欧美va亚洲va香蕉在线| 精品中文字幕一区二区| 精品国产伦一区二区三区免费| 免费在线观看视频一区| 欧美一区二区三区精品| 麻豆91精品91久久久的内涵| 日韩精品一区国产麻豆| 久久99热这里只有精品| 久久在线免费观看| 成人免费va视频| 亚洲欧洲国产日韩| 91黄色免费看| 日韩国产精品久久| 精品对白一区国产伦| 国产精品99久久久久| 国产精品久久久久天堂| 91麻豆精品在线观看| 香蕉影视欧美成人| 精品人伦一区二区色婷婷| 国产一区二区在线免费观看| 欧美国产日产图区| 91福利资源站| 免费成人在线网站| 国产亚洲一区字幕| 91色.com| 久久精品国产久精国产爱| 欧美激情一区二区三区在线| 91麻豆精品视频| 免费成人在线网站| 亚洲欧洲精品天堂一级| 久久久www免费人成精品| www.日韩在线| 性做久久久久久久免费看| 久久色.com| 色婷婷av一区二区| 国产一区在线不卡| 一区二区三区影院| 久久日韩精品一区二区五区| 91久久精品一区二区| 国产一区 二区| 五月天久久比比资源色| 中文字幕不卡的av| 这里是久久伊人| 91在线观看高清| 国产原创一区二区三区| 亚洲成人精品一区| 国产精品久久久99| 精品国精品国产| 欧美日韩综合色| www.66久久| 激情小说欧美图片| 亚洲第一福利一区| 国产精品久久二区二区| 欧美电影免费观看完整版| 欧美视频精品在线| 99久久99久久久精品齐齐| 韩国女主播一区| 免费av网站大全久久| 亚洲国产美国国产综合一区二区| 国产欧美日韩三区| 精品sm在线观看| 欧美va亚洲va香蕉在线| 3atv在线一区二区三区| 色婷婷精品大在线视频| 成人免费看的视频| 国产精品亚洲综合一区在线观看| 美腿丝袜亚洲三区| 轻轻草成人在线| 日韩电影一二三区| 五月天一区二区三区| 亚洲一区视频在线| 成人av在线播放网址| 精品一区二区三区视频| 美女视频免费一区| 日本女人一区二区三区| 天天色图综合网| 亚洲第一av色| 亚洲444eee在线观看| 亚洲一区视频在线观看视频| 亚洲国产精品久久一线不卡| 亚洲国产视频直播| 亚洲大片在线观看| 图片区日韩欧美亚洲| 日本免费在线视频不卡一不卡二 | 日韩欧美国产一区二区在线播放| 欧美另类z0zxhd电影| 91精品国产福利| 欧美tickling挠脚心丨vk| 精品盗摄一区二区三区| 久久伊人中文字幕| 国产精品二三区| 亚洲综合免费观看高清完整版| 亚洲国产日韩一区二区| 秋霞av亚洲一区二区三| 国内精品伊人久久久久av影院| 国产精品99久久久久| 99re这里只有精品首页| 欧美在线啊v一区| 91 com成人网| 久久丝袜美腿综合| 亚洲欧美一区二区三区极速播放 | 国产精品自产自拍| av亚洲精华国产精华| 欧美三级视频在线观看| 日韩一区二区在线看片| 久久先锋影音av鲁色资源网| 国产精品网站在线播放| 夜夜嗨av一区二区三区网页| 美女www一区二区| caoporn国产一区二区| 欧美日韩在线播| 久久久精品国产99久久精品芒果| 亚洲精品中文字幕在线观看| 日韩成人精品在线| 成人亚洲精品久久久久软件| 欧美日韩国产一区二区三区地区| ww亚洲ww在线观看国产| 一区二区三区在线免费视频| 久久成人久久鬼色| 欧美专区日韩专区| 欧美高清在线视频| 奇米影视在线99精品| 亚洲专区一二三|