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

📄 cydown.lst

📁 程序描述:使用Cypress的Cy7C68013A芯片进行设计
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.02a   CYDOWN                                                               07/31/2007 11:33:27 PAGE 1   


C51 COMPILER V7.02a, COMPILATION OF MODULE CYDOWN
OBJECT MODULE PLACED IN CyDown.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE CyDown.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          //-----------------------------------------------------------------------------
   2          //   File:      CyDown.c
   3          //-----------------------------------------------------------------------------
   4          #include "lp.h"
   5          #include "lpregs.h"
   6          #include "syncdly.h"            // 同步延时宏
   7          
   8          //-----------------------------------------------------------------------------
   9          // Constants
  10          //-----------------------------------------------------------------------------
  11          #define DELAY_COUNT   0x9248*8L  // 延时计数
  12          #define _IFREQ  48000            
  13          #define _CFREQ  48000           
  14          
  15          //-----------------------------------------------------------------------------
  16          // 比较函数
  17          //-----------------------------------------------------------------------------
  18          #define   min(a,b) (((a)<(b))?(a):(b))
  19          #define   max(a,b) (((a)>(b))?(a):(b))
  20          
  21          //-----------------------------------------------------------------------------
  22          // 全局变量
  23          //-----------------------------------------------------------------------------
  24          volatile BOOL   GotSUD;
  25          BOOL      Rwuen;
  26          BOOL      Selfpwr;
  27          volatile BOOL   Sleep;                  // 休眠模式使能信号
  28          
  29          WORD   pDeviceDscr;   
  30          WORD   pDeviceQualDscr;
  31          WORD   pHighSpeedConfigDscr;
  32          WORD   pFullSpeedConfigDscr;   
  33          WORD   pConfigDscr;
  34          WORD   pOtherConfigDscr;   
  35          WORD   pStringDscr;   
  36          
  37          //-----------------------------------------------------------------------------
  38          // 函数声明
  39          //-----------------------------------------------------------------------------
  40          void SetupCommand(void);
  41          void TD_Init(void);
  42          void TD_Poll(void);
  43          BOOL TD_Suspend(void);
  44          BOOL TD_Resume(void);
  45          
  46          BOOL DR_GetDescriptor(void);
  47          BOOL DR_SetConfiguration(void);
  48          BOOL DR_GetConfiguration(void);
  49          BOOL DR_SetInterface(void);
  50          BOOL DR_GetInterface(void);
  51          BOOL DR_GetStatus(void);
  52          BOOL DR_ClearFeature(void);
  53          BOOL DR_SetFeature(void);
  54          BOOL DR_VendorCmnd(void);
  55          BOOL DR_LED1(void);                                             //显示数字0
C51 COMPILER V7.02a   CYDOWN                                                               07/31/2007 11:33:27 PAGE 2   

  56          BOOL DR_LED2(void);                                             //显示数字1
  57          BOOL DR_LED3(void);                                             //显示数字2
  58          BOOL DR_LED4(void);                                             //显示字符A
  59          BOOL DR_LED5(void);                                             //显示数字F
  60          
  61          // 端点映射
  62          const char code  EPCS_Offset_Lookup_Table[] =
  63          {
  64             0,    // EP1OUT
  65             1,    // EP1IN
  66             2,    // EP2OUT
  67             2,    // EP2IN
  68             3,    // EP4OUT
  69             3,    // EP4IN
  70             4,    // EP6OUT
  71             4,    // EP6IN
  72             5,    // EP8OUT
  73             5,    // EP8IN
  74          };
  75          
  76          #define epcs(EP) (EPCS_Offset_Lookup_Table[(EP & 0x7E) | (EP > 128)] + 0xE6A1)
  77          
  78          //-----------------------------------------------------------------------------
  79          // 主程序
  80          //-----------------------------------------------------------------------------
  81          
  82          //任务线程
  83          void main(void)
  84          {
  85   1         DWORD   i;
  86   1         WORD   offset;
  87   1         DWORD   DevDescrLen;
  88   1         DWORD   j=0;
  89   1         WORD   IntDescrAddr;
  90   1         WORD   ExtDescrAddr;
  91   1      
  92   1         // 初始化
  93   1         Sleep = FALSE;               // 禁止休眠模式
  94   1         Rwuen = FALSE;               // 禁止远程唤醒
  95   1         Selfpwr = FALSE;            // 禁止自供电
  96   1         GotSUD = FALSE;       
  97   1      
  98   1         // 初始化用户设备
  99   1         TD_Init();
 100   1      
 101   1         //定向USB描述符
 102   1         pDeviceDscr = (WORD)&DeviceDscr;
 103   1         pDeviceQualDscr = (WORD)&DeviceQualDscr;
 104   1         pHighSpeedConfigDscr = (WORD)&HighSpeedConfigDscr;
 105   1         pFullSpeedConfigDscr = (WORD)&FullSpeedConfigDscr;
 106   1         pStringDscr = (WORD)&StringDscr;
 107   1      
 108   1          if ((WORD)&DeviceDscr & 0xC000)
 109   1         {
 110   2            // 重定向描述符
 111   2            IntDescrAddr = INTERNAL_DSCR_ADDR;
 112   2            ExtDescrAddr = (WORD)&DeviceDscr;
 113   2            DevDescrLen = (WORD)&UserDscr - (WORD)&DeviceDscr + 2;
 114   2            for (i = 0; i < DevDescrLen; i++)
 115   2               *((BYTE xdata *)IntDescrAddr+i) = *((BYTE xdata *)ExtDescrAddr+i);
 116   2      
 117   2            // 更新描述符指针
C51 COMPILER V7.02a   CYDOWN                                                               07/31/2007 11:33:27 PAGE 3   

 118   2            pDeviceDscr = IntDescrAddr;
 119   2            offset = (WORD)&DeviceDscr - INTERNAL_DSCR_ADDR;
 120   2            pDeviceQualDscr -= offset;
 121   2            pConfigDscr -= offset;
 122   2            pOtherConfigDscr -= offset;
 123   2            pHighSpeedConfigDscr -= offset;
 124   2            pFullSpeedConfigDscr -= offset;
 125   2            pStringDscr -= offset;
 126   2         }
 127   1      
 128   1         EZUSB_IRQ_ENABLE();            // 使能USB中断
 129   1         EZUSB_ENABLE_RSMIRQ();            //远程唤醒中断
 130   1      
 131   1         INTSETUP |= (bmAV2EN | bmAV4EN);     // 使能INT 2 & 4 自动向量
 132   1      
 133   1         USBIE |= bmSUDAV | bmSUTOK | bmSUSP | bmURES | bmHSGRANT;   // 使能选择的中断
 134   1         EA = 1;                  // 使能8051全局中断
 135   1      
 136   1      #ifndef NO_RENUM
 137   1         // 检查重列举
 138   1         if(!(USBCS & bmRENUM))
 139   1         {
 140   2             EZUSB_Discon(TRUE);   //重列举
 141   2         }
 142   1      #endif
 143   1      
 144   1         // 连接
 145   1         USBCS &=~bmDISCON;
 146   1      
 147   1         CKCON = (CKCON&(~bmSTRETCH)) | FW_STRETCH_VALUE;
 148   1      
 149   1         //清Sleep标记
 150   1         Sleep = FALSE;
 151   1      
 152   1         //任务线程
 153   1         while(TRUE)               //主循环
 154   1         {
 155   2            //列举用户设备
 156   2            TD_Poll();
 157   2      
 158   2            if(GotSUD)
 159   2            {
 160   3               SetupCommand();          
 161   3               GotSUD = FALSE;          // 清SETUP标记
 162   3            }
 163   2      
 164   2            //检查并处理
 165   2            if (Sleep)
 166   2            {
 167   3               if(TD_Suspend())
 168   3               { 
 169   4                  Sleep = FALSE;     //清Sleep标记
 170   4                  do
 171   4                  {
 172   5                     EZUSB_Susp();         //空闲状态处理
 173   5                  }
 174   4                  while(!Rwuen && EZUSB_EXTWAKEUP());
 175   4                  EZUSB_Resume();   
 176   4                  TD_Resume();
 177   4               }   
 178   3            }
 179   2      
C51 COMPILER V7.02a   CYDOWN                                                               07/31/2007 11:33:27 PAGE 4   

 180   2         }
 181   1      }
 182          

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -