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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? periph.lst

?? ezUSB fireware 的固件
?? LST
?? 第 1 頁 / 共 2 頁
字號(hào):
C51 COMPILER V5.50,  PERIPH                                                                26/07/00  13:53:27  PAGE 1   


DOS C51 COMPILER V5.50, COMPILATION OF MODULE PERIPH
OBJECT MODULE PLACED IN PERIPH.OBJ
COMPILER INVOKED BY: C:\C51\BIN\C51.EXE PERIPH.C DB OE MODDP2

stmt level    source

   1          #pragma NOIV					// Do not generate interrupt vectors
   2          //-----------------------------------------------------------------------------
   3          //	File:		periph.c
   4          //	Contents:	Hooks required to implement USB peripheral function.
   5          //
   6          //	Copyright (c) 1997 AnchorChips, Inc. All rights reserved
   7          //      Adapted for use with HIDs by Jan Axelson (jan@lvr.com)
   8          //-----------------------------------------------------------------------------
   9          #include <ezusb.h>
  10          #include <ezregs.h>
  11          
  12          extern BOOL	GotSUD;			// Received setup data flag
  13          extern BOOL	Sleep;
  14          extern BOOL	Rwuen;
  15          extern BOOL	Selfpwr;
  16          
  17          BYTE	Configuration;		// Current configuration
  18          BYTE	AlternateSetting;	// Alternate settings
  19          BYTE  suspCount;
  20          
  21          // HID code start
  22          BYTE InReportBytes;
  23          void *dscr_ptr;
  24          // HID code end
  25          
  26          //-----------------------------------------------------------------------------
  27          // Task Dispatcher hooks
  28          //	The following hooks are called by the task dispatcher.
  29          //-----------------------------------------------------------------------------
  30          
  31          void TD_Init(void) 				// Called once at startup
  32          {
  33   1      	// Enable endpoints 0-7 IN and OUT
  34   1      	//IN07VAL |= bmEP1 + bmEP2 + bmEP3 + bmEP4 + bmEP5 + bmEP6 + bmEP7;
  35   1      	//OUT07VAL |= bmEP1 + bmEP2 + bmEP3 + bmEP4 + bmEP5 + bmEP6 + bmEP7;
  36   1      
  37   1      //HID code start
  38   1      //Comment out the above two lines and enable only the endpoints used by the HID interface.
  39   1      	IN07VAL |= bmEP1 ;
  40   1      	OUT07VAL |= bmEP2;
  41   1      //HID code end
  42   1      
  43   1         // Enable interrupts for the OUT endpoints
  44   1      //   OUT07IEN |= bmEP1 + bmEP2 + bmEP3 + bmEP4 + bmEP5 + bmEP6 + bmEP7;
  45   1      
  46   1      //HID code start
  47   1      //Comment out the above line and enable interrupts for the endpoints used by the HID interface.
  48   1      // Enable interrrupts for Endpoint 2 OUT
  49   1         OUT07IEN |= bmEP2;
  50   1      // Enable interrupts for Endpoint 1 IN
  51   1         IN07IEN |= bmEP1;
  52   1      
  53   1      //HID code end
  54   1      
  55   1         suspCount = 1;
  56   1      
  57   1         OEA = 0xFF;
  58   1      
  59   1         Rwuen = TRUE;				// Enable remote-wakeup
C51 COMPILER V5.50,  PERIPH                                                                26/07/00  13:53:27  PAGE 2   

  60   1      }
  61          
  62          void TD_Poll(void) 				// Called repeatedly while the device is idle
  63          {
  64   1      }
  65          
  66          BOOL TD_Suspend(void) 			// Called before the device goes into suspend mode
  67          {
  68   1      	return(TRUE);
  69   1      }
  70          
  71          BOOL TD_Resume(void) 			// Called after the device resumes
  72          {
  73   1      	return(TRUE);
  74   1      }
  75          
  76          //-----------------------------------------------------------------------------
  77          // Device Request hooks
  78          //	The following hooks are called by the end point 0 device request parser.
  79          //-----------------------------------------------------------------------------
  80          
  81          BOOL DR_GetDescriptor(void)
  82          {
  83   1      	return(TRUE);
  84   1      }
  85          
  86          BOOL DR_SetConfiguration(void)	// Called when a Set Configuration command is received
  87          {
  88   1      	Configuration = SETUPDAT[2];
  89   1      	return(TRUE);				// Handled by user code
  90   1      }
  91          
  92          BOOL DR_GetConfiguration(void)	// Called when a Get Configuration command is received
  93          {
  94   1      	IN0BUF[0] = Configuration;
  95   1      	EZUSB_SET_EP_BYTES(IN0BUF_ID,1);
  96   1      	return(TRUE);				// Handled by user code
  97   1      }
  98          
  99          BOOL DR_SetInterface(void) 		// Called when a Set Interface command is received
 100          {
 101   1      	AlternateSetting = SETUPDAT[2];
 102   1      	return(TRUE);				// Handled by user code
 103   1      }
 104          
 105          BOOL DR_GetInterface(void) 		// Called when a Set Interface command is received
 106          {
 107   1      	IN0BUF[0] = AlternateSetting;
 108   1      	EZUSB_SET_EP_BYTES(IN0BUF_ID,1);
 109   1      	return(TRUE);				// Handled by user code
 110   1      }
 111          
 112          BOOL DR_GetStatus(void)
 113          {
 114   1      	return(TRUE);
 115   1      }
 116          
 117          BOOL DR_ClearFeature(void)
 118          {
 119   1      	return(TRUE);
 120   1      }
 121          
 122          BOOL DR_SetFeature(void)
 123          {
 124   1      	return(TRUE);
 125   1      }
C51 COMPILER V5.50,  PERIPH                                                                26/07/00  13:53:27  PAGE 3   

 126          
 127          #define EZUSB_UNARM_EP(ep_id)  			EPIO[ep_id].cntrl = bmEPBUSY
 128          
 129          BOOL DR_VendorCmnd(void)
 130          {
 131   1         return(TRUE);
 132   1      }
 133          
 134          //-----------------------------------------------------------------------------
 135          // USB Interrupt Handlers
 136          //	The following functions are called by the USB interrupt jump table.
 137          //-----------------------------------------------------------------------------
 138          
 139          
 140          // Setup Data Available Interrupt Handler
 141          void ISR_Sudav(void) interrupt 0
 142          {
 143   1      	GotSUD = TRUE;				// Set flag
 144   1      
 145   1      
 146   1      	EZUSB_IRQ_CLEAR();
 147   1      	USBIRQ = bmSUDAV;			// Clear SUDAV IRQ
 148   1      }
 149          
 150          // Setup Token Interrupt Handler
 151          void ISR_Sutok(void) interrupt 0
 152          {
 153   1      	EZUSB_IRQ_CLEAR();
 154   1      	USBIRQ = bmSUTOK;			// Clear SUTOK IRQ
 155   1      }
 156          
 157          void ISR_Sof(void) interrupt 0
 158          {
 159   1      	EZUSB_IRQ_CLEAR();
 160   1      	USBIRQ = bmSOF;				// Clear SOF IRQ
 161   1      }
 162          
 163          void ISR_Ures(void) interrupt 0
 164          {
 165   1         // Arm all of the OUT endpoints so they can accept data
 166   1         //   EPIO[OUT1BUF_ID].bytes = 0;
 167   1      
 168   1      // HID code start
 169   1         // Arm the HID endpoints by loading the byte count registers.
 170   1         // Get the number of bytes the In report will send.
 171   1         // This information is in Report Count in the report descriptor,
 172   1         // and in Report_Count_In_Value in the REPORTDSCR structure.
 173   1         // (Assumes that ReportSize (specified in the report descriptor) = 8).
 174   1         // To do: calculate the number of bytes to send for reports with any ReportSize.
 175   1         REPORTDSCR *rdp;
 176   1         dscr_ptr = (REPORTDSCR xdata *) pReportDscr;
 177   1         rdp = dscr_ptr;
 178   1         InReportBytes = rdp -> Report_Count_In_Value;
 179   1         EPIO[IN1BUF_ID].bytes = InReportBytes;
 180   1         // The value for Out reports can be anything.
 181   1         EPIO[OUT2BUF_ID].bytes = 64;
 182   1      // HID code end
 183   1      
 184   1      //   EPIO[OUT3BUF_ID].bytes = 0;
 185   1      //   EPIO[OUT4BUF_ID].bytes = 0;
 186   1      //   EPIO[OUT5BUF_ID].bytes = 0;
 187   1      //   EPIO[OUT6BUF_ID].bytes = 0;
 188   1      //   EPIO[OUT7BUF_ID].bytes = 0;
 189   1      
 190   1      	EZUSB_IRQ_CLEAR();
 191   1      	USBIRQ = bmURES;			// Clear URES IRQ
C51 COMPILER V5.50,  PERIPH                                                                26/07/00  13:53:27  PAGE 4   

 192   1      }
 193          
 194          void ISR_IBN(void) interrupt 0
 195          {
 196   1         // ISR for the IN Bulk NAK (IBN) interrupt.
 197   1      }
 198          
 199          void ISR_Susp(void) interrupt 0
 200          {
 201   1         Sleep = TRUE;
 202   1      
 203   1         EZUSB_IRQ_CLEAR();
 204   1         USBIRQ = bmSUSP;
 205   1      }
 206          
 207          void ISR_Ep0in(void) interrupt 0
 208          {
 209   1      }
 210          
 211          void ISR_Ep0out(void) interrupt 0
 212          {
 213   1      }
 214          
 215          void ISR_Ep1in(void) interrupt 0
 216          {
 217   1      // HID code start
 218   1         // The HID interface uses Endpoint 1 IN.
 219   1         // When an IN transfer completes, rearm Endpoint 1.
 220   1      	IN1BC = InReportBytes;
 221   1         // clear the IRQ
 222   1      	EZUSB_IRQ_CLEAR();
 223   1      	IN07IRQ = bmEP1;
 224   1      //HID code end
 225   1      }
 226          
 227          void ISR_Ep1out(void) interrupt 0
 228          {
 229   1         int i;
 230   1      
 231   1         //
 232   1         // workaround to cover the case where the host thinks the
 233   1         // previous IN completed but EZ-USB didn't receive a valid
 234   1         // handshake (i.e. the ACK was scrambled).  If we have
 235   1         // received new OUT data (which we have, because we're in this
 236   1         // ISR) but the corresponding IN endpoint is still busy, then
 237   1         // we know we missed the handshake.  The solution is to flip
 238   1         // the data toggle and proceed with the new data.
 239   1         //
 240   1         if (EPIO[IN1BUF_ID].cntrl & bmEPBUSY)
 241   1         {
 242   2            TOGCTL = 0x08 | IN1BUF_ID;
 243   2            WRITEDELAY();
 244   2            if (TOGCTL & 0x80)
 245   2               TOGCTL |= 0x20;
 246   2            else
 247   2               TOGCTL |= 0x40;
 248   2         }
 249   1      

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人自拍网| 老司机一区二区| 色系网站成人免费| 亚洲精品视频自拍| 欧美视频三区在线播放| 日本不卡视频一二三区| 精品国产伦一区二区三区观看体验 | 成人a级免费电影| 国产精品久久久一本精品| 99精品视频中文字幕| 亚洲一区二区三区国产| 日韩精品专区在线影院重磅| 国产99久久久国产精品潘金网站| 综合欧美一区二区三区| 欧美精品久久久久久久久老牛影院 | 色噜噜狠狠成人中文综合| 亚洲一区二区精品久久av| 91精品国产综合久久精品麻豆 | 韩日av一区二区| 国产精品国产a级| 欧美欧美欧美欧美首页| 国产美女在线观看一区| 一区二区三区在线影院| 91精品国产91综合久久蜜臀| 国产成人av福利| 亚洲综合一区二区精品导航| 2020国产精品| 欧美艳星brazzers| 国产一区欧美一区| 亚洲一区欧美一区| 国产亚洲综合性久久久影院| 欧美日本在线播放| 成人晚上爱看视频| 麻豆一区二区三| 亚洲免费视频中文字幕| 久久久无码精品亚洲日韩按摩| 在线观看视频91| 国产91丝袜在线观看| 图片区小说区国产精品视频| 国产精品福利av| 日韩一区二区三区视频| 色婷婷亚洲一区二区三区| 国产一区二区三区香蕉| 香蕉成人啪国产精品视频综合网| 国产精品久久免费看| 欧美成人乱码一区二区三区| 欧美性欧美巨大黑白大战| av资源站一区| 国产不卡视频在线播放| 狠狠色丁香久久婷婷综合_中| 亚洲综合激情网| 中文字幕一区二区三区四区| 久久综合色8888| 欧美大片一区二区| 884aa四虎影成人精品一区| 91久久免费观看| 成人av在线播放网址| 国内一区二区在线| 久久成人18免费观看| 日本美女视频一区二区| 亚洲大片在线观看| 亚洲国产精品久久人人爱| 亚洲精品视频观看| 亚洲免费观看高清完整版在线观看 | 午夜久久久影院| 伊人一区二区三区| 亚洲色图欧美在线| 亚洲欧美日韩国产一区二区三区| 国产欧美日韩麻豆91| 久久久久久久久久美女| 久久在线观看免费| 久久精品一区蜜桃臀影院| 久久午夜电影网| 国产女人18水真多18精品一级做 | 国产精品久久毛片av大全日韩| 精品成a人在线观看| 欧美精品一区在线观看| 欧美mv和日韩mv国产网站| 欧美成人三级在线| 久久婷婷一区二区三区| 国产欧美日韩久久| 国产精品久久久久aaaa| 亚洲男人的天堂在线观看| 一区二区三区日韩| 首页国产丝袜综合| 裸体健美xxxx欧美裸体表演| 久久 天天综合| 国产美女娇喘av呻吟久久| 国产.欧美.日韩| 99r精品视频| 欧美日韩中文字幕一区二区| 在线播放视频一区| 精品国产自在久精品国产| 国产欧美综合在线观看第十页| 中文字幕高清不卡| 亚洲精选一二三| 日韩一区精品视频| 国产麻豆成人精品| 99天天综合性| 欧美日韩国产精品成人| 欧美videos大乳护士334| 欧美激情艳妇裸体舞| 亚洲乱码国产乱码精品精的特点 | av在线播放成人| 欧美亚洲另类激情小说| 日韩免费看的电影| 国产精品久久毛片| 日韩经典中文字幕一区| 丰满亚洲少妇av| 欧洲一区在线观看| 精品国产乱码久久久久久牛牛| 国产欧美日韩另类一区| 午夜欧美大尺度福利影院在线看| 国产一区二区不卡在线| 日本韩国欧美国产| 欧美大肚乱孕交hd孕妇| 国产精品国产三级国产aⅴ无密码| 性久久久久久久久久久久 | 成人丝袜18视频在线观看| 欧美性欧美巨大黑白大战| 久久久久久免费网| 亚洲国产一区在线观看| 国产高清精品在线| 欧美精品日日鲁夜夜添| 中文在线免费一区三区高中清不卡| 亚洲国产人成综合网站| 国产91综合网| 日韩欧美一区中文| 亚洲精品中文在线观看| 国产一区二区伦理| 91精品国产91久久久久久一区二区| 国产精品美日韩| 狠狠色综合色综合网络| 欧美精品自拍偷拍动漫精品| 中文字幕在线不卡视频| 久久精品久久综合| 欧洲精品一区二区| ●精品国产综合乱码久久久久| 久久99最新地址| 欧美另类久久久品| 亚洲综合在线第一页| 91在线视频播放地址| 国产欧美日韩另类视频免费观看 | 国产日韩av一区| 精品一区在线看| 欧美精品在欧美一区二区少妇| 中文字幕在线不卡一区二区三区 | 美女视频黄免费的久久 | 久久99久久精品| 欧美精选午夜久久久乱码6080| 亚洲精品少妇30p| av电影在线观看不卡| 精品日韩99亚洲| 美国十次综合导航| 日韩免费一区二区| 美女在线一区二区| 日韩精品一区在线| 麻豆91在线看| 精品久久国产97色综合| 久久国产精品72免费观看| 欧美一区二区视频在线观看| 视频一区二区中文字幕| 欧美日韩国产小视频在线观看| 亚洲午夜影视影院在线观看| 欧美在线一区二区三区| 亚洲一区视频在线观看视频| 精品视频999| 五月天视频一区| 91精品久久久久久蜜臀| 免费高清在线一区| 日韩精品中文字幕一区| 国产一区二区三区在线观看免费视频 | 91在线看国产| 一区二区三区在线视频播放| 91精品国产91久久久久久一区二区| 三级精品在线观看| 日韩一级二级三级| 国内精品久久久久影院薰衣草 | 精品一区二区在线观看| 久久综合色婷婷| 成人国产免费视频| 一区二区三区小说| 51精品秘密在线观看| 日韩高清欧美激情| 久久综合色综合88| 91在线免费播放| 亚洲1区2区3区视频| 精品国产乱码久久久久久蜜臀| 粉嫩蜜臀av国产精品网站| 亚洲天天做日日做天天谢日日欢 | 亚洲美女屁股眼交3| 欧美日韩夫妻久久| 国产一区美女在线| 中文字幕在线不卡| 欧美亚洲国产一区二区三区va| 毛片一区二区三区| 中文字幕一区在线| 欧美浪妇xxxx高跟鞋交| 国产一区二区三区av电影| 亚洲免费三区一区二区|