📄 gpif.lst
字号:
C51 COMPILER V7.10 GPIF 10/26/2005 09:28:04 PAGE 1
C51 COMPILER V7.10, COMPILATION OF MODULE GPIF
OBJECT MODULE PLACED IN gpif.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE gpif.c BROWSE INCDIR(F:\Keil\C51\INC\Cypress\) DEBUG OBJECTEXTEND
line level source
1 //---------------------------------------------------------------------------//
2
3 // GPIF Program Code for Single
4
5 // DO NOT EDIT ...
6 const char xdata WaveData[128] =
7 {
8 // Wave 0
9 /* LenBr */ 0x02, 0x02, 0x01, 0x01, 0x01, 0xF0, 0x06, 0x07,
10 /* Opcode*/ 0x00, 0x01, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00,
11 /* Output*/ 0x3F, 0x3F, 0x35, 0x35, 0x37, 0x37, 0x3E, 0x3F,
12 /* LFun */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F,
13 // Wave 1
14 /* LenBr */ 0x02, 0x09, 0x3F, 0x01, 0x01, 0x01, 0x01, 0x07,
15 /* Opcode*/ 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
16 /* Output*/ 0x3F, 0x3E, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
17 /* LFun */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F,
18 // Wave 2
19 /* LenBr */ 0x02, 0x02, 0x03, 0x01, 0x01, 0x01, 0x01, 0x07,
20 /* Opcode*/ 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00,
21 /* Output*/ 0x3F, 0x35, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
22 /* LFun */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F,
23 // Wave 3
24 /* LenBr */ 0x02, 0x01, 0x03, 0x02, 0x03, 0x05, 0x01, 0x07,
25 /* Opcode*/ 0x00, 0x00, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00,
26 /* Output*/ 0x3F, 0x37, 0x33, 0x37, 0x3F, 0x3E, 0x3E, 0x3F,
27 /* LFun */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F,
28 };
29 // END DO NOT EDIT
30
31 // DO NOT EDIT ...
32
33 // END DO NOT EDIT
34
35 // DO NOT EDIT ...
36 const char data InitData[7] =
37 {
38 /* Regs */ 0xA0,0x00,0x00,0x3F,0x8E,0xE4,0x00
39 };
40 // END DO NOT EDIT
-
41
42 // GPIF Program Code
43
44 // DO NOT EDIT ...
45 #include "fx2.h"
46 #include "fx2regs.h"
47 #include "fx2sdly.h" // SYNCDELAY macro
48 #include "gpif.h"
49 // END DO NOT EDIT
50
51 //-------------------------------------------------------------------//
-
52 // TO DO: You may add additional code below.
53
C51 COMPILER V7.10 GPIF 10/26/2005 09:28:04 PAGE 2
54 void GpifInit( void )
55 {
56 1
57 1 IFCONFIG = 0x8E;
58 1 // IFCLKSRC=1 , FIFOs executes on internal clk source
59 1 // xMHz=1 , 48MHz internal clk rate
60 1 // IFCLKOE=0 , Don't drive IFCLK pin signal at 48MHz
61 1 // IFCLKPOL=0 , Don't invert IFCLK pin signal from internal clk
62 1 // ASYNC=1 , master samples asynchronous
63 1 // GSTATE=1 , Drive GPIF states out on PORTE[2:0], debug WF
64 1 // IFCFG[1:0]=10, FX2 in GPIF master mode
65 1
66 1 GPIFABORT = 0xFF; // abort any waveforms pending
67 1
68 1 // Configure GPIF Address pins, output initial value,
69 1 PORTCCFG = 0xFF; // [7:0] as alt. func. GPIFADR[7:0]
70 1 OEC = 0xFF; // and as outputs
71 1 PORTECFG |= 0x80; // [8] as alt. func. GPIFADR[8]
72 1 OEE |= 0x80; // and as output
73 1
74 1 // ...OR... tri-state GPIFADR[8:0] pins
75 1 // PORTCCFG = 0x00; // [7:0] as port I/O
76 1 // OEC = 0x00; // and as inputs
77 1 // PORTECFG &= 0x7F; // [8] as port I/O
78 1 // OEE &= 0x7F; // and as input
79 1
80 1 // GPIF address pins update when GPIFADRH/L written
81 1 SYNCDELAY; //
82 1 GPIFADRH = 0x00; // bits[7:1] always 0
83 1 SYNCDELAY; //
84 1 GPIFADRL = 0x00; // point to PERIPHERAL address 0x0000
85 1
86 1 // Configure GPIF FlowStates registers for Wave 0 of WaveData
87 1 /* FLOWSTATE = 0x00;//FlowStates[ 0 ];
88 1 FLOWLOGIC = 0x00;//FlowStates[ 1 ];
89 1 FLOWEQ0CTL = 0x00;//FlowStates[ 2 ];
90 1 FLOWEQ1CTL = 0x00;//FlowStates[ 3 ];
91 1 FLOWHOLDOFF = 0x00;//FlowStates[ 4 ];
92 1 FLOWSTB = 0x00;//FlowStates[ 5 ];
93 1 FLOWSTBEDGE = 0x00;//FlowStates[ 6 ];
94 1 FLOWSTBHPERIOD = 0x00;//FlowStates[ 7 ];*/
95 1 }
96
97
98 void Peripheral_SetEP6GPIFTC( WORD xfrcnt )
99 {
100 1 SYNCDELAY; //
101 1 EP6GPIFTCH = xfrcnt >> 8; // setup transaction count
102 1 SYNCDELAY; //
103 1 EP6GPIFTCL = ( BYTE )xfrcnt;
104 1 }
105
106
107
108 void SetEP6GPIFPFSTOP( void )
109 {
110 1 EP6GPIFPFSTOP = 0x01;
111 1 }
112 void Peripheral_SingleWordWrite( WORD gdata )
113 {
114 1 while( !( GPIFTRIG & 0x80 ) ) // poll GPIFTRIG.7 Done bit
115 1 {
C51 COMPILER V7.10 GPIF 10/26/2005 09:28:04 PAGE 3
116 2 ;
117 2 }
118 1
119 1 // using register(s) in XDATA space
120 1 XGPIFSGLDATH = gdata >> 8;
121 1 XGPIFSGLDATLX = gdata; // trigger GPIF
122 1 // ...single word write transaction
123 1 }
124
125 // read single word from PERIPHERAL, using GPIF
126 void Peripheral_SingleWordRead( WORD xdata *gdata )
127 {
128 1 BYTE xdata g_data = 0x00;
129 1
130 1 while( !( GPIFTRIG & 0x80 ) ) // poll GPIFTRIG.7 Done bit
131 1 {
132 2 ;
133 2 }
134 1
135 1 // using register(s) in XDATA space, dummy read
136 1 g_data = XGPIFSGLDATLX; // trigger GPIF
137 1 // ...single word read transaction
138 1
139 1 while( !( GPIFTRIG & 0x80 ) ) // poll GPIFTRIG.7 Done bit
140 1 {
141 2 ;
142 2 }
143 1
144 1 // using register(s) in XDATA space, GPIF reads word from PERIPHERAL
145 1 *gdata = ( ( WORD )XGPIFSGLDATH << 8 ) | ( WORD )XGPIFSGLDATLNOX;
146 1 }
147 #define GPIFTRIGRD 4
148
149 #define GPIF_EP2 0
150 #define GPIF_EP4 1
151 #define GPIF_EP6 2
152 #define GPIF_EP8 3
153
154 void Peripheral_FIFORead( BYTE FIFO_EpNum )
155 {
156 1 while( !( GPIFTRIG & 0x80 ) ) // poll GPIFTRIG.7 GPIF Done bit
157 1 {
158 2 ;
159 2 }
160 1
161 1 // trigger FIFO read transaction(s), using SFR
162 1 GPIFTRIG = GPIFTRIGRD | FIFO_EpNum; // R/W=1, EP[1:0]=FIFO_EpNum for EPx read(s)
163 1 }
164 //---------------------------------------------------------------------------//
165 /*void GPIF_LOAD_SINGLE()//单通道
166 {
167 }
168
169 void GPIF_LOAD_DOUBLE()//双通道
170 {
171 }
172
173 void GPIF_LOAD_TRI() //三通道
174 {
175
176 }
177 void GPIF_LOAD_QUAD() //四通道
C51 COMPILER V7.10 GPIF 10/26/2005 09:28:04 PAGE 4
178 {
179
180 }
181 void GPIF_LOAD_PWDW() //AD 掉电模式
182 {
183 Peripheral_SingleWordWrite(0x2000);//Set AD Power Down
184 }*/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 150 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 128 1
PDATA SIZE = ---- ----
DATA SIZE = 7 ----
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 + -