📄 wdf_cypress_lib.lst
字号:
281 2 case 0x1:
282 2 epBytesCntHigh = 0;
283 2 epBytesCntLow = &EP1OUTBC;
284 2 break;
285 2 case 0x81:
286 2 epBytesCntHigh = 0;
287 2 epBytesCntLow = &EP1INBC;
288 2 break;
289 2 case 0x2:
290 2 case 0x82:
291 2 epBytesCntHigh = &EP2BCH;
292 2 epBytesCntLow = &EP2BCL;
293 2 break;
294 2 case 0x4:
295 2 case 0x84:
296 2 epBytesCntHigh = &EP4BCH;
297 2 epBytesCntLow = &EP4BCL;
298 2 break;
299 2 case 0x6:
300 2 case 0x86:
301 2 epBytesCntHigh = &EP6BCH;
302 2 epBytesCntLow = &EP6BCL;
303 2 break;
C51 COMPILER V7.06 WDF_CYPRESS_LIB 02/13/2008 21:37:10 PAGE 6
304 2 case 0x8:
305 2 case 0x88:
306 2 epBytesCntHigh = &EP8BCH;
307 2 epBytesCntLow = &EP8BCL;
308 2 break;
309 2 }
310 1
311 1 if (epBytesCntHigh)
312 1 {
313 2 DELAY;
314 2 *epBytesCntHigh = MSB(bytes_count);
315 2 }
316 1 DELAY;
317 1 *epBytesCntLow = LSB(bytes_count);
318 1
319 1 }
320
321 WORD WDF_GetEPByteCount(int ep)
322 {
323 1 WORD ret;
324 1
325 1 switch (ep)
326 1 {
327 2 case 0x1:
328 2 ret = EP1OUTBC;
329 2 break;
330 2 case 0x81:
331 2 ret = EP1INBC;
332 2 break;
333 2 case 0x2:
334 2 case 0x82:
335 2 ret = (EP2BCH << 8) + EP2BCL;
336 2 break;
337 2 case 0x4:
338 2 case 0x84:
339 2 ret = (EP4BCH << 8) + EP4BCL;
340 2 break;
341 2 case 0x6:
342 2 case 0x86:
343 2 ret = (EP6BCH << 8) + EP6BCL;
344 2 break;
345 2 case 0x8:
346 2 case 0x88:
347 2 ret = (EP8BCH << 8) + EP8BCL;
348 2 break;
349 2 }
350 1
351 1 return ret;
352 1 }
353
354 void WDF_I2CInit()
355 {
356 1 EZUSB_InitI2C();
357 1 }
358
359 BOOL WDF_I2CWrite(BYTE addr, BYTE len, BYTE xdata *dat)
360 {
361 1 return EZUSB_WriteI2C(addr, len, dat);
362 1 }
363
364 BOOL WDF_I2CRead(BYTE addr, BYTE len, BYTE xdata *dat)
365 {
C51 COMPILER V7.06 WDF_CYPRESS_LIB 02/13/2008 21:37:10 PAGE 7
366 1 return EZUSB_ReadI2C(addr, len, dat);
367 1 }
368
369 void WDF_I2CWaitForEEPROMWrite(BYTE addr)
370 {
371 1 EZUSB_WaitForEEPROMWrite(addr);
372 1 }
373
374 int WDF_I2CGetStatus()
375 {
376 1 return I2CPckt.status;
377 1 }
378
379 void WDF_I2CClearStatus()
380 {
381 1 if ((I2CPckt.status == I2C_BERROR) || (I2CPckt.status == I2C_NACK))
382 1 I2CPckt.status = I2C_IDLE;
383 1 }
384
385 #define LED_ADDR 0x21
386 void WDF_SetDigitLed(int digit)
387 {
388 1 BYTE xdata led_data;
389 1 BYTE xdata digits[] = { 0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82,
390 1 0xf8, 0x80, 0x98, 0x88, 0x83, 0xc6, 0xa1, 0x86, 0x8e };
391 1
392 1 if (digit < 0x0 || digit > 0xE)
393 1 led_data = 0x0; // Turn led off
394 1 else
395 1 led_data = digits[digit];
396 1
397 1 WDF_I2CWrite(LED_ADDR, 0x01, &led_data);
398 1 WDF_I2CWaitForEEPROMWrite(LED_ADDR);
399 1 }
C51 COMPILER V7.06 WDF_CYPRESS_LIB 02/13/2008 21:37:10 PAGE 8
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION _DataToggleReset (BEGIN)
; SOURCE LINE # 16
;---- Variable 'dir' assigned to Register 'R5' ----
;---- Variable 'ep' assigned to Register 'R6/R7' ----
; SOURCE LINE # 17
; SOURCE LINE # 21
0000 ED MOV A,R5
0001 C4 SWAP A
0002 54F0 ANL A,#0F0H
0004 4F ORL A,R7
0005 900000 E MOV DPTR,#TOGCTL
0008 F0 MOVX @DPTR,A
; SOURCE LINE # 22
0009 4420 ORL A,#020H
000B F0 MOVX @DPTR,A
; SOURCE LINE # 23
000C 22 RET
; FUNCTION _DataToggleReset (END)
; FUNCTION _WDF_EP1INConfig (BEGIN)
; SOURCE LINE # 25
;---- Variable 'type' assigned to Register 'R7' ----
; SOURCE LINE # 26
; SOURCE LINE # 27
0000 900000 E MOV DPTR,#EP1INCFG
0003 7480 MOV A,#080H
0005 F0 MOVX @DPTR,A
; SOURCE LINE # 28
0006 E0 MOVX A,@DPTR
0007 FE MOV R6,A
0008 EF MOV A,R7
0009 C4 SWAP A
000A 54F0 ANL A,#0F0H
000C FF MOV R7,A
000D EE MOV A,R6
000E 4F ORL A,R7
000F F0 MOVX @DPTR,A
; SOURCE LINE # 29
0010 7D01 MOV R5,#01H
0012 7F01 MOV R7,#01H
0014 7E00 MOV R6,#00H
0016 020000 R LJMP _DataToggleReset
; FUNCTION _WDF_EP1INConfig (END)
; FUNCTION _WDF_EP1OUTConfig (BEGIN)
; SOURCE LINE # 32
;---- Variable 'type' assigned to Register 'R7' ----
; SOURCE LINE # 33
; SOURCE LINE # 34
0000 900000 E MOV DPTR,#EP1OUTCFG
0003 7480 MOV A,#080H
0005 F0 MOVX @DPTR,A
; SOURCE LINE # 35
0006 E0 MOVX A,@DPTR
0007 FE MOV R6,A
0008 EF MOV A,R7
0009 C4 SWAP A
000A 54F0 ANL A,#0F0H
000C FF MOV R7,A
C51 COMPILER V7.06 WDF_CYPRESS_LIB 02/13/2008 21:37:10 PAGE 9
000D EE MOV A,R6
000E 4F ORL A,R7
000F F0 MOVX @DPTR,A
; SOURCE LINE # 36
0010 E4 CLR A
0011 FD MOV R5,A
0012 7F01 MOV R7,#01H
0014 FE MOV R6,A
0015 020000 R LJMP _DataToggleReset
; FUNCTION _WDF_EP1OUTConfig (END)
; FUNCTION _WDF_EP2Config (BEGIN)
; SOURCE LINE # 39
;---- Variable 'dir' assigned to Register 'R2' ----
0000 AA07 MOV R2,AR7
;---- Variable 'type' assigned to Register 'R5' ----
;---- Variable 'buffering' assigned to Register 'R3' ----
; SOURCE LINE # 41
; SOURCE LINE # 42
0002 900000 E MOV DPTR,#EP2CFG
0005 7480 MOV A,#080H
0007 F0 MOVX @DPTR,A
; SOURCE LINE # 43
0008 00 NOP
0009 00 NOP
000A 00 NOP
; SOURCE LINE # 44
000B E0 MOVX A,@DPTR
000C FE MOV R6,A
000D EA MOV A,R2
000E C4 SWAP A
000F 33 RLC A
0010 33 RLC A
0011 54C0 ANL A,#0C0H
0013 FC MOV R4,A
0014 EE MOV A,R6
0015 4C ORL A,R4
0016 F0 MOVX @DPTR,A
; SOURCE LINE # 45
0017 00 NOP
0018 00 NOP
0019 00 NOP
; SOURCE LINE # 46
001A E0 MOVX A,@DPTR
001B FF MOV R7,A
001C ED MOV A,R5
001D C4 SWAP A
001E 54F0 ANL A,#0F0H
0020 FE MOV R6,A
0021 EF MOV A,R7
0022 4E ORL A,R6
0023 F0 MOVX @DPTR,A
; SOURCE LINE # 47
0024 00 NOP
0025 00 NOP
0026 00 NOP
; SOURCE LINE # 48
0027 E0 MOVX A,@DPTR
0028 FF MOV R7,A
0029 E4 CLR A
002A B50009 R CJNE A,size+01H,?C0004
002D E500 R MOV A,size
C51 COMPILER V7.06 WDF_CYPRESS_LIB 02/13/2008 21:37:10 PAGE 10
002F B40404 CJNE A,#04H,?C0004
0032 7E08 MOV R6,#08H
0034 8002 SJMP ?C0005
0036 ?C0004:
0036 7E00 MOV R6,#00H
0038 ?C0005:
0038 EF MOV A,R7
0039 4E ORL A,R6
003A 900000 E MOV DPTR,#EP2CFG
003D F0 MOVX @DPTR,A
; SOURCE LINE # 49
003E 00 NOP
003F 00 NOP
0040 00 NOP
; SOURCE LINE # 50
0041 E0 MOVX A,@DPTR
0042 4B ORL A,R3
0043 F0 MOVX @DPTR,A
; SOURCE LINE # 51
0044 00 NOP
0045 00 NOP
0046 00 NOP
; SOURCE LINE # 53
0047 BD0110 CJNE R5,#01H,?C0006
004A BA010D CJNE R2,#01H,?C0006
; SOURCE LINE # 54
; SOURCE LINE # 55
004D 900000 E MOV DPTR,#EP2ISOINPKTS
0050 7480 MOV A,#080H
0052 F0 MOVX @DPTR,A
; SOURCE LINE # 57
0053 E0 MOVX A,@DPTR
0054 4500 R ORL A,nPacketPerMF+01H
0056 F0 MOVX @DPTR,A
; SOURCE LINE # 58
0057 00 NOP
0058 00 NOP
0059 00 NOP
; SOURCE LINE # 59
005A ?C0006:
; SOURCE LINE # 60
005A AD02 MOV R5,AR2
005C 7F02 MOV R7,#02H
005E 7E00 MOV R6,#00H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -