📄 bulkloop.lst
字号:
303 5 break;
C51 COMPILER V6.12 BULKLOOP 08/03/2007 15:03:55 PAGE 6
304 5 case 0xc4:
305 5 IOA = IOA & 0xf7;
306 5 break;
307 5 case 0xc5:
308 5 IOA = IOA & 0xef;
309 5 break;
310 5 case 0xc6:
311 5 IOA = IOA & 0xdf;
312 5 break;
313 5 case 0xc7:
314 5 IOA = IOA & 0xbf;
315 5 break;
316 5 case 0xc8:
317 5 IOA = IOA & 0x7f;
318 5 break;
319 5 case 0xc9: //clear 0 end
320 5 IOB = IOB & 0x7f;
321 5 break;
322 5 default:
323 5 break;
324 5 }
325 4 for (i=0;i<64;i+=2)
326 4 {
327 5 EP8FIFOBUF[i] = IOA;
328 5 EP8FIFOBUF[i+1] = IOB;
329 5 }
330 4 EP8BCH = 0x0;
331 4 SYNCDELAY;
332 4 EP8BCL = 64; // arm EP8IN
333 4 SYNCDELAY;
334 4 }
335 3
336 3
337 3 SYNCDELAY;
338 3 EP4BCL = 0x80; // re(arm) EP4OUT
339 3 }
340 2 }
341 1 }
342
343 BOOL TD_Suspend(void) // Called before the device goes into suspend mode
344 {
345 1 return(TRUE);
346 1 }
347
348 BOOL TD_Resume(void) // Called after the device resumes
349 {
350 1 return(TRUE);
351 1 }
352
353 //-----------------------------------------------------------------------------
354 // Device Request hooks
355 // The following hooks are called by the end point 0 device request parser.
356 //-----------------------------------------------------------------------------
357
358 BOOL DR_GetDescriptor(void)
359 {
360 1 return(TRUE);
361 1 }
362
363 BOOL DR_SetConfiguration(void) // Called when a Set Configuration command is received
364 {
365 1 Configuration = SETUPDAT[2];
C51 COMPILER V6.12 BULKLOOP 08/03/2007 15:03:55 PAGE 7
366 1 return(TRUE); // Handled by user code
367 1 }
368
369 BOOL DR_GetConfiguration(void) // Called when a Get Configuration command is received
370 {
371 1 EP0BUF[0] = Configuration;
372 1 EP0BCH = 0;
373 1 EP0BCL = 1;
374 1 return(TRUE); // Handled by user code
375 1 }
376
377 BOOL DR_SetInterface(void) // Called when a Set Interface command is received
378 {
379 1 AlternateSetting = SETUPDAT[2];
380 1 return(TRUE); // Handled by user code
381 1 }
382
383 BOOL DR_GetInterface(void) // Called when a Set Interface command is received
384 {
385 1 EP0BUF[0] = AlternateSetting;
386 1 EP0BCH = 0;
387 1 EP0BCL = 1;
388 1 return(TRUE); // Handled by user code
389 1 }
390
391 BOOL DR_GetStatus(void)
392 {
393 1 return(TRUE);
394 1 }
395
396 BOOL DR_ClearFeature(void)
397 {
398 1 return(TRUE);
399 1 }
400
401 BOOL DR_SetFeature(void)
402 {
403 1 return(TRUE);
404 1 }
405
406 BOOL DR_VendorCmnd(void)
407 {
408 1 BYTE tmp;
409 1
410 1 switch (SETUPDAT[1])
411 1 {
412 2 case VR_NAKALL_ON:
413 2 tmp = FIFORESET;
414 2 tmp |= bmNAKALL;
415 2 SYNCDELAY;
416 2 FIFORESET = tmp;
417 2 break;
418 2 case VR_NAKALL_OFF:
419 2 tmp = FIFORESET;
420 2 tmp &= ~bmNAKALL;
421 2 SYNCDELAY;
422 2 FIFORESET = tmp;
423 2 break;
424 2 default:
425 2 return(TRUE);
426 2 }
427 1
C51 COMPILER V6.12 BULKLOOP 08/03/2007 15:03:55 PAGE 8
428 1 return(FALSE);
429 1 }
430
431 //-----------------------------------------------------------------------------
432 // USB Interrupt Handlers
433 // The following functions are called by the USB interrupt jump table.
434 //-----------------------------------------------------------------------------
435
436 // Setup Data Available Interrupt Handler
437 void ISR_Sudav(void) interrupt 0
438 {
439 1 GotSUD = TRUE; // Set flag
440 1 EZUSB_IRQ_CLEAR();
441 1 USBIRQ = bmSUDAV; // Clear SUDAV IRQ
442 1 }
443
444 // Setup Token Interrupt Handler
445 void ISR_Sutok(void) interrupt 0
446 {
447 1 EZUSB_IRQ_CLEAR();
448 1 USBIRQ = bmSUTOK; // Clear SUTOK IRQ
449 1 }
450
451 void ISR_Sof(void) interrupt 0
452 {
453 1 EZUSB_IRQ_CLEAR();
454 1 USBIRQ = bmSOF; // Clear SOF IRQ
455 1 }
456
457 void ISR_Ures(void) interrupt 0
458 {
459 1 // whenever we get a USB reset, we should revert to full speed mode
460 1 pConfigDscr = pFullSpeedConfigDscr;
461 1 ((CONFIGDSCR xdata *) pConfigDscr)->type = CONFIG_DSCR;
462 1 pOtherConfigDscr = pHighSpeedConfigDscr;
463 1 ((CONFIGDSCR xdata *) pOtherConfigDscr)->type = OTHERSPEED_DSCR;
464 1
465 1 EZUSB_IRQ_CLEAR();
466 1 USBIRQ = bmURES; // Clear URES IRQ
467 1 }
468
469 void ISR_Susp(void) interrupt 0
470 {
471 1 Sleep = TRUE;
472 1 EZUSB_IRQ_CLEAR();
473 1 USBIRQ = bmSUSP;
474 1 }
475
476 void ISR_Highspeed(void) interrupt 0
477 {
478 1 if (EZUSB_HIGHSPEED())
479 1 {
480 2 pConfigDscr = pHighSpeedConfigDscr;
481 2 ((CONFIGDSCR xdata *) pConfigDscr)->type = CONFIG_DSCR;
482 2 pOtherConfigDscr = pFullSpeedConfigDscr;
483 2 ((CONFIGDSCR xdata *) pOtherConfigDscr)->type = OTHERSPEED_DSCR;
484 2 }
485 1
486 1 EZUSB_IRQ_CLEAR();
487 1 USBIRQ = bmHSGRANT;
488 1 }
489 void ISR_Ep0ack(void) interrupt 0
C51 COMPILER V6.12 BULKLOOP 08/03/2007 15:03:55 PAGE 9
490 {
491 1 }
492 void ISR_Stub(void) interrupt 0
493 {
494 1 }
495 void ISR_Ep0in(void) interrupt 0
496 {
497 1 }
498 void ISR_Ep0out(void) interrupt 0
499 {
500 1 }
501 void ISR_Ep1in(void) interrupt 0
502 {
503 1 }
504 void ISR_Ep1out(void) interrupt 0
505 {
506 1 }
507 void ISR_Ep2inout(void) interrupt 0
508 {
509 1 }
510 void ISR_Ep4inout(void) interrupt 0
511 {
512 1 }
513 void ISR_Ep6inout(void) interrupt 0
514 {
515 1 }
516 void ISR_Ep8inout(void) interrupt 0
517 {
518 1 }
519 void ISR_Ibn(void) interrupt 0
520 {
521 1 }
522 void ISR_Ep0pingnak(void) interrupt 0
523 {
524 1 }
525 void ISR_Ep1pingnak(void) interrupt 0
526 {
527 1 }
528 void ISR_Ep2pingnak(void) interrupt 0
529 {
530 1 }
531 void ISR_Ep4pingnak(void) interrupt 0
532 {
533 1 }
534 void ISR_Ep6pingnak(void) interrupt 0
535 {
536 1 }
537 void ISR_Ep8pingnak(void) interrupt 0
538 {
539 1 }
540 void ISR_Errorlimit(void) interrupt 0
541 {
542 1 }
543 void ISR_Ep2piderror(void) interrupt 0
544 {
545 1 }
546 void ISR_Ep4piderror(void) interrupt 0
547 {
548 1 }
549 void ISR_Ep6piderror(void) interrupt 0
550 {
551 1 }
C51 COMPILER V6.12 BULKLOOP 08/03/2007 15:03:55 PAGE 10
552 void ISR_Ep8piderror(void) interrupt 0
553 {
554 1 }
555 void ISR_Ep2pflag(void) interrupt 0
556 {
557 1 }
558 void ISR_Ep4pflag(void) interrupt 0
559 {
560 1 }
561 void ISR_Ep6pflag(void) interrupt 0
562 {
563 1 }
564 void ISR_Ep8pflag(void) interrupt 0
565 {
566 1 }
567 void ISR_Ep2eflag(void) interrupt 0
568 {
569 1 }
570 void ISR_Ep4eflag(void) interrupt 0
571 {
572 1 }
573 void ISR_Ep6eflag(void) interrupt 0
574 {
575 1 }
576 void ISR_Ep8eflag(void) interrupt 0
577 {
578 1 }
579 void ISR_Ep2fflag(void) interrupt 0
580 {
581 1 }
582 void ISR_Ep4fflag(void) interrupt 0
583 {
584 1 }
585 void ISR_Ep6fflag(void) interrupt 0
586 {
587 1 }
588 void ISR_Ep8fflag(void) interrupt 0
589 {
590 1 }
591 void ISR_GpifComplete(void) interrupt 0
592 {
593 1 }
594 void ISR_GpifWaveform(void) interrupt 0
595 {
596 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1063 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 1
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 + -