📄 d12ci.lst
字号:
C51 COMPILER V7.09 D12CI 05/11/2005 17:30:28 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE D12CI
OBJECT MODULE PLACED IN D12CI.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE D12CI.C BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "d12ci.h"
2 #include "main.h"
*** ERROR C129 IN LINE 101 OF MAIN.H: missing ';' before 'struct'
3 //#include "44b.h"
4
5 extern EPPFLAGS bEPPflags;
6
7
8 void outportdata(unsigned char val)
9 {
10 DISABLE;
11
12 D12_DATA=val;
13
14 ENABLE;
15 }
16
17
18 void outportcmd(unsigned char val)
19 {
20 DISABLE;
21
22 D12_COMMAND=val;
23
24 ENABLE;
25 }
26
27
28 unsigned char inportb(void)
29 {
30 unsigned char c;
31 DISABLE;
32 c = D12_DATA;
33 ENABLE;
34 return c;
35 }
36
37
38 void D12_SetAddressEnable(unsigned char bAddress, unsigned char bEnable)
39 {
40 if(bEPPflags.bits.in_isr == 0)
41 DISABLE;
42
43 outportcmd(0xD0);
44 if(bEnable)
45 bAddress |= 0x80;
46 outportdata(bAddress);
47
48 if(bEPPflags.bits.in_isr == 0)
49 ENABLE;
50 // Uart_Printf("E D12_SetAddressEnable\n");
51 }
52
53 void D12_SetEndpointEnable(unsigned char bEnable)
54 {
C51 COMPILER V7.09 D12CI 05/11/2005 17:30:28 PAGE 2
55 if(bEPPflags.bits.in_isr == 0)
56 DISABLE;
57
58 outportcmd(0xD8);
59 if(bEnable)
60 outportdata(1);
61 else
62 outportdata(0);
63
64 if(bEPPflags.bits.in_isr == 0)
65 ENABLE;
66 // Uart_Printf("E D12_SetEndpointEnable\n");
67 }
68
69 void D12_SetMode(unsigned char bConfig, unsigned char bClkDiv)
70 {
71 if(bEPPflags.bits.in_isr == 0)
72 DISABLE;
73 outportcmd(0xF3);
74 outportdata(bConfig);
75 outportdata(bClkDiv);
76 if(bEPPflags.bits.in_isr == 0)
77 ENABLE;
78 // Uart_Printf("E D12_SetMode\n");
79
80 }
81
82 void D12_SetDMA(unsigned char bMode)
83 {
84
85 if(bEPPflags.bits.in_isr == 0)
86 DISABLE;
87 outportcmd(0xFB);
88 outportdata(bMode);
89 if(bEPPflags.bits.in_isr == 0)
90 ENABLE;
91 // Uart_Printf("E D12_SetDMA\n");
92
93 }
94 /*
95 unsigned char D12_GetDMA(void)
96 {
97 outportcmd(0xFB);
98 return(inportb());
99 }
100 */
101 /*
102 unsigned char D12_ReadEndpointStatus(unsigned char bEndp)
103 {
104 unsigned char c;
105
106 if(bEPPflags.bits.in_isr == 0)
107 DISABLE;
108
109 outportcmd(0x80 + bEndp);
110 c = inportb();
111
112 if(bEPPflags.bits.in_isr == 0)
113 ENABLE;
114
115 return c;
116 }
C51 COMPILER V7.09 D12CI 05/11/2005 17:30:28 PAGE 3
117 */
118 void D12_SetEndpointStatus(unsigned char bEndp, unsigned char bStalled)
119 {
120 if(bEPPflags.bits.in_isr == 0)
121 DISABLE;
122
123 outportcmd(0x40 + bEndp);
124 outportdata(bStalled);
125
126 if(bEPPflags.bits.in_isr == 0)
127 ENABLE;
128 // Uart_Printf("E D12_SetEndpointStatus\n");
129 }
130
131
132 /*
133 void D12_SendResume(void)
134 {
135 outportcmd(0xF6);
136 }
137 */
138
139 unsigned char D12_WriteEndpoint(unsigned char endp, unsigned char len, unsigned char * buf)
140 {
141 unsigned char i;
142
143 if(bEPPflags.bits.in_isr == 0)
144 DISABLE;
145 //---------------------
146 outportcmd(endp); //选择端点
147 inportb(); //读入满/空状态
148
149 outportcmd(0xF0); //写缓冲区命令
150 outportdata(0);
151 outportdata(len);
152
153 for(i=0; i<len; i++)
154 outportdata(*(buf+i));
155
156 outportcmd(0xFA); //驶购冲区有效
157
158 //--------------------------------
159 if(bEPPflags.bits.in_isr == 0)
160 ENABLE;
161 // Uart_Printf("E D12_WriteEndpoint\n");
162
163 return len;
164 }
165 void D12_AcknowledgeEndpoint(unsigned char endp)
166 {
167 outportcmd( endp); //选择端点
168 outportcmd(0xF1); //应答设置
169 if(endp == 0)
170 outportcmd(0xF2); //缓冲区清零
171 // Uart_Printf("E D12_AcknowledgeEndpoint%d\n",endp);
172 }
173 unsigned short D12_ReadInterruptRegister(void)
174 {
175 unsigned char b1;
176 unsigned int j;
177 //outportb(D12_COMMAND, 0xF4);
178 outportcmd(0xF4);
C51 COMPILER V7.09 D12CI 05/11/2005 17:30:28 PAGE 4
179 b1 = inportb();
180 j = inportb();
181 j <<= 8;
182 j += b1;
183 // if(j) Uart_Printf("E D12_ReadInterruptRegister:%x\n",j);//printf the intterrupt number if it's not zero
-.
184 return j;
185 }
186
187 unsigned char D12_ReadLastTransactionStatus(unsigned char bEndp)
188 {
189 //outportb(D12_COMMAND, 0x40 + bEndp);
190 outportcmd(0x40 + bEndp);
191 // Uart_Printf("E D12_ReadLastTransactionStatus\n");
192 return inportb();
193 }
194 unsigned char D12_ReadEndpoint(unsigned char endp, unsigned char len, unsigned char * buf)
195 {
196 unsigned char i, j;
197
198
199 if(bEPPflags.bits.in_isr == 0)
200 DISABLE;
201 //--------------------------------
202 outportcmd(endp); //选择端点
203 if((inportb() & D12_FULLEMPTY) == 0) { //如果缓冲区为空,则返回
204 if(bEPPflags.bits.in_isr == 0)
205 ENABLE;
206 return 0;
207 }
208
209 outportcmd(0xF0); //读缓冲区
210 j = inportb();
211 j = inportb();
212
213 if(j > len)
214 j = len;
215
216 for(i=0; i<j; i++)
217 *(buf+i) = inportb();
218
219 outportcmd(0xF2); //缓冲区清空
220 //-------------------------------
221 if(bEPPflags.bits.in_isr == 0)
222 ENABLE;
223
224 // Uart_Printf("E D12_ReadEndpoint:%d,%d character read\n",endp,j);
225 return j;
226 }
227
228 unsigned char D12_SelectEndpoint(unsigned char bEndp)
229 {
230 unsigned char c;
231
232 if(bEPPflags.bits.in_isr == 0)
233 DISABLE;
234
235 outportcmd(bEndp);
236 c = inportb();
237
238 if(bEPPflags.bits.in_isr == 0)
239 ENABLE;
C51 COMPILER V7.09 D12CI 05/11/2005 17:30:28 PAGE 5
240
241 // Uart_Printf("E D12_SelectEndpoint\n");
242 return c;
243 }
244
C51 COMPILATION COMPLETE. 0 WARNING(S), 1 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -