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

📄 gpif.lst

📁 一个有关EZ-USB FX2 系列CY7C68013的应用实例
💻 LST
📖 第 1 页 / 共 3 页
字号:
 177          /* Opcode*/ 0x00,     0x02,     0x02,     0x02,     0x02,     0x02,     0x02,     0x00,
 178          /* Output*/ 0x3F,     0x17,     0x17,     0x17,     0x17,     0x17,     0x17,     0x3F,
 179          /* LFun  */ 0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x3F,
C51 COMPILER V7.10   GPIF                                                                  10/25/2005 20:26:41 PAGE 4   

 180          // Wave 2 
 181          /* LenBr */ 0x02,     0x80,     0x03,     0x04,     0x01,     0x01,     0x01,     0x07,
 182          /* Opcode*/ 0x00,     0x00,     0x02,     0x02,     0x02,     0x02,     0x02,     0x00,
 183          /* Output*/ 0x3F,     0x3C,     0x3E,     0x3F,     0x3F,     0x3F,     0x3F,     0x3F,
 184          /* LFun  */ 0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x3F,
 185          // Wave 3 
 186          /* LenBr */ 0x20,     0x01,     0x02,     0x01,     0x01,     0x01,     0x01,     0x07,
 187          /* Opcode*/ 0x00,     0x00,     0x02,     0x02,     0x02,     0x02,     0x02,     0x00,
 188          /* Output*/ 0x3F,     0x3D,     0x3C,     0x3C,     0x3C,     0x3C,     0x3C,     0x3F,
 189          /* LFun  */ 0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x00,     0x3F,
 190          };                     
 191          // END DO NOT EDIT     
 192                                 
 193          // DO NOT EDIT ...                     
 194          const char xdata FlowStates[36] =   
 195          {                                      
 196          /* Wave 0 FlowStates */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 197          /* Wave 1 FlowStates */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 198          /* Wave 2 FlowStates */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 199          /* Wave 3 FlowStates */ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 200          };                     
 201          // END DO NOT EDIT     
 202                                 
 203          // DO NOT EDIT ...                                               
 204          const char xdata InitData[7] =                                   
 205          {                                                                
 206          /* Regs  */ 0xA0,0x00,0x00,0x3F,0xCE,0xE4,0x00     
 207          };                                                               
 208          // END DO NOT EDIT                                                                                        
             -             
 209          
 210          // TO DO: You may add additional code below.
 211          
 212          void GpifInit( void )
 213          {
 214   1        BYTE i;
 215   1      
 216   1        // Registers which require a synchronization delay, see section 15.14 需要同步延时
 217   1        // FIFORESET        FIFOPINPOLAR                                      
 218   1        // INPKTEND         OUTPKTEND
 219   1        // EPxBCH:L         REVCTL
 220   1        // GPIFTCB3         GPIFTCB2
 221   1        // GPIFTCB1         GPIFTCB0
 222   1        // EPxFIFOPFH:L     EPxAUTOINLENH:L
 223   1        // EPxFIFOCFG       EPxGPIFFLGSEL
 224   1        // PINFLAGSxx       EPxFIFOIRQ
 225   1        // EPxFIFOIE        GPIFIRQ
 226   1        // GPIFIE           GPIFADRH:L
 227   1        // UDMACRCH:L       EPxGPIFTRIG
 228   1        // GPIFTRIG
 229   1        
 230   1        // Note: The pre-REVE EPxGPIFTCH/L register are affected, as well... 
 231   1        //      ...these have been replaced by GPIFTC[B3:B0] registers
 232   1      
 233   1        // 8051 doesn't have access to waveform memories 'til
 234   1        // the part is in GPIF mode.
 235   1      
 236   1        IFCONFIG = 0xCE;
 237   1        // IFCLKSRC=1   , FIFOs executes on internal clk source  内部振荡源
 238   1        // xMHz=1       , 48MHz internal clk rate                48M振荡频率
 239   1        // IFCLKOE=0    , Don't drive IFCLK pin signal at 48MHz  不输出
 240   1        // IFCLKPOL=0   , Don't invert IFCLK pin signal from internal clk 不颠倒波型
C51 COMPILER V7.10   GPIF                                                                  10/25/2005 20:26:41 PAGE 5   

 241   1        // ASYNC=1      , master samples asynchronous             异步采样
 242   1        // GSTATE=1     , Drive GPIF states out on PORTE[2:0], debug WF 波型调试在E2/E1/E0
 243   1        // IFCFG[1:0]=10, FX2 in GPIF master mode                 gpif主控
 244   1      
 245   1        GPIFABORT = 0xFF;  // abort any waveforms pending  退出当前波型。
 246   1      
 247   1        GPIFREADYCFG = InitData[ 0 ];               //0x80  INTRDY(B.7)=1 SAS(B.6)=0,TCXRDY5(B.5)=0
 248   1        GPIFCTLCFG = InitData[ 1 ];                             //0x00  TRICTL=0 6控制端都是有用的。CTL5=CTL4=CTL3=CTL2=CTL1=CTL0=0 com
             -s输出
 249   1        GPIFIDLECS = InitData[ 2 ];                 //0x00  DONE=0 IDLEDRV=0     在空闲时,数据总线处于高阻状态
 250   1        GPIFIDLECTL = InitData[ 3 ];                //0xFF  CTL5=CTL4=CTL3=CTL2=CTL1=CTL0=1 全部输出使能,且都是
             -高电平输出
 251   1        GPIFWFSELECT = InitData[ 5 ];               //0xE4  SINGLEWR1=SINGLEWR0=SINGLERD1=FIFOWR0=1 SINGLERD0=FI
             -FOWR1=FIFORD1=FIFORD0=0
 252   1        GPIFREADYSTAT = InitData[ 6 ];              //0x01  RDY0=1,RDY5=RDY4=RDY3=RDY2=RDY1=0   
 253   1      
 254   1        // use dual autopointer feature... 
 255   1        AUTOPTRSETUP = 0x07;          // inc both pointers,  增加所有指针
 256   1                                      // ...warning: this introduces pdata hole(s)
 257   1                                      // ...at E67B (XAUTODAT1) and E67C (XAUTODAT2)
 258   1        
 259   1        // source
 260   1        APTR1H = MSB( &WaveData );
 261   1        APTR1L = LSB( &WaveData );
 262   1        
 263   1        // destination
 264   1        AUTOPTRH2 = 0xE4;
 265   1        AUTOPTRL2 = 0x00;
 266   1      
 267   1        // transfer
 268   1        for ( i = 0x00; i < 128; i++ )
 269   1        {
 270   2          EXTAUTODAT2 = EXTAUTODAT1;
 271   2        }
 272   1      
 273   1      
 274   1      
 275   1      // Configure GPIF Address pins, output initial value,    初使化GPIF的9位地址线。
 276   1        PORTCCFG = 0xFF;    // [7:0] as alt. func. GPIFADR[7:0]  当为1则选定为GPIFADR
 277   1        OEC = 0xFF;         // and as outputs                     
 278   1        PORTECFG |= 0x80;   // [8] as alt. func. GPIFADR[8]
 279   1        OEE |= 0x80;        // and as output
 280   1      
 281   1      // ...OR... tri-state GPIFADR[8:0] pins                   或初使化作为普通I/O口
 282   1      //  PORTCCFG = 0x00;  // [7:0] as port I/O
 283   1      //  OEC = 0x00;       // and as inputs
 284   1      //  PORTECFG &= 0x7F; // [8] as port I/O
 285   1      //  OEE &= 0x7F;      // and as input
 286   1      
 287   1      // GPIF address pins update when GPIFADRH/L written        当gpifadrh/l被写,gpif地址脚赋值
 288   1        SYNCDELAY;                    // 
 289   1        GPIFADRH = 0x00;    // bits[7:1] always 0
 290   1        SYNCDELAY;                    // 
 291   1        GPIFADRL = 0x00;    // point to PERIPHERAL address 0x0000
 292   1      //}
 293   1      
 294   1      // Configure GPIF FlowStates registers for Wave 0 of WaveData
 295   1        FLOWSTATE = FlowStates[ 0 ];
 296   1        FLOWLOGIC = FlowStates[ 1 ];
 297   1        FLOWEQ0CTL = FlowStates[ 2 ];
 298   1        FLOWEQ1CTL = FlowStates[ 3 ];
 299   1        FLOWHOLDOFF = FlowStates[ 4 ];
C51 COMPILER V7.10   GPIF                                                                  10/25/2005 20:26:41 PAGE 6   

 300   1        FLOWSTB = FlowStates[ 5 ];
 301   1        FLOWSTBEDGE = FlowStates[ 6 ];
 302   1        FLOWSTBHPERIOD = FlowStates[ 7 ];
 303   1      }
 304          #define TESTING_GPIF // NOTE: Comment this line out for frameworks based firmware
 305                               // 注意: 
 306                               // See the example GPIF Tool Utility under Application
 307                               // Reference Material for more advanced development info
 308          #ifdef TESTING_GPIF
 309          // TODO: You may add additional code below.
 310          
 311          void OtherInit( void )
 312          { // interface initialization
 313   1        // ...see TD_Init( );
 314   1      }
 315          
 316          // Set Address GPIFADR[8:0] to PERIPHERAL  地址设置给外部设备
 317          void Peripheral_SetAddress( WORD gaddr )
 318          {
 319   1        SYNCDELAY;                    // 
 320   1        GPIFADRH = gaddr >> 8;
 321   1        SYNCDELAY;                    // 
 322   1        GPIFADRL = ( BYTE )gaddr; // setup GPIF address 
 323   1      }
 324          
 325          // Set EP2GPIF Transaction Count               设定端点2的传送计数器
 326          void Peripheral_SetEP2GPIFTC( WORD xfrcnt )
 327          {
 328   1        SYNCDELAY;                    //  
 329   1        EP2GPIFTCH = xfrcnt >> 8;  // setup transaction count
 330   1        SYNCDELAY;                    // 
 331   1        EP2GPIFTCL = ( BYTE )xfrcnt;
 332   1      }
 333          
 334          // Set EP4GPIF Transaction Count                                设定端点四的传送计数器
 335          void Peripheral_SetEP4GPIFTC( WORD xfrcnt )    
 336          {
 337   1        SYNCDELAY;                    // 
 338   1        EP4GPIFTCH = xfrcnt >> 8;  // setup transaction count
 339   1        SYNCDELAY;                    // 
 340   1        EP4GPIFTCL = ( BYTE )xfrcnt;
 341   1      }
 342          
 343          // Set EP6GPIF Transaction Count                                设定端点6的传送计数器
 344          void Peripheral_SetEP6GPIFTC( WORD xfrcnt )
 345          {
 346   1        SYNCDELAY;                    // 
 347   1        EP6GPIFTCH = xfrcnt >> 8;  // setup transaction count
 348   1        SYNCDELAY;                    // 
 349   1        EP6GPIFTCL = ( BYTE )xfrcnt;
 350   1      }
 351          
 352          // Set EP8GPIF Transaction Count                                设定端点8的传送计数器
 353          void Peripheral_SetEP8GPIFTC( WORD xfrcnt )
 354          {
 355   1        SYNCDELAY;                    // 

⌨️ 快捷键说明

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