📄 fpusb.lst
字号:
265 1 return(TRUE);
266 1 }
267
268 BOOL DR_SetConfiguration(void) // Called when a Set Configuration command is received
269 {
270 1 Configuration = SETUPDAT[2];
271 1 return(TRUE); // Handled by user code
272 1 }
273
274 BOOL DR_GetConfiguration(void) // Called when a Get Configuration command is received
275 {
276 1 EP0BUF[0] = Configuration;
277 1 EP0BCH = 0;
278 1 EP0BCL = 1;
279 1 return(TRUE); // Handled by user code
280 1 }
281
282 BOOL DR_SetInterface(void) // Called when a Set Interface command is received
283 {
284 1 AlternateSetting = SETUPDAT[2];
285 1 return(TRUE); // Handled by user code
286 1 }
287
288 BOOL DR_GetInterface(void) // Called when a Set Interface command is received
289 {
290 1 EP0BUF[0] = AlternateSetting;
291 1 EP0BCH = 0;
292 1 EP0BCL = 1;
293 1 return(TRUE); // Handled by user code
294 1 }
295
296 BOOL DR_GetStatus(void)
297 {
298 1 return(TRUE);
299 1 }
300
301 BOOL DR_ClearFeature(void)
302 {
303 1 return(TRUE);
C51 COMPILER V6.10 FPUSB 12/04/2003 12:14:10 PAGE 6
304 1 }
305
306 BOOL DR_SetFeature(void)
307 {
308 1 return(TRUE);
309 1 }
310
311 BOOL DR_VendorCmnd(void)
312 {
313 1 switch(SETUPDAT[1])
314 1 {
315 2 case VR_SEND_COMMAND:
316 2 PA0 = SETUPDAT[2] & 1;
317 2 PA1 = (SETUPDAT[2] >> 1) & 1;
318 2
319 2 PA3 = 0;
320 2 PA3 = 1;
321 2
322 2 break;
323 2 case VR_RESET_FIFO:
324 2
325 2
326 2 FIFORESET = 0x80; // reset all FIFOs
327 2 SYNCDELAY;
328 2 FIFORESET = 0x02;
329 2 SYNCDELAY;
330 2 FIFORESET = 0x04;
331 2 SYNCDELAY;
332 2 FIFORESET = 0x06;
333 2 SYNCDELAY;
334 2 FIFORESET = 0x08;
335 2 SYNCDELAY;
336 2 FIFORESET = 0x00;
337 2 SYNCDELAY;
338 2
339 2 break;
340 2 }
341 1
342 1 return(FALSE); // no error; command handled OK
343 1 }
344
345 //-----------------------------------------------------------------------------
346 // USB Interrupt Handlers
347 // The following functions are called by the USB interrupt jump table.
348 //-----------------------------------------------------------------------------
349
350 // Setup Data Available Interrupt Handler
351 void ISR_Sudav(void) interrupt 0
352 {
353 1 GotSUD = TRUE; // Set flag
354 1 EZUSB_IRQ_CLEAR();
355 1 USBIRQ = bmSUDAV; // Clear SUDAV IRQ
356 1 }
357
358 // Setup Token Interrupt Handler
359 void ISR_Sutok(void) interrupt 0
360 {
361 1 EZUSB_IRQ_CLEAR();
362 1 USBIRQ = bmSUTOK; // Clear SUTOK IRQ
363 1 }
364
365 void ISR_Sof(void) interrupt 0
C51 COMPILER V6.10 FPUSB 12/04/2003 12:14:10 PAGE 7
366 {
367 1 EZUSB_IRQ_CLEAR();
368 1 USBIRQ = bmSOF; // Clear SOF IRQ
369 1 }
370
371 void ISR_Ures(void) interrupt 0
372 {
373 1 if (EZUSB_HIGHSPEED())
374 1 {
375 2 pConfigDscr = pHighSpeedConfigDscr;
376 2 pOtherConfigDscr = pFullSpeedConfigDscr;
377 2 }
378 1 else
379 1 {
380 2 pConfigDscr = pFullSpeedConfigDscr;
381 2 pOtherConfigDscr = pHighSpeedConfigDscr;
382 2 }
383 1
384 1 EZUSB_IRQ_CLEAR();
385 1 USBIRQ = bmURES; // Clear URES IRQ
386 1 }
387
388 void ISR_Susp(void) interrupt 0
389 {
390 1 Sleep = TRUE;
391 1 EZUSB_IRQ_CLEAR();
392 1 USBIRQ = bmSUSP;
393 1
394 1 }
395
396 void ISR_Highspeed(void) interrupt 0
397 {
398 1 if (EZUSB_HIGHSPEED())
399 1 {
400 2 pConfigDscr = pHighSpeedConfigDscr;
401 2 pOtherConfigDscr = pFullSpeedConfigDscr;
402 2
403 2 }
404 1 else
405 1 {
406 2 pConfigDscr = pFullSpeedConfigDscr;
407 2 pOtherConfigDscr = pHighSpeedConfigDscr;
408 2
409 2 }
410 1
411 1 EZUSB_IRQ_CLEAR();
412 1 USBIRQ = bmHSGRANT;
413 1
414 1 }
415 void ISR_Ep0ack(void) interrupt 0
416 {
417 1 }
418 void ISR_Stub(void) interrupt 0
419 {
420 1 }
421 void ISR_Ep0in(void) interrupt 0
422 {
423 1 }
424 void ISR_Ep0out(void) interrupt 0
425 {
426 1 }
427 void ISR_Ep1in(void) interrupt 0
C51 COMPILER V6.10 FPUSB 12/04/2003 12:14:10 PAGE 8
428 {
429 1 }
430 void ISR_Ep1out(void) interrupt 0
431 {
432 1 }
433 void ISR_Ep2inout(void) interrupt 0
434 {
435 1 }
436 void ISR_Ep4inout(void) interrupt 0
437 {
438 1 }
439 void ISR_Ep6inout(void) interrupt 0
440 {
441 1 }
442 void ISR_Ep8inout(void) interrupt 0
443 {
444 1 }
445 void ISR_Ibn(void) interrupt 0
446 {
447 1 }
448 void ISR_Ep0pingnak(void) interrupt 0
449 {
450 1 }
451 void ISR_Ep1pingnak(void) interrupt 0
452 {
453 1 }
454 void ISR_Ep2pingnak(void) interrupt 0
455 {
456 1 }
457 void ISR_Ep4pingnak(void) interrupt 0
458 {
459 1 }
460 void ISR_Ep6pingnak(void) interrupt 0
461 {
462 1 }
463 void ISR_Ep8pingnak(void) interrupt 0
464 {
465 1 }
466 void ISR_Errorlimit(void) interrupt 0
467 {
468 1 }
469 void ISR_Ep2piderror(void) interrupt 0
470 {
471 1 }
472 void ISR_Ep4piderror(void) interrupt 0
473 {
474 1 }
475 void ISR_Ep6piderror(void) interrupt 0
476 {
477 1 }
478 void ISR_Ep8piderror(void) interrupt 0
479 {
480 1 }
481 void ISR_Ep2pflag(void) interrupt 0
482 {
483 1 }
484 void ISR_Ep4pflag(void) interrupt 0
485 {
486 1 }
487 void ISR_Ep6pflag(void) interrupt 0
488 {
489 1 }
C51 COMPILER V6.10 FPUSB 12/04/2003 12:14:10 PAGE 9
490 void ISR_Ep8pflag(void) interrupt 0
491 {
492 1 }
493 void ISR_Ep2eflag(void) interrupt 0
494 {
495 1 }
496 void ISR_Ep4eflag(void) interrupt 0
497 {
498 1 }
499 void ISR_Ep6eflag(void) interrupt 0
500 {
501 1 }
502 void ISR_Ep8eflag(void) interrupt 0
503 {
504 1 }
505 void ISR_Ep2fflag(void) interrupt 0
506 {
507 1 }
508 void ISR_Ep4fflag(void) interrupt 0
509 {
510 1 }
511 void ISR_Ep6fflag(void) interrupt 0
512 {
513 1 }
514 void ISR_Ep8fflag(void) interrupt 0
515 {
516 1 }
517 void ISR_GpifComplete(void) interrupt 0
518 {
519 1 }
520 void ISR_GpifWaveform(void) interrupt 0
521 {
522 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 824 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 ----
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -