?? serial.lst
字號:
512 8 UISemaphore.ucExamAreaSem = 0xff; //release semaphore
513 8 DelayCycle(16);
514 8 }
515 7 UISemaphore.ucExamAreaSem = 0xff; //release semaphore
516 7
517 7 ConnectFlag = FALSE;
518 7 UARTTransFrame = UARTTransHead;
519 7 ucNoAckCount = 0;
520 7 if(UARTTransHead != UARTTransTail)
521 7 {
522 8 StopTran = FALSE;
523 8 TI = 1;
524 8 }
525 7 }
526 6 ET2 = 1; //enable timer2
527 6 }
528 5 break;
529 5 case REQ_FRAME:
530 5 if(ucRcvLen == REQ_FRAME_LEN)
531 5 {//Length OK
532 6 WriteSerial(ucACK,ACK_FRAME_LEN); //應答ACK
533 6 break;
534 6 }
535 5 break;
536 5 default:
537 5 #ifdef NDS_UI_DEBUG
538 5 #ifdef NDS_UI_DEBUG_ENABLEDIS
539 5 SetCursorPos(0);
540 5 DisplayChar( ((*UARTRcvFrame)>>4)+0x30 );
541 5 DisplayChar( ((*UARTRcvFrame)&0x0f)+0x30 );
542 5 #endif
543 5 #endif
544 5 break;
545 5 }//switch(*UARTRcvFrame)
546 4
547 4 ////////////////////////////////////////////////
548 4 }//if( ucTmp == ETX)
549 3 }//if( ucTmp != STX)
550 2 }//if( UARTRcvHead != UARTRcvTail)
551 1 }
C51 COMPILER V6.14 SERIAL 07/15/2005 09:38:51 PAGE 10
552
553
554 /******************************************************************************
555 * *
556 * 將指定的ASCII轉換成HEX *
557 * *
558 ******************************************************************************/
559 unsigned char idata * AscToHex(unsigned char idata *Ptr_Uart,unsigned char data *ucHex)
560 {
561 1 *ucHex = *Ptr_Uart;
562 1 if( *ucHex >= 'a' )
563 1 {
564 2 *ucHex = *ucHex - 'a' +10;
565 2 }
566 1 else if( *ucHex >= 'A' )
567 1 {
568 2 *ucHex = *ucHex - 'A' +10;
569 2 }
570 1 else
571 1 {
572 2 *ucHex &= 0x0f;
573 2 }
574 1 *ucHex <<= 4;
575 1 if(++Ptr_Uart == UART_RcvBuffer+UARTBUFFERLEN_RX)
576 1 {
577 2 Ptr_Uart = UART_RcvBuffer;
578 2 }
579 1 if( *Ptr_Uart >= 'a' )
580 1 {
581 2 *ucHex += *Ptr_Uart - 'a' +10;
582 2 }
583 1 else if( *Ptr_Uart >= 'A' )
584 1 {
585 2 *ucHex += *Ptr_Uart - 'A' +10;
586 2 }
587 1 else
588 1 {
589 2 *ucHex += *Ptr_Uart - '0';
590 2 }
591 1 if(++Ptr_Uart == UART_RcvBuffer+UARTBUFFERLEN_RX)
592 1 {
593 2 Ptr_Uart = UART_RcvBuffer;
594 2 }
595 1 return Ptr_Uart;
596 1 }
597
598 /******************************************************************************
599 * *
600 * 從雙口ram取出系統參數,轉換成命令串并放入發送緩沖區 *
601 * *
602 ******************************************************************************/
603
604 void GetSysPara(void)
605 {
606 1 unsigned char ucCRC,ucTmp;
607 1
608 1 if(UIDataArea.SysPara.ucSysparaDirtyFlag & UpFreq_UP)
609 1 {//UpLink frequency has been chang
610 2 WriteSerial(ucUpfreq,3);
611 2 ucCRC = ucUpfreq[0]^ucUpfreq[1]^ucUpfreq[2];
612 2
613 2 ucTmp = UIDataArea.SysPara.ucUpFreq[0]>>4;
C51 COMPILER V6.14 SERIAL 07/15/2005 09:38:51 PAGE 11
614 2 if(ucTmp>9)
615 2 {
616 3 ucTmp += 'A' - 10;
617 3 }
618 2 else
619 2 {
620 3 ucTmp += '0';
621 3 }
622 2 ucCRC ^= ucTmp;
623 2 WriteSerialByte(ucTmp);
624 2 ucTmp = UIDataArea.SysPara.ucUpFreq[0]&0x0f;
625 2 if(ucTmp>9)
626 2 {
627 3 ucTmp += 'A' - 10;
628 3 }
629 2 else
630 2 {
631 3 ucTmp += '0';
632 3 }
633 2 ucCRC ^= ucTmp;
634 2 WriteSerialByte(ucTmp);
635 2
636 2 ucTmp = UIDataArea.SysPara.ucUpFreq[1]>>4;
637 2 if(ucTmp>9)
638 2 {
639 3 ucTmp += 'A' - 10;
640 3 }
641 2 else
642 2 {
643 3 ucTmp += '0';
644 3 }
645 2 ucCRC ^= ucTmp;
646 2 WriteSerialByte(ucTmp);
647 2 ucTmp = UIDataArea.SysPara.ucUpFreq[1]&0x0f;
648 2 if(ucTmp>9)
649 2 {
650 3 ucTmp += 'A' - 10;
651 3 }
652 2 else
653 2 {
654 3 ucTmp += '0';
655 3 }
656 2 ucCRC ^= ucTmp;
657 2 WriteSerialByte(ucTmp);
658 2
659 2 ucTmp = ucCRC>>4;
660 2 if(ucTmp>9)
661 2 {
662 3 ucTmp += 'A' - 10;
663 3 }
664 2 else
665 2 {
666 3 ucTmp += '0';
667 3 }
668 2 WriteSerialByte(ucTmp);
669 2 ucTmp = ucCRC&0x0f;
670 2 if(ucTmp>9)
671 2 {
672 3 ucTmp += 'A' - 10;
673 3 }
674 2 else
675 2 {
C51 COMPILER V6.14 SERIAL 07/15/2005 09:38:51 PAGE 12
676 3 ucTmp += '0';
677 3 }
678 2 WriteSerialByte(ucTmp);
679 2 WriteSerialByte(ETX);
680 2 }
681 1 if(UIDataArea.SysPara.ucSysparaDirtyFlag & DwnFreq_UP)
682 1 {//DownLink frequency has been chang
683 2 WriteSerial(ucDwnfreq,3);
684 2 ucCRC = ucDwnfreq[0]^ucDwnfreq[1]^ucDwnfreq[2];
685 2
686 2 ucTmp = UIDataArea.SysPara.ucDownFreq[0]>>4;
687 2 if(ucTmp>9)
688 2 {
689 3 ucTmp += 'A' - 10;
690 3 }
691 2 else
692 2 {
693 3 ucTmp += '0';
694 3 }
695 2 ucCRC ^= ucTmp;
696 2 WriteSerialByte(ucTmp);
697 2 ucTmp = UIDataArea.SysPara.ucDownFreq[0]&0x0f;
698 2 if(ucTmp>9)
699 2 {
700 3 ucTmp += 'A' - 10;
701 3 }
702 2 else
703 2 {
704 3 ucTmp += '0';
705 3 }
706 2 ucCRC ^= ucTmp;
707 2 WriteSerialByte(ucTmp);
708 2
709 2 ucTmp = UIDataArea.SysPara.ucDownFreq[1]>>4;
710 2 if(ucTmp>9)
711 2 {
712 3 ucTmp += 'A' - 10;
713 3 }
714 2 else
715 2 {
716 3 ucTmp += '0';
717 3 }
718 2 ucCRC ^= ucTmp;
719 2 WriteSerialByte(ucTmp);
720 2 ucTmp = UIDataArea.SysPara.ucDownFreq[1]&0x0f;
721 2 if(ucTmp>9)
722 2 {
723 3 ucTmp += 'A' - 10;
724 3 }
725 2 else
726 2 {
727 3 ucTmp += '0';
728 3 }
729 2 ucCRC ^= ucTmp;
730 2 WriteSerialByte(ucTmp);
731 2
732 2 ucTmp = ucCRC>>4;
733 2 if(ucTmp>9)
734 2 {
735 3 ucTmp += 'A' - 10;
736 3 }
737 2 else
C51 COMPILER V6.14 SERIAL 07/15/2005 09:38:51 PAGE 13
738 2 {
739 3 ucTmp += '0';
740 3 }
741 2 WriteSerialByte(ucTmp);
742 2 ucTmp = ucCRC&0x0f;
743 2 if(ucTmp>9)
744 2 {
745 3 ucTmp += 'A' - 10;
746 3 }
747 2 else
748 2 {
749 3 ucTmp += '0';
750 3 }
751 2 WriteSerialByte(ucTmp);
752 2 WriteSerialByte(ETX);
753 2 }
754 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1718 ----
CONSTANT SIZE = 20 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 11 4
IDATA SIZE = 128 ----
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 + -