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

📄 gpif.lst

📁 部分USB学习资料
💻 LST
字号:
C51 COMPILER V7.00  GPIF                                                                   09/27/2002 10:11:23 PAGE 1   


C51 COMPILER V7.00, COMPILATION OF MODULE GPIF
OBJECT MODULE PLACED IN gpif.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE gpif.c OPTIMIZE(9,SIZE) DEBUG OBJECTEXTEND

stmt level    source

   1          /********************************************************************/
   2          /*  This file is created by liurong,and be used for GPIF            */
   3          /********************************************************************/
   4          #include "ezusb.h"
   5          #include "ezregs.h"
   6          #include "Fx.h"
   7                                                                                                                    
             -                                   
   8          const char xdata WaveData[128] =
   9          {
  10          // Wave 0                                                                                  
  11          /* LenBr */ 0x01,     0x01,     0x32,     0x32,     0x32,     0x01,     0x01,     0x47,    
  12          /* Opcode*/ 0x02,     0x02,     0x02,     0x02,     0x02,     0x02,     0x02,     0x00,    
  13          /* Output*/ 0xFF,     0xFF,     0xF9,     0xF9,     0xF9,     0xFF,     0xFF,     0xFF,    
  14          /* LFun  */ 0x00,     0x09,     0x12,     0x1B,     0x24,     0x2D,     0x36,     0x3F,    
  15          // Wave 1                                                                                  
  16          /* LenBr */ 0x48,     0x06,     0x03,     0x03,     0x01,     0x01,     0x01,     0x47,    
  17          /* Opcode*/ 0x03,     0x02,     0x02,     0x02,     0x02,     0x02,     0x02,     0x00,    
  18          /* Output*/ 0xFF,     0xFF,     0xFA,     0xFA,     0xFF,     0xFF,     0xFF,     0xFF,    
  19          /* LFun  */ 0x80,     0x09,     0x12,     0x1B,     0x24,     0x2D,     0x36,     0x3F,    
  20          // Wave 2                                                                                  
  21          /* LenBr */ 0x01,     0x01,     0x01,     0x01,     0x01,     0x01,     0x01,     0x47,    
  22          /* Opcode*/ 0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,    
  23          /* Output*/ 0xFF,     0xFF,     0xFF,     0xFF,     0xFF,     0xFF,     0xFF,     0xFF,    
  24          /* LFun  */ 0x00,     0x09,     0x12,     0x1B,     0x24,     0x2D,     0x36,     0x3F,    
  25          // Wave 3                                                                                  
  26          /* LenBr */ 0x01,     0x01,     0x01,     0x01,     0x01,     0x01,     0x01,     0x47,    
  27          /* Opcode*/ 0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,    
  28          /* Output*/ 0xFF,     0xFF,     0xFF,     0xFF,     0xFF,     0xFF,     0xFF,     0xFF,    
  29          /* LFun  */ 0x09,     0x09,     0x12,     0x1B,     0x24,     0x2D,     0x36,     0x3F     
  30          };
  31          
  32          
  33          
  34          const char xdata InitData[7] =
  35          {
  36          /* Regs  */ 0xC0,0x00,0x01,0xFF,0x06,0x1B,0x11
  37          };
  38          
  39          #define TMOUT 0x0020            // Default Timeout TODO: Set this appropriately
  40          
  41          void GpifInit(void)
  42          {
  43   1              unsigned char xdata *Source;
  44   1              unsigned char xdata *Dest;
  45   1              unsigned int x;
  46   1      
  47   1              ABORT = 0;                              // abort any pending operation
  48   1              READY = InitData[0];
  49   1              CTLOUTCFG = InitData[1];
  50   1              IDLE_CS = InitData[2];
  51   1              IDLE_CTLOUT = InitData[3];
  52   1              IFCONFIG = InitData[4];
  53   1              WFSELECT = InitData[5];
  54   1              ABSETUP |= InitData[6];
C51 COMPILER V7.00  GPIF                                                                   09/27/2002 10:11:23 PAGE 2   

  55   1      
  56   1              Source = WaveData;              // Transfer the GPIF Tool generated data
  57   1              Dest = &WFDESC[0];
  58   1      
  59   1              for (x = 0; x < 128; x++)
  60   1                              *Dest++ = *Source++;
  61   1      
  62   1              INT4SETUP = INT4SFC | INT4_INTERNAL; // setup INT4 as internal source
  63   1              EIEX4 = 0x01;
  64   1              PORTSETUP |= 0x01;
  65   1      }
  66          
  67          // write byte to PERIPHERAL, using GPIF
  68          bit Peripheral_SingleWordWrite( BYTE gaddr, WORD gdata )
  69          {
  70   1        unsigned char transaction_err = 0x00;
  71   1      
  72   1        GPIFADRL = gaddr;                  // setup GPIF address ADR0-ADR5
  73   1        SGLDATH = gdata >> 8;              
  74   1        SGLDATLTRIG = gdata;               // initiate GPIF write transaction
  75   1      
  76   1        while( !( IDLE_CS & 0x80 ) )       // poll IDLE_CS.7 Done bit
  77   1        {                                  
  78   2          if( ++transaction_err > TMOUT )  // trap GPIF transaction for TMOUT
  79   2          {                                
  80   3            ABORT = 0x01;
  81   3            return( 0 );                   // error has occurred
  82   3          }
  83   2        }
  84   1      
  85   1        return( 1 );
  86   1      }
  87          
  88          // read word from PERIPHERAL, using GPIF
  89          bit Peripheral_SingleWordRead( BYTE gaddr, WORD xdata *gdata )
  90          {
  91   1        unsigned char g_data = 0x00;
  92   1        unsigned char transaction_err = 0x00;
  93   1      
  94   1        GPIFADRL = gaddr;                  // setup GPIF address ADR0-ADR5
  95   1        g_data = SGLDATLTRIG;               // initiate GPIF read transaction
  96   1      
  97   1        while( !( IDLE_CS & 0x80 ) )       // poll IDLE_CS.7 Done bit
  98   1        {                                  
  99   2          if( ++transaction_err > TMOUT )  // trap GPIF transaction for TMOUT
 100   2          {                                
 101   3            ABORT = 0x01;
 102   3            return( 0 );                   // error has occurred
 103   3          }
 104   2        }
 105   1      
 106   1        *gdata = ( ( WORD )SGLDATH << 8 ) | ( WORD )SGLDATLNTRIG;
 107   1      
 108   1        return( 1 );
 109   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    240    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =    135    ----
   PDATA SIZE       =   ----    ----
C51 COMPILER V7.00  GPIF                                                                   09/27/2002 10:11:23 PAGE 3   

   DATA SIZE        =   ----       4
   IDATA SIZE       =   ----    ----
   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 + -