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

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

?? isr.lst

?? 飛利浦 pusbd12 usb源代碼
?? LST
字號:
C51 COMPILER V7.02b   ISR                                                                  11/08/2003 21:22:47 PAGE 1   


C51 COMPILER V7.02b, COMPILATION OF MODULE ISR
OBJECT MODULE PLACED IN Isr.OBJ
COMPILER INVOKED BY: D:\PROGRAM FILES\KEIL\C51\BIN\C51.EXE Isr.c OPTIMIZE(2,SPEED) DEBUG OBJECTEXTEND

stmt level    source

   1          #include <stdio.h>
   2          #include <string.h>
   3          
   4          #include <reg51.h>                /* special function register declarations   */
   5          
   6          #include "epphal.h"
   7          #include "d12ci.h"
   8          #include "mainloop.h"
   9          #include "usb100.h"
  10          
  11          extern void bus_reset(void);
  12          
  13          extern void ep0_txdone(void);
  14          extern void ep0_rxdone(void);
  15          
  16          extern void ep1_txdone(void);
  17          extern void ep1_rxdone(void);
  18          
  19          extern void main_txdone(void);
  20          extern void main_rxdone(void);
  21          
  22          extern void dma_eot(void);
  23          
  24          /*
  25          //*************************************************************************
  26          //  Public static data
  27          //*************************************************************************
  28          */
  29          
  30          EPPFLAGS bEPPflags;
  31          
  32          /* Control endpoint TX/RX buffers */
  33          extern CONTROL_XFER ControlData;
  34          
  35          /* ISR static vars */
  36          unsigned char idata GenEpBuf[EP1_PACKET_SIZE];
  37          unsigned char idata EpBuf[EP2_PACKET_SIZE];
  38          IO_REQUEST idata ioRequest;
  39          unsigned char ioSize, ioCount;
  40          unsigned long ClockTicks = 0;
  41          
  42          extern BOOL bNoRAM;
  43          
  44          //定時器0中斷處理
  45          timer_isr() interrupt 1
  46          {
  47   1              DISABLE;
  48   1              ClockTicks++;
  49   1              bEPPflags.bits.timer = 1;
  50   1              ENABLE;
  51   1      }
  52          
  53          //USB中斷處理
  54          usb_isr() interrupt 0
  55          {
C51 COMPILER V7.02b   ISR                                                                  11/08/2003 21:22:47 PAGE 2   

  56   1              DISABLE;
  57   1              fn_usb_isr();
  58   1              ENABLE;
  59   1      }
  60          
  61          //USB中斷服務子程序
  62          void fn_usb_isr()
  63          {
  64   1              unsigned int i_st;
  65   1      
  66   1              bEPPflags.bits.in_isr = 1;
  67   1      
  68   1              i_st = D12_ReadInterruptRegister();//讀取中斷寄存器
  69   1      
  70   1              if(i_st != 0) {
  71   2                      if(i_st & D12_INT_BUSRESET) {
  72   3                              bus_reset();//USB總線服務
  73   3                              bEPPflags.bits.bus_reset = 1;
  74   3                      }
  75   2      
  76   2                      if(i_st & D12_INT_EOT)
  77   2                              dma_eot();//DMA傳輸結束
  78   2      
  79   2                      if(i_st & D12_INT_SUSPENDCHANGE)
  80   2                              bEPPflags.bits.suspend = 1;//掛起改變
  81   2      
  82   2                      if(i_st & D12_INT_ENDP0IN)
  83   2                              ep0_txdone();//端點0IN中斷
  84   2                      if(i_st & D12_INT_ENDP0OUT)
  85   2                              ep0_rxdone();//端點0OUT中斷
  86   2                      if(i_st & D12_INT_ENDP1IN)
  87   2                              ep1_txdone();//端點1IN中斷
  88   2                      if(i_st & D12_INT_ENDP1OUT)
  89   2                              ep1_rxdone();//端點1OUT中斷
  90   2                      if(i_st & D12_INT_ENDP2IN)
  91   2                              main_txdone();//端點2IN中斷
  92   2                      if(i_st & D12_INT_ENDP2OUT)
  93   2                              main_rxdone();//端點2OUT中斷
  94   2              }
  95   1      
  96   1              bEPPflags.bits.in_isr = 0;
  97   1      }
  98          
  99          //總線復位處理子程序
 100          void bus_reset(void)
 101          {
 102   1      }
 103          
 104          //端點0OUT中斷
 105          void ep0_rxdone(void)
 106          {
 107   1              unsigned char ep_last, i;
 108   1      
 109   1              ep_last = D12_ReadLastTransactionStatus(0); //清中斷標志
 110   1      
 111   1              if (ep_last & D12_SETUPPACKET) {
 112   2                      //接收到SETUP包
 113   2                      ControlData.wLength = 0;
 114   2                      ControlData.wCount = 0;
 115   2      
 116   2                      if( D12_ReadEndpoint(0, sizeof(ControlData.DeviceRequest),
 117   2                              (unsigned char *)(&(ControlData.DeviceRequest))) != sizeof(DEVICE_REQUEST) ) {
C51 COMPILER V7.02b   ISR                                                                  11/08/2003 21:22:47 PAGE 3   

 118   3                              //SETUP包出錯,返回
 119   3                              D12_SetEndpointStatus(0, 1);
 120   3                              D12_SetEndpointStatus(1, 1);
 121   3                              bEPPflags.bits.control_state = USB_IDLE;
 122   3                              return;
 123   3                      }
 124   2      
 125   2                      ControlData.DeviceRequest.wValue = SWAP(ControlData.DeviceRequest.wValue);
 126   2                      ControlData.DeviceRequest.wIndex = SWAP(ControlData.DeviceRequest.wIndex);
 127   2                      ControlData.DeviceRequest.wLength = SWAP(ControlData.DeviceRequest.wLength);
 128   2      
 129   2                      //對控制端點的輸入/輸出進行應答
 130   2                      D12_AcknowledgeEndpoint(0);
 131   2                      D12_AcknowledgeEndpoint(1);
 132   2      
 133   2                      ControlData.wLength = ControlData.DeviceRequest.wLength;
 134   2                      ControlData.wCount = 0;
 135   2      
 136   2                      if (ControlData.DeviceRequest.bmRequestType & (unsigned char)USB_ENDPOINT_DIRECTION_MASK) {
 137   3                              //從主機傳輸數據
 138   3                              bEPPflags.bits.setup_packet = 1;
 139   3                              bEPPflags.bits.control_state = USB_TRANSMIT;            /* get command */
 140   3                      }
 141   2                      else {
 142   3                              if (ControlData.DeviceRequest.wLength == 0) {
 143   4                                      bEPPflags.bits.setup_packet = 1;
 144   4                                      bEPPflags.bits.control_state = USB_IDLE;                /* set command */
 145   4                              }
 146   3                              else {
 147   4                                      if(ControlData.DeviceRequest.wLength > MAX_CONTROLDATA_SIZE) {
 148   5                                              //接收數據長度為0
 149   5                                              bEPPflags.bits.control_state = USB_IDLE;
 150   5                                              D12_SetEndpointStatus(0, 1);
 151   5                                              D12_SetEndpointStatus(1, 1);
 152   5                                      }
 153   4                                      else {
 154   5                                              bEPPflags.bits.control_state = USB_RECEIVE;     //設置接收狀態
 155   5                                      }
 156   4                              } // set command with data
 157   3                      } // else set command
 158   2              } // if setup packet
 159   1      
 160   1              else if (bEPPflags.bits.control_state == USB_RECEIVE) {
 161   2                      //接收數據
 162   2                      i =     D12_ReadEndpoint(0, EP0_PACKET_SIZE,
 163   2                              ControlData.dataBuffer + ControlData.wCount);
 164   2                      ControlData.wCount += i;
 165   2                      if( i != EP0_PACKET_SIZE || ControlData.wCount >= ControlData.wLength) {
 166   3                              //數據接收完畢
 167   3                              bEPPflags.bits.setup_packet = 1;
 168   3                              bEPPflags.bits.control_state = USB_IDLE;
 169   3                      }
 170   2              }
 171   1              else {
 172   2                      bEPPflags.bits.control_state = USB_IDLE;//進入等待狀態
 173   2              }
 174   1      }
 175          
 176          //端點0IN處理
 177          void ep0_txdone(void)
 178          {
 179   1              short i = ControlData.wLength - ControlData.wCount;
C51 COMPILER V7.02b   ISR                                                                  11/08/2003 21:22:47 PAGE 4   

 180   1              D12_ReadLastTransactionStatus(1); //清中斷標志位
 181   1              if (bEPPflags.bits.control_state != USB_TRANSMIT) 
 182   1                      return;//非發送狀態,返回
 183   1      
 184   1              if( i >= EP0_PACKET_SIZE) {
 185   2                      //剩下數據大于16字節,發送16字節
 186   2                      D12_WriteEndpoint(1, EP0_PACKET_SIZE, ControlData.pData + ControlData.wCount);
 187   2                      ControlData.wCount += EP0_PACKET_SIZE;
 188   2                      bEPPflags.bits.control_state = USB_TRANSMIT;
 189   2              }
 190   1              else if( i != 0) {
 191   2                      //發送剩下數據
 192   2                      D12_WriteEndpoint(1, i, ControlData.pData + ControlData.wCount);
 193   2                      ControlData.wCount += i;
 194   2                      bEPPflags.bits.control_state = USB_IDLE;
 195   2              }
 196   1              else if (i == 0){
 197   2                      D12_WriteEndpoint(1, 0, 0); //發送完畢,發送0字節
 198   2                      bEPPflags.bits.control_state = USB_IDLE;
 199   2              }
 200   1      }
 201          
 202          //DMA結束處理
 203          void dma_eot(void)
 204          {
 205   1      }
 206          
 207          //端點1OUT處理
 208          void ep1_txdone(void)
 209          {
 210   1              D12_ReadLastTransactionStatus(3); //清中斷標志位
 211   1      }
 212          
 213          //端點1IN處理
 214          void ep1_rxdone(void)
 215          {
 216   1              unsigned char len;
 217   1      
 218   1              D12_ReadLastTransactionStatus(2); //清中斷標志位
 219   1              len = D12_ReadEndpoint(2, sizeof(GenEpBuf), GenEpBuf);//讀取數據
 220   1              if(len != 0)
 221   1                      bEPPflags.bits.ep1_rxdone = 1;//標志接收到數據
 222   1      }
 223          
 224          //主端點OUT控制
 225          void main_txdone(void)
 226          {
 227   1      //      unsigned char len,epstatus;
 228   1      
 229   1              D12_ReadLastTransactionStatus(5); //清中斷標志位
 230   1      }
 231          
 232          //主端點IN控制
 233          void main_rxdone(void)
 234          {
 235   1              unsigned char len,epstatus;
 236   1      
 237   1              D12_ReadLastTransactionStatus(4); //清中斷標志位
 238   1      
 239   1              //接收數據
 240   1              len = D12_ReadEndpoint(4, 64, EpBuf);
 241   1              epstatus=D12_ReadEndpointStatus(4);
C51 COMPILER V7.02b   ISR                                                                  11/08/2003 21:22:47 PAGE 5   

 242   1              epstatus &= 0x60;
 243   1              if (epstatus == 0x60)
 244   1                      len = D12_ReadEndpoint(4, 64, EpBuf);//讀取雙緩沖區數據
 245   1      }
 246          
 247          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    876    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      8       9
   IDATA SIZE       =     86    ----
   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一区二区三区免费野_久草精品视频
五月天欧美精品| 欧美日韩一二三区| 99re这里只有精品6| 欧美精品一区二区三区久久久 | 最新中文字幕一区二区三区| 久久精品久久精品| 制服丝袜亚洲网站| 日本vs亚洲vs韩国一区三区 | 免费欧美日韩国产三级电影| 欧美手机在线视频| 国产精品免费观看视频| www.在线成人| 国产精品麻豆视频| 91亚洲精品久久久蜜桃网站| 亚洲日本青草视频在线怡红院| 99久久99久久免费精品蜜臀| 国产精品国产精品国产专区不蜜 | 99久久亚洲一区二区三区青草| 国产人妖乱国产精品人妖| 国产不卡在线一区| 亚洲三级电影全部在线观看高清| gogogo免费视频观看亚洲一| 日韩美女精品在线| 99精品一区二区三区| 亚洲精品久久久蜜桃| 日本高清不卡在线观看| 婷婷成人激情在线网| 欧美一区二区成人| 国产传媒欧美日韩成人| 国产精品色噜噜| 在线一区二区三区| 奇米精品一区二区三区在线观看 | 黑人巨大精品欧美一区| 中文字幕精品三区| 欧美午夜在线观看| 狠狠久久亚洲欧美| 亚洲乱码国产乱码精品精小说| 欧美影院一区二区三区| 久久av资源站| 亚洲色图另类专区| 欧美videossexotv100| 精品一区二区三区免费播放| 久久精品一区蜜桃臀影院| 成人免费视频caoporn| 亚洲影视在线播放| 欧美精品一区二| 一本到不卡免费一区二区| 裸体健美xxxx欧美裸体表演| 国产精品网站在线| 在线不卡a资源高清| 国产成人精品三级| 婷婷综合久久一区二区三区| 国产欧美一区视频| 精品视频资源站| 丁香激情综合国产| 奇米在线7777在线精品| 久久麻豆一区二区| 成人黄色777网| 免费观看久久久4p| 亚洲蜜臀av乱码久久精品| 欧美精品一区二区久久婷婷| 欧日韩精品视频| 成人av资源在线观看| 麻豆精品一区二区| 午夜免费欧美电影| 亚洲精品日产精品乱码不卡| 久久精品亚洲国产奇米99| 欧美精品v日韩精品v韩国精品v| 成年人午夜久久久| 国产最新精品免费| 男男视频亚洲欧美| 亚洲视频在线一区观看| 欧美精品一区二| 在线观看视频一区二区欧美日韩| 国产成人亚洲综合a∨婷婷 | 久久久国际精品| 欧美一区二区三级| 欧美色综合网站| gogo大胆日本视频一区| 粉嫩欧美一区二区三区高清影视| 肉色丝袜一区二区| 亚洲国产精品久久久久秋霞影院| 国产精品久久久久久久久久免费看| 欧美精品一区男女天堂| 欧美成人a在线| 欧美mv日韩mv国产网站| 欧美一区二区三级| 欧美另类videos死尸| 不卡大黄网站免费看| 懂色中文一区二区在线播放| 国产成人在线免费观看| 国产精品一级在线| 国产另类ts人妖一区二区| 久久爱www久久做| 久久99国产精品久久99| 免费人成黄页网站在线一区二区| 蜜桃视频一区二区三区| 久久99国产精品免费| 亚洲一区在线看| 日韩理论片一区二区| 一区二区三区四区乱视频| 亚洲欧洲中文日韩久久av乱码| 一区二区三区在线不卡| 一个色在线综合| 日韩成人一级片| 免费看精品久久片| 韩国女主播一区| 福利一区福利二区| 91视频你懂的| 在线一区二区三区四区五区| 欧美日韩国产另类不卡| 色妞www精品视频| 色噜噜偷拍精品综合在线| 欧洲一区二区av| 日韩精品一区二区三区在线观看 | 国产欧美综合色| 中文字幕亚洲电影| 亚洲一区二区三区精品在线| 美女视频黄频大全不卡视频在线播放| 国产揄拍国内精品对白| 成人国产视频在线观看| 欧美日韩一区二区在线观看视频| 精品精品欲导航| 欧美在线短视频| 成人app软件下载大全免费| 精品视频123区在线观看| 久久综合av免费| 亚洲三级小视频| 日韩精品一级二级| 粉嫩在线一区二区三区视频| 欧美日韩中文字幕精品| 久久久久久久综合色一本| 成人欧美一区二区三区在线播放| 亚洲一区二区三区四区中文字幕| 日本v片在线高清不卡在线观看| 成人综合婷婷国产精品久久 | 国产精品网曝门| 亚洲成人av一区二区三区| 国产一区二区在线观看视频| 国产精品91xxx| 狠狠色综合日日| 欧美伊人精品成人久久综合97| 精品国产露脸精彩对白| 亚洲一区在线播放| 国产激情一区二区三区四区| 国产综合久久久久久鬼色| 欧美午夜影院一区| 中文字幕av一区二区三区免费看 | 91精品免费观看| 国产精品每日更新| 免费国产亚洲视频| 91福利精品视频| 日韩美女主播在线视频一区二区三区| 亚洲免费观看高清在线观看| 国产成人在线看| 日韩精品一区二区在线观看| 中文字幕欧美一区| 美女久久久精品| 欧美日本一区二区| 国产精品久久国产精麻豆99网站| 久久99精品国产麻豆婷婷洗澡| 欧美色偷偷大香| 一区二区三区国产| 成人性生交大合| 久久久国产综合精品女国产盗摄| 日本视频免费一区| 欧美亚洲自拍偷拍| 亚洲欧美另类图片小说| 成人听书哪个软件好| 欧美性生活影院| 亚洲精选视频免费看| 色综合久久综合网97色综合| 国产精品日日摸夜夜摸av| 国产成人精品网址| 国产人伦精品一区二区| 国产高清无密码一区二区三区| 久久在线观看免费| 久久精品99国产精品| 91精品国产综合久久香蕉的特点| 亚洲一区电影777| 欧美日韩在线播放一区| 婷婷综合另类小说色区| 91精品国产综合久久久久 | 国产偷国产偷精品高清尤物 | 精品一区二区三区免费| 日韩精品一区二| 精品中文字幕一区二区| 91精品一区二区三区在线观看| 久久爱另类一区二区小说| 26uuu另类欧美亚洲曰本| 韩国三级中文字幕hd久久精品| 精品免费国产二区三区| 成人国产精品免费观看视频| 中文字幕日韩精品一区 | 国产精品欧美一区二区三区| 色偷偷久久人人79超碰人人澡| 一区二区日韩av| 欧美老女人在线| 国产乱人伦偷精品视频免下载| 亚洲欧美日韩国产成人精品影院 |