📄 auxio.lst
字号:
350 2 case 3:
351 2 fun_support=FN03_SUP;
352 2 if(fun_support==1)
353 2 {
354 3 start_addr=ST_RD_03;
355 3 end_addr=EN_RD_03;
356 3 flg_read=1;
357 3 flg_analog=1;
358 3 flg_single=0;
359 3 }
360 2 else
361 2 {
362 3 flg_wrongfn=1;
363 3 }
364 2
C51 COMPILER V6.21 AUXIO 03/25/2008 15:43:14 PAGE 7
365 2 break;
366 2
367 2 case 4:
368 2 fun_support=FN04_SUP;
369 2 if(fun_support==1)
370 2 {
371 3 start_addr=ST_RD_03;
372 3 end_addr=EN_RD_03;
373 3 flg_read=1;
374 3 flg_analog=1;
375 3 flg_single=0;
376 3 }
377 2 else
378 2 {
379 3 flg_wrongfn=1;
380 3 }
381 2 break;
382 2 case 16:
383 2 fun_support=FN16_SUP;
384 2 if(fun_support==1)
385 2 {
386 3 start_addr=ST_WR_16;
387 3 end_addr=EN_WR_16;
388 3 flg_read=0;
389 3 flg_analog=1;
390 3 flg_single=0;
391 3 }
392 2 else
393 2 {
394 3 flg_wrongfn=1;
395 3 }
396 2 break;
397 2
398 2 default:
399 2 flg_wrongfn=1;
400 2 break;
401 2 }
402 1 if(flg_wrongfn==0)
403 1 {
404 2 rec_addr=DBYTE[rx_buff+2];
405 2 rec_addr=256*rec_addr;
406 2 temp1=DBYTE[rx_buff+3];
407 2 rec_addr=rec_addr+temp1;
408 2
409 2 if(flg_single==1)
410 2 {
411 3 rec_length=1;
412 3 }
413 2 else
414 2 {
415 3 rec_length=DBYTE[rx_buff+4];
416 3 rec_length=256*rec_length;
417 3 rec_length=rec_length+DBYTE[rx_buff+5];
418 3 }
419 2
420 2 if((rec_addr>=start_addr) && ((rec_addr+rec_length)<end_addr))
421 2 {
422 3 addr_offset = rec_addr - start_addr;
423 3 valid_ok=1;
424 3 }
425 2 else
426 2 {
C51 COMPILER V6.21 AUXIO 03/25/2008 15:43:14 PAGE 8
427 3 exc_code=2;
428 3 }
429 2 }
430 1 else
431 1 {
432 2 exc_code=1;
433 2 }
434 1 if(valid_ok==0)
435 1 {
436 2 result=65535;
437 2 mod_txcnt=0;
438 2
439 2 DBYTE[tx_buff]=mod1_devid;
440 2 cal_crc(mod1_devid);
441 2 mod_txcnt++;
442 2
443 2 temp1=mod_fn+0x80;
444 2 DBYTE[tx_buff+1]=temp1;
445 2 cal_crc(temp1);
446 2 mod_txcnt++;
447 2
448 2 DBYTE[tx_buff+2]=exc_code;
449 2 cal_crc(exc_code);
450 2 mod_txcnt++;
451 2
452 2 crch=result & 0x00FF;
453 2 result=result & 0xFF00;
454 2 crcl=result>>8;
455 2
456 2 DBYTE[tx_buff+3]=crch;
457 2 mod_txcnt++;
458 2
459 2 DBYTE[tx_buff+4]=crcl;
460 2 mod_txcnt++;
461 2
462 2 }
463 1 }
464
465 void read_response(unsigned char rx_buff,unsigned char tx_buff,unsigned char data_buff)
466 {
467 1 switch(mod_fn)
468 1 {
469 2 case 3:
470 2 read3_4(rx_buff,tx_buff,data_buff);
471 2 break;
472 2
473 2 case 4:
474 2 read3_4(rx_buff,tx_buff,data_buff);
475 2 break;
476 2
477 2 default:
478 2
479 2 break;
480 2 }
481 1 }
482
483 void com1_txmode(void)
484 {
485 1 DIR=1;
486 1
487 1 }
488
C51 COMPILER V6.21 AUXIO 03/25/2008 15:43:14 PAGE 9
489 void com1_tx(void)
490 {
491 1 SBUF=com1_txchar;
492 1 //P1_5=1;
493 1 }
494
495 void com1_rxmode(void)
496 {
497 1 DIR=0;
498 1
499 1 }
500
501 void cal_crc(unsigned char ch)
502 {
503 1 idata unsigned char i;
504 1 result=result^ch;
505 1 for (i=0;i<8;i++)
506 1 {
507 2 flag=result & 1;
508 2 result=result>>1;
509 2 if (flag==1)
510 2 {
511 3 result=result^poly;
512 3 }
513 2 }
514 1 }
515
516 void read3_4(unsigned char rx_buff,unsigned char tx_buff,unsigned char data_buff)
517 {
518 1 unsigned char temp1,temp2;
519 1 Input(); //update data
520 1 result=65535;
521 1 //mod_destaddr=MOD_TXBUFF;
522 1 mod_destaddr=tx_buff;
523 1 mod_txcnt=0;
524 1
525 1 DBYTE[mod_destaddr]=mod1_devid;
526 1 cal_crc(mod1_devid);
527 1 mod_txcnt++;
528 1 mod_destaddr++;
529 1
530 1 DBYTE[mod_destaddr]=mod_fn;
531 1 cal_crc(mod_fn);
532 1 mod_txcnt++;
533 1 mod_destaddr++;
534 1
535 1 mod_txlen=rec_length*2;
536 1 DBYTE[mod_destaddr]=mod_txlen;
537 1 cal_crc(mod_txlen);
538 1 mod_txcnt++;
539 1 mod_destaddr++;
540 1
541 1 //mod_srcaddr=MOD_DATABUFF;
542 1 mod_srcaddr=data_buff;
543 1 mod_srcaddr=mod_srcaddr+(addr_offset*2);
544 1 for(temp1=0;temp1<mod_txlen;temp1++)
545 1 {
546 2 temp2=DBYTE[mod_srcaddr];
547 2 mod_srcaddr++;
548 2 DBYTE[mod_destaddr]=temp2;
549 2 cal_crc(temp2);
550 2 mod_txcnt++;
C51 COMPILER V6.21 AUXIO 03/25/2008 15:43:14 PAGE 10
551 2 mod_destaddr++;
552 2 }
553 1
554 1 crch=result & 0x00FF;
555 1 result=result & 0xFF00;
556 1 crcl=result>>8;
557 1
558 1
559 1 DBYTE[mod_destaddr]=crch;
560 1 mod_txcnt++;
561 1 mod_destaddr++;
562 1
563 1 DBYTE[mod_destaddr]=crcl;
564 1 mod_txcnt++;
565 1 mod_destaddr++;
566 1 }
*** WARNING C280 IN LINE 516 OF AUXIO.C: 'rx_buff': unreferenced local variable
567
568 void store_data(unsigned char rx_buff,unsigned char tx_buff,unsigned char data_buff)
569 {
570 1 switch(mod_fn)
571 1 {
572 2
573 2 case 16:
574 2 //clear error flag
575 2 ndata = 1;
576 2 store16(rx_buff,tx_buff,data_buff);
577 2 break;
578 2
579 2 default:
580 2 break;
581 2
582 2 }
583 1
584 1 }
585
586 void store16(unsigned char rx_buff,unsigned char tx_buff,unsigned char data_buff)
587 {
588 1 unsigned char temp1,temp2;
589 1 mod_srcaddr=rx_buff+6;
590 1 rx_dbcnt=DBYTE[mod_srcaddr];//count
591 1 mod_srcaddr++;
592 1
593 1 mod_destaddr=data_buff;//data buf
594 1 //mod_destaddr=mod_destaddr+(addr_offset*2);
595 1
596 1 for(temp1=0; temp1<rx_dbcnt; temp1++)
597 1 {
598 2 temp2=DBYTE[mod_srcaddr];
599 2 mod_srcaddr++;
600 2 DBYTE[mod_destaddr]=temp2;
601 2 mod_destaddr++;
602 2 }
603 1 }
*** WARNING C280 IN LINE 586 OF AUXIO.C: 'tx_buff': unreferenced local variable
604
605 void write_response(unsigned char rx_buff,unsigned char tx_buff)
606 {
607 1 unsigned char temp1;
608 1 result=65535;
609 1 mod_destaddr=tx_buff;
610 1 mod_srcaddr=rx_buff;
C51 COMPILER V6.21 AUXIO 03/25/2008 15:43:14 PAGE 11
611 1
612 1 mod_txcnt=0;
613 1
614 1 DBYTE[mod_destaddr]=mod1_devid;
615 1 cal_crc(mod1_devid);
616 1 mod_txcnt++;
617 1 mod_destaddr++;
618 1
619 1 DBYTE[mod_destaddr]=mod_fn;
620 1 cal_crc(mod_fn);
621 1 mod_txcnt++;
622 1 mod_destaddr++;
623 1
624 1 temp1=DBYTE[mod_srcaddr+2];
625 1 DBYTE[mod_destaddr]=temp1;
626 1 cal_crc(temp1);
627 1 mod_txcnt++;
628 1 mod_destaddr++;
629 1
630 1 temp1=DBYTE[mod_srcaddr+3];
631 1 DBYTE[mod_destaddr]=temp1;
632 1 cal_crc(temp1);
633 1 mod_txcnt++;
634 1 mod_destaddr++;
635 1
636 1 temp1=DBYTE[mod_srcaddr+4];
637 1 DBYTE[mod_destaddr]=temp1;
638 1 cal_crc(temp1);
639 1 mod_txcnt++;
640 1 mod_destaddr++;
641 1
642 1 temp1=DBYTE[mod_srcaddr+5];
643 1 DBYTE[mod_destaddr]=temp1;
644 1 cal_crc(temp1);
645 1 mod_txcnt++;
646 1 mod_destaddr++;
647 1
648 1 crch=result & 0x00FF;
649 1 result=result & 0xFF00;
650 1 crcl=result>>8;
651 1
652 1
653 1 DBYTE[mod_destaddr]=crch;
654 1 mod_txcnt++;
655 1 mod_destaddr++;
656 1
657 1 DBYTE[mod_destaddr]=crcl;
658 1 mod_txcnt++;
659 1 mod_destaddr++;
660 1
661 1 }
662
663 void dly(unsigned int delay)
664 {
665 1 unsigned int dlycnt;
666 1 for(dlycnt=0;dlycnt<=delay;dlycnt++)
667 1 {
668 2 dummy=0;
669 2 }
670 1
671 1 }
672
C51 COMPILER V6.21 AUXIO 03/25/2008 15:43:14 PAGE 12
673 void Output(unsigned char out)
674 {
675 1 LEN = 1;
676 1 dly(5);
677 1 P0 = regbuff[2];
678 1 LEN = 0;
679 1 }
*** WARNING C280 IN LINE 673 OF AUXIO.C: 'out': unreferenced local variable
680
681 void Input(void)
682 {
683 1 BEN = 0;
684 1 dly(5);
685 1 regbuff[0] = P0;
686 1 BEN = 1;
687 1
688 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1310 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 11
IDATA SIZE = 62 2
BIT SIZE = 15 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 4 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -