📄 read_reg.lst
字号:
C51 COMPILER V6.12 READ_REG 03/13/2007 09:54:33 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE READ_REG
OBJECT MODULE PLACED IN .\read_reg.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE .\read_reg.c COMPACT DEBUG OBJECTEXTEND
stmt level source
1 #include "reg51.h"
2 #include "read_reg.h"
3 #include "usbmass.h"
4
5 void _nop_ (void);
6
7 U8 gStallMark;
8 U32 gWaitPktTicks = UMO_WAIT_USB_PKT_TICKS; //timeout value for usb packet waiting
9
10 XD U8 gEPOUT; //out-endpoint
11 XD U8 gEPIN; //in-endpoint
12 XD U8 volatile gEP;
13 XD U8 gIrqEn;
14 XD U8 gMxPkSz; //maximum packet size (bulk)
15 XD U8 gMxPkSzCtr; //maximum packet size (control)
16 XD U8 gIFSC; //interface sub-class
17 XD U8 gUsbVer; //USB Version
18 XD U8 gUsbCfg;
19 XD U8 gLun; //"LUN" for USB_XXX routines
20 XD U8 gDevAddr;
21
22 XD U16 gVID;
23 XD U16 gPID;
24
25 U8 gUsbIrq; //DEV_WaitForIrq, DEV_WaitMS, WaitPacketDone
26
27 U32 msec;
28
29
30
31 U8 gInitState = IS_NO_INIT;
32
33
34
35 //////////////////////////////////////////////////////////
36 int enable_debug=0;
37 char gUsbTimeOver=0;
38
39 int gSecCnt=0;
40 int gSecAddr=-1;
41
42 ///////////////////////////////////////////////////////////
43 extern XD U8 gCBW[31]; //SCSI CBW 31byte or
44 extern XD U8 gMaxLun; //gMaxLun = ??á??· LUN
45
46 /*
47 void test(void)
48 {
49 char i = 0;
50 /* for(i=0;i<n;i++)
51 {
52 _nop_();
53 }
54 } */
55 void clock_initial() reentrant using 0
C51 COMPILER V6.12 READ_REG 03/13/2007 09:54:33 PAGE 2
56 {
57 1 TMOD=0x01;
58 1 TF0=0;
59 1 TR0=0;
60 1 TH0=0xf8;
61 1 TL0=0x30;
62 1 TR0=1;
63 1 ET0=1;
64 1 EA=1;
65 1 }
66 void clock_int() interrupt 1 using 1
67 {
68 1 if(--msec==0)
69 1 {
70 2 gUsbTimeOver=1;
71 2 //ET0=0;
72 2 //EA=0;
73 2 }
74 1 }
75 void RISC_start_timer2(U32 n)
76 {
77 1 msec=n;
78 1 clock_initial();
79 1 }
80
81 int usb_irq_poll()
82 {
83 1 return (IO_IRQ_PENDING);
84 1 }
85
86 int usb_plugin()
87 {
88 1 return (IO_PLUGIN_DET);
89 1 }
90
91 void RISC_sleep_nsec(U32 n)
92 {
93 1 U32 nusec=n/1000;
94 1 U32 i;
95 1 for(i=0;i<nusec;i++)
96 1 {
97 2 _nop_();
98 2 _nop_();
99 2 }
100 1 }
101
102
103 void RISC_sleep_cycles(int n)
104 {
105 1 while(n--)
106 1 {
107 2 _nop_();
108 2 }
109 1 }
110
111 void DEV_TimerStart(int msec)
112 {
113 1 gUsbTimeOver=0;
114 1 RISC_start_timer2(msec);
115 1
116 1 }
117
C51 COMPILER V6.12 READ_REG 03/13/2007 09:54:33 PAGE 3
118 /******************************************************************************
119 * MemCopy
120 ******************************************************************************/
121 /*
122 void MemCopy(U8* pTrg, U8* pSrc, U16 bytCnt)
123 {
124 while(bytCnt-->0) *pTrg++ = *pSrc++;
125
126 return;
127 }
128 */
129
130
131 /******************************************************************************
132 * MemFill
133 ******************************************************************************/
134
135 void MemFill(U8* buf, U8 val, U16 bytCnt)
136 {
137 1 while(bytCnt-->0) *buf++ = val;
138 1
139 1 return;
140 1 }
141
142 /*
143 void DEV_WriteReg(U8 addr, U8 regdata)
144 {
145 MCU_CS=1;
146 MCU_A0=1;
147 MCU_WR=1;
148 P0=addr;
149
150 MCU_A0=0;
151 MCU_CS=0;
152 MCU_WR=0;
153
154
155
156 _nop_();
157 _nop_();
158 _nop_();
159 MCU_WR=1;
160 MCU_CS=1;
161 MCU_A0=1;
162
163 _nop_();
164 _nop_();
165 _nop_();
166
167 P0=regdata;
168
169 MCU_CS=0;
170 MCU_WR=0;
171
172 _nop_();
173 _nop_();
174 _nop_();
175
176
177 MCU_WR=1;
178 MCU_CS=1;
179
C51 COMPILER V6.12 READ_REG 03/13/2007 09:54:33 PAGE 4
180 }
181
182
183 U8 DEV_ReadReg(U8 addr)
184 {
185 register U8 regdata;
186
187 MCU_RD=1;
188 MCU_A0=1;
189 MCU_CS=1;
190 MCU_WR=1;
191
192
193
194 P0=addr;
195 MCU_A0=0;
196 MCU_CS=0;
197 MCU_WR=0;
198
199
200
201
202 _nop_();
203 _nop_();
204 _nop_();
205
206 MCU_WR=1;
207 MCU_A0=1;
208 MCU_CS=1;
209
210 _nop_();
211 _nop_();
212 _nop_();
213 P0=0xFF; /////
214 MCU_CS=0;
215 MCU_RD=0;
216
217 regdata=P0;
218
219 MCU_RD=1;
220
221 MCU_CS=1;
222
223 return regdata;
224 }
225
226 */
227
228
229 void DEV_WriteReg(U8 addr, U8 regdata)
230 {
231 1 MCU_CS=1;
232 1 MCU_A0=1;
233 1 MCU_WR=1;
234 1 P0=addr;
235 1
236 1 MCU_A0=0;
237 1 MCU_CS=0;
238 1 MCU_WR=0;
239 1
240 1
241 1
C51 COMPILER V6.12 READ_REG 03/13/2007 09:54:33 PAGE 5
242 1 _nop_();
243 1 _nop_();
244 1 _nop_();
245 1 _nop_();
246 1 _nop_();
247 1 _nop_();
248 1
249 1 MCU_WR=1;
250 1 _nop_();
251 1 MCU_CS=1;
252 1
253 1 _nop_();
254 1 _nop_();
255 1
256 1 MCU_A0=1;
257 1
258 1 _nop_();
259 1 _nop_();
260 1 _nop_();
261 1 _nop_();
262 1 _nop_();
263 1 _nop_();
264 1
265 1 P0=regdata;
266 1
267 1 _nop_();
268 1 _nop_();
269 1
270 1 MCU_CS=0;
271 1 MCU_WR=0;
272 1
273 1 _nop_();
274 1 _nop_();
275 1 _nop_();
276 1
277 1
278 1 MCU_WR=1;
279 1 _nop_();
280 1 MCU_CS=1;
281 1
282 1 _nop_();
283 1 _nop_();
284 1 _nop_();
285 1 _nop_();
286 1 _nop_();
287 1 _nop_();
288 1
289 1 }
290
291
292 U8 DEV_ReadReg(U8 addr)
293 {
294 1 register U8 regdata;
295 1
296 1 MCU_RD=1;
297 1 MCU_A0=1;
298 1 MCU_CS=1;
299 1 MCU_WR=1;
300 1
301 1
302 1
303 1 P0=addr;
C51 COMPILER V6.12 READ_REG 03/13/2007 09:54:33 PAGE 6
304 1 MCU_A0=0;
305 1 MCU_CS=0;
306 1 MCU_WR=0;
307 1
308 1
309 1
310 1 _nop_();
311 1 _nop_();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -