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

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

?? fx2hid.lst

?? 開發EZUSB的FX2的固件程序的源代碼
?? LST
?? 第 1 頁 / 共 2 頁
字號:
C51 COMPILER V7.50   FX2HID                                                                05/29/2006 13:56:14 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE FX2HID
OBJECT MODULE PLACED IN fx2hid.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE fx2hid.c DEBUG OBJECTEXTEND

line level    source

   1          #pragma NOIV               // Do not generate interrupt vectors
   2          /*
   3          -----------------------------------------------------------------------------
   4             File:      usbhidio_fx2.c
   5             Contents:   Hooks required to implement USB peripheral function.
   6          
   7             This is an adaptation of the Cypress example FX2_Hid_Keyboard.c,
   8             which was in turn adapted from Cypress's bulkloop.c 
   9             (and is available on request from Cypress).
  10          
  11             The application communicates with the usbhdio host applications available from:
  12           
  13             www.Lvr.com/hidpage.htm
  14          
  15             This code requires the full (not evaluation) version of the Keil compiler.
  16             Additions to the keyboard code are labeled with "usbhidio start" and "usbhidio end"
  17             Unneeded keyboard code is commented out.
  18            
  19             Copyright (c) 2000 Cypress Semiconductor All rights reserved
  20             with some changes by Jan Axelson (jan@Lvr.com) 
  21          -----------------------------------------------------------------------------
  22          */
  23          
  24          #include "fx2.h"
  25          #include "fx2regs.h"
  26          #include "fx2sdly.h"            // SYNCDELAY macro
  27          
  28          extern BOOL GotSUD;             // Received setup data flag
  29          extern BOOL Sleep;
  30          extern BOOL Rwuen;
  31          extern BOOL Selfpwr;
  32          
  33          #define min(a,b) (((a)<(b))?(a):(b))
  34          
  35          #define GD_HID  0x21
  36          #define GD_REPORT       0x22
  37          #define CR_SET_REPORT 0x09
  38          #define HID_OUTPUT_REPORT 2
  39          
  40          #define BTN_ADDR                0x71
  41          #define LED_ADDR                0x72
  42          
  43          #define PF_IDLE                 0
  44          #define PF_GETKEYS              1
  45          
  46          #define KEY_WAKEUP              0
  47          #define KEY_F1                  1
  48          #define KEY_F2                  2
  49          #define KEY_F3                  3
  50          
  51          WORD    pHIDDscr;
  52          WORD    pReportDscr;
  53          WORD    pReportDscrEnd;
  54          extern code HIDDscr;
  55          extern code  ReportDscr; 
C51 COMPILER V7.50   FX2HID                                                                05/29/2006 13:56:14 PAGE 2   

  56          extern code ReportDscrEnd;
  57          
  58          BYTE Configuration;             // Current configuration
  59          BYTE AlternateSetting;          // Alternate settings
  60          
  61          BYTE    Configuration;          // Current configuration
  62          BYTE    AlternateSetting;       // Alternate settings
  63          
  64          BYTE buttons;
  65          BYTE oldbuttons;
  66          BYTE leds = 0xFF;
  67          
  68          BYTE read_buttons (void);
  69          void write_leds (BYTE d);
  70          
  71          #define VR_NAKALL_ON    0xD0
  72          #define VR_NAKALL_OFF   0xD1
  73          //-----------------------------------------------------------------------------
  74          // Task Dispatcher hooks
  75          //   The following hooks are called by the task dispatcher.
  76          //-----------------------------------------------------------------------------
  77          
  78          // read_buttons and write_leds are unused by usbhidio
  79          
  80          BYTE read_buttons (void)
  81          {
  82   1              BYTE d;
  83   1      
  84   1              while (I2CS & 0x40);    //Wait for stop to be done
  85   1              I2CS = 0x80;                    //Set start condition
  86   1              I2DAT = BTN_ADDR;               //Write button address
  87   1              while (!(I2CS & 0x01)); //Wait for done
  88   1              I2CS = 0x20;                    //Set last read
  89   1              d = I2DAT;                              //Dummy read
  90   1              while (!(I2CS & 0x01)); //Wait for done
  91   1              I2CS = 0x40;                    //Set stop bit
  92   1              return(I2DAT);                  //Read the data
  93   1      }
  94          
  95          /*
  96          void write_leds (BYTE d)
  97          {
  98                  while (I2CS & 0x40);    //Wait for stop to be done
  99                  I2CS = 0x80;                    //Set start condition
 100                  I2DAT = LED_ADDR;               //Write led address
 101                  while (!(I2CS & 0x01)); //Wait for done
 102                  I2DAT = d;                              //Write data
 103                  while (!(I2CS & 0x01)); //Wait for done
 104                  I2CS = 0x40;                    //Set stop bit
 105          }
 106          
 107          */
 108          
 109          void TD_Init(void)             // Called once at startup
 110          {
 111   1         // set the CPU clock to 48MHz
 112   1         CPUCS = ((CPUCS & ~bmCLKSPD) | bmCLKSPD1) ;
 113   1      
 114   1         // set the slave FIFO interface to 48MHz
 115   1         IFCONFIG |= 0x40;
 116   1      
 117   1        // Registers which require a synchronization delay, see section 15.14
C51 COMPILER V7.50   FX2HID                                                                05/29/2006 13:56:14 PAGE 3   

 118   1        // FIFORESET        FIFOPINPOLAR
 119   1        // INPKTEND         OUTPKTEND
 120   1        // EPxBCH:L         REVCTL
 121   1        // GPIFTCB3         GPIFTCB2
 122   1        // GPIFTCB1         GPIFTCB0
 123   1        // EPxFIFOPFH:L     EPxAUTOINLENH:L
 124   1        // EPxFIFOCFG       EPxGPIFFLGSEL
 125   1        // PINFLAGSxx       EPxFIFOIRQ
 126   1        // EPxFIFOIE        GPIFIRQ
 127   1        // GPIFIE           GPIFADRH:L
 128   1        // UDMACRCH:L       EPxGPIFTRIG
 129   1        // GPIFTRIG
 130   1        
 131   1        // Note: The pre-REVE EPxGPIFTCH/L register are affected, as well...
 132   1        //      ...these have been replaced by GPIFTC[B3:B0] registers
 133   1      
 134   1        // default: all endpoints have their VALID bit set
 135   1        // default: TYPE1 = 1 and TYPE0 = 0 --> BULK  
 136   1        // default: EP2 and EP4 DIR bits are 0 (OUT direction)
 137   1        // default: EP6 and EP8 DIR bits are 1 (IN direction)
 138   1        // default: EP2, EP4, EP6, and EP8 are double buffered
 139   1      
 140   1        // we are just using the default values, yes this is not necessary...
 141   1        EP1OUTCFG = 0xA0;
 142   1        EP1INCFG = 0xA0;
 143   1        SYNCDELAY;                    // see TRM section 15.14
 144   1        EP2CFG = 0xA2;
 145   1        SYNCDELAY;                    
 146   1        EP4CFG = 0xA0;
 147   1        SYNCDELAY;                    
 148   1        EP6CFG = 0xE2;
 149   1        SYNCDELAY;                    
 150   1        EP8CFG = 0xE0;
 151   1      
 152   1        // out endpoints do not come up armed
 153   1        
 154   1        // since the defaults are double buffered we must write dummy byte counts twice
 155   1        SYNCDELAY;                    
 156   1        EP2BCL = 0x80;                // arm EP2OUT by writing byte count w/skip.
 157   1        SYNCDELAY;                    
 158   1        EP2BCL = 0x80;
 159   1        SYNCDELAY;                    
 160   1        EP4BCL = 0x80;                // arm EP4OUT by writing byte count w/skip.
 161   1        SYNCDELAY;                    
 162   1        EP4BCL = 0x80;    
 163   1      
 164   1        // enable dual autopointer feature
 165   1        AUTOPTRSETUP |= 0x01;
 166   1      
 167   1        Rwuen = TRUE;                 // Enable remote-wakeup
 168   1      
 169   1      }
 170          
 171          /*buttons &= 0x0F;
 172                                  IN2BUF[0] = 0x00;                       // clear button state as seen by the host
 173                                  if ((oldbuttons - buttons) != 0)        //Change in button state
 174                                  {
 175          
 176                                          if ( !(buttons & 1) )   // left click
 177                                          {
 178                                                  IN2BUF[0] |= 0x01;
 179                                          }
C51 COMPILER V7.50   FX2HID                                                                05/29/2006 13:56:14 PAGE 4   

 180                                          
 181                                          if ( !(buttons & 2) )   // right click
 182                                          {
 183                                                  IN2BUF[0] |= 0x02;
 184                                          }                       
 185          
 186                                          if (buttons & 4)        // Advance in x direction
 187                                                  IN2BUF[1] = 0x00;
 188                                          else
 189                                                  IN2BUF[1] = 0x0A;
 190          
 191                                          if (buttons & 8)        // Advance in y direction
 192                                                  IN2BUF[2] = 0x00;
 193                                          else
 194                                                  IN2BUF[2] = 0x0A;
 195                                  
 196                                          IN2BC = 3;
 197                                  }
 198                                  oldbuttons = buttons;
 199          
 200          */
 201          void TD_Poll(void)              // Called repeatedly while the device is idle
 202          {
 203   1              if( !(EP1INCS & 0x02) ) // Is the EP1INBUF available,
 204   1              {
 205   2      
 206   2      //              This keyboard code is unneeded
 207   2              
 208   2                  buttons = read_buttons();
 209   2                      if (buttons == read_buttons())  //Debounce
 210   2                      {
 211   3                              buttons &= 0x0F;
 212   3                      EP1INBUF[0] = 0;
 213   3                              if ((oldbuttons - buttons) != 0)        //Change in button state
 214   3                              {
 215   4                                      if (!(buttons & 1))     // left click
 216   4                                      {
 217   5                                              EP1INBUF[0]|= 0x01;
 218   5                                   }
 219   4                                      if (!(buttons & 2))     //// right click
 220   4                                      {
 221   5                                              EP1INBUF[0] |= 0x02;
 222   5                                       }
 223   4                                      if (buttons & 4)        //// Advance in x direction
 224   4                                              EP1INBUF[1] = 0;
 225   4                                      else
 226   4                                              EP1INBUF[1] = 0x0A;
 227   4                                      if (buttons & 8)        //// Advance in y direction
 228   4                                              EP1INBUF[2] = 0;
 229   4                                      else
 230   4                                              EP1INBUF[2] =0x0A;
 231   4                              
 232   4                                      EP1INBC = 3;
 233   4                              }
 234   3                              oldbuttons = buttons;
 235   3                      }
 236   2      
 237   2              }
 238   1      /*      if( !(EP1OUTCS & 0x02) )        // Is there something available in EP1OUTBUF
 239   1              {
 240   1      
 241   1      //              This keyboard code is unneeded by usbhidio
C51 COMPILER V7.50   FX2HID                                                                05/29/2006 13:56:14 PAGE 5   

 242   1      
 243   1                      leds = 0xFF;    //Turn all off
 244   1                      if (EP1OUTBUF[0] & 0x02)        //Caps
 245   1                              leds &= 0xBF;
 246   1                      if (EP1OUTBUF[0] & 0x01)        //Scroll
 247   1                              leds &= 0xF7;
 248   1                      if (EP1OUTBUF[0] & 0x04)        //Num
 249   1                              leds &= 0xFE;
 250   1                      write_leds (leds);
 251   1      
 252   1      
 253   1      // usbhidio code start
 254   1      
 255   1      // Copy bytes received on the OUT endpoint to the IN endpoint. 
 256   1      //              EP1INBUF[0] = EP1OUTBUF[0];
 257   1      //              EP1INBUF[1] = EP1OUTBUF[1];
 258   1      
 259   1      // Rearm the IN endpoint buffer to enable sending a report.
 260   1      // The value equals the report size.
 261   1      //              EP1INBC = 2;                    
 262   1      
 263   1      // usbhidiocode end
 264   1      
 265   1      //              EP1OUTBC = 0;                           //Rearm the OUT endpoint buffer to enable receiving a report.
 266   1      
 267   1              } */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人亚洲一区二区一| 日韩激情av在线| 亚洲综合色在线| 亚洲精品免费播放| 成人午夜又粗又硬又大| 欧美色国产精品| 国产91对白在线观看九色| 亚洲精品久久7777| 欧美性三三影院| 亚洲欧美一区二区三区极速播放| 国产在线播放一区三区四| 91精品视频网| 亚洲一区二区三区四区五区黄| 精品电影一区二区三区| 精品一区精品二区高清| 26uuu亚洲综合色欧美 | 国产欧美中文在线| 美腿丝袜亚洲一区| 日韩精品影音先锋| 久88久久88久久久| 99久久夜色精品国产网站| 国产亚洲成av人在线观看导航| 国产成人av电影| 久久狠狠亚洲综合| 国产欧美日韩另类一区| 日韩午夜激情视频| 成人av电影在线网| 亚洲国产精品自拍| 日韩欧美国产一区在线观看| 在线亚洲免费视频| 久久不见久久见免费视频1| 午夜影院久久久| 久久精品欧美一区二区三区麻豆| 欧美一区二区久久| 99精品视频中文字幕| 国产精品一品二品| 亚洲一级电影视频| 夜夜嗨av一区二区三区| 26uuu精品一区二区| 日韩美女在线视频| 日韩一级欧美一级| 日韩三级.com| 精品成人在线观看| 久久久欧美精品sm网站| 欧美日韩激情一区二区| 国产精品99久久久久久似苏梦涵| 美脚の诱脚舐め脚责91| 蜜桃av噜噜一区| 久久99久久精品| 狠狠狠色丁香婷婷综合激情| 亚洲午夜一区二区三区| 香蕉久久夜色精品国产使用方法 | 国产成人啪免费观看软件| 一区二区三区在线视频播放 | 午夜精品aaa| 蜜桃久久久久久| 国精品**一区二区三区在线蜜桃| 九一九一国产精品| 成人免费视频一区二区| 色综合天天性综合| 亚洲第一福利一区| 日韩激情在线观看| 国产美女精品在线| 成人精品免费看| 在线观看91精品国产入口| 欧美日韩亚洲不卡| 亚洲精品一区二区在线观看| 国产日韩av一区| 亚洲天堂精品在线观看| 国产午夜精品一区二区三区四区 | 亚洲欧洲色图综合| 国产日韩欧美一区二区三区乱码 | 91黄色免费版| av一本久道久久综合久久鬼色| 精品一区二区三区影院在线午夜| 国产传媒欧美日韩成人| 91蜜桃在线观看| 国产 欧美在线| 欧美影院一区二区三区| 日韩精品一区二区三区在线播放| 国产欧美日韩综合精品一区二区| 亚洲欧美日韩国产中文在线| 日韩成人精品在线观看| 青青草原综合久久大伊人精品优势| 一区二区三区欧美| 精品在线播放午夜| 欧美在线|欧美| 久久美女艺术照精彩视频福利播放| 亚洲精品一二三| 国产一区二区视频在线| 色哟哟一区二区三区| 欧美不卡一二三| 精品国产免费久久| 一区二区三区不卡视频| 蜜臀av在线播放一区二区三区| 风流少妇一区二区| 91精品福利在线一区二区三区 | 一区二区三区在线免费| 久久99精品久久只有精品| 91豆麻精品91久久久久久| 精品欧美乱码久久久久久| 一区二区三区免费在线观看| 国产成人精品网址| 日韩欧美中文字幕精品| 一区二区三区毛片| av综合在线播放| 欧美精品一区二区三区在线播放| 中文字幕一区不卡| 精品亚洲免费视频| 在线电影一区二区三区| 午夜av一区二区三区| 成人av综合在线| 久久综合精品国产一区二区三区 | 美女在线视频一区| 日本精品一区二区三区四区的功能| 久久综合久久久久88| 日韩二区在线观看| 欧美探花视频资源| 一区二区三区在线视频免费| 成人av在线一区二区三区| 久久精品一区四区| 久久99国内精品| 日韩欧美在线网站| 日韩不卡一二三区| 欧美日韩一区二区三区四区 | 91精品国产aⅴ一区二区| 亚洲第一激情av| 欧美性受xxxx黑人xyx| 亚洲欧美日韩国产一区二区三区| 成人精品视频一区二区三区尤物| 精品国产乱码久久久久久蜜臀| 日韩不卡一区二区三区| 欧美精品粉嫩高潮一区二区| 亚洲女性喷水在线观看一区| 成人黄色软件下载| 亚洲人亚洲人成电影网站色| jizz一区二区| 亚洲免费成人av| 色婷婷亚洲婷婷| 亚洲国产欧美日韩另类综合 | 国产三级久久久| 国产成人av电影在线观看| 久久精品欧美一区二区三区麻豆 | 7777精品伊人久久久大香线蕉的 | 国产精品色噜噜| 亚洲一区二区欧美激情| 在线欧美日韩国产| 亚洲成av人片在线观看无码| 在线观看91精品国产入口| 亚洲一区在线播放| 欧美精品丝袜中出| 麻豆精品一区二区三区| 日韩视频免费直播| 国产剧情一区二区| 国产精品毛片久久久久久| jlzzjlzz亚洲日本少妇| 亚洲午夜久久久久中文字幕久| 欧美视频三区在线播放| 日本成人超碰在线观看| 欧美精品一区二区三区蜜桃视频| 国产精品123区| 亚洲婷婷综合色高清在线| 欧美影视一区在线| 美日韩黄色大片| 国产精品国产自产拍在线| 国模少妇一区二区三区| 国产精品久久久久久久第一福利| 99精品在线观看视频| 日本特黄久久久高潮| 久久久精品免费网站| 91论坛在线播放| 日本不卡高清视频| 欧美国产精品一区二区| 久久精品国产澳门| 国产精品欧美久久久久无广告 | 亚洲人成人一区二区在线观看| 欧美三级资源在线| 国产一区不卡在线| 一区二区三区久久久| 欧美一级专区免费大片| 粉嫩一区二区三区在线看| 亚洲国产视频直播| 久久久99久久精品欧美| 在线看日本不卡| 国产老妇另类xxxxx| 婷婷综合五月天| 国产精品视频观看| 日韩亚洲欧美一区| 91啦中文在线观看| 国产盗摄女厕一区二区三区| 亚洲超碰97人人做人人爱| 国产欧美一区二区精品性色超碰| 欧美蜜桃一区二区三区| 不卡电影一区二区三区| 美女任你摸久久| 亚洲一区二区三区不卡国产欧美| 国产精品午夜电影| 精品蜜桃在线看| 精品视频在线免费看| 成人a区在线观看|