?? modbus.lst
字號:
779 0522 3008 movlw 8
780 0523 1303 bcf 3,6 ;carry unused
781 0524 0241 subwf _receCount,w
782 0525 1C03 btfss 3,0
783 0526 2E2B goto l35
784 ;modbus.c: 301: {
785 ;modbus.c: 305: }
786 0527 1683 bsf 3,5
787 0528 128C bcf 12,5
788 ;modbus.c: 307: TMR2IE = 0;
789 0529 108C bcf 12,1
790 ;modbus.c: 308: if(receBuf[0] != localAddr )
791 052A 1283 bcf 3,5
792 052B 0821 movf _receBuf,w
793 052C 1383 bcf 3,7
794 052D 0662 xorwf _localAddr,w
795 052E 1903 btfsc 3,2
796 052F 2E0E goto l40
797 ;modbus.c: 309: {
798 0530 1703 bsf 3,6
799 0531 01A1 clrf _g_bRcvedOK^(0+256)
800 ;modbus.c: 311: receCount = 0;
801 0532 1303 bcf 3,6 ;carry unused
802 0533 01C1 clrf _receCount
803 ;modbus.c: 312: TXIE = 0;
804 0534 1683 bsf 3,5
805 0535 120C bcf 12,4
806 ;modbus.c: 313: TXEN = 0;
807 0536 1298 bcf 24,5
808 ;modbus.c: 314: RCIE = 1;
809 0537 168C bsf 12,5
810 ;modbus.c: 315: TMR2IE = 1;
811 0538 148C bsf 12,1
812 ;modbus.c: 316: }
813 0539 2E0E goto l40
814 053A l44
815 ;modbus.c: 321: case 3:
816 053A 3006 movlw 6
817 053B 00D9 movwf ?_crc16
818 053C 01DA clrf ?_crc16+1
819 053D 3021 movlw _receBuf
820 053E 24E5 fcall _crc16
821 053F 0870 movf btemp,w
822 0540 00C7 movwf ?a_checkComm0Modbus
823 0541 0871 movf btemp+1,w
824 0542 00C8 movwf ?a_checkComm0Modbus+1
825 ;modbus.c: 326: if(crcData == receBuf[7]+(receB
+ uf[6]<<8))
826 0543 0827 movf _receBuf+6,w
827 0544 00F3 movwf btemp+3
828 0545 01F2 clrf btemp+2
829 0546 0828 movf _receBuf+7,w
830 0547 00F0 movwf btemp
831 0548 01F1 clrf btemp+1
832 0549 0872 movf btemp+2,w
833 054A 07F0 addwf btemp
834 054B 1803 btfsc 3,0
835 054C 0AF1 incf btemp+1
836 054D 0873 movf btemp+3,w
837 054E 07F1 addwf btemp+1
838 054F 0848 movf ?a_checkComm0Modbus+1,w
839 0550 0671 xorwf btemp+1,w
840 0551 1D03 btfss 3,2
841 0552 2D55 goto u165
842 0553 0847 movf ?a_checkComm0Modbus,w
843 0554 0670 xorwf btemp,w
844 0555 u165
845 0555 1D03 btfss 3,2
846 0556 2D70 goto l45
847 ;modbus.c: 327: {
848 0557 0B22 decfsz _receBuf+1,w
849 0558 2D5D goto l46
850 ;modbus.c: 329: {
851 0559 265D 120A 118A fcall _readCoil
852 ;modbus.c: 331: }
853 055C 2E22 goto l39
854 055D l46
855 ;modbus.c: 332: else if(receBuf[1] == 3)
856 055D 0822 movf _receBuf+1,w
857 055E 3A03 xorlw 3
858 055F 1D03 btfss 3,2
859 0560 2D65 goto l48
860 ;modbus.c: 333: {
861 0561 271C 120A 118A fcall _readRegisters
862 ;modbus.c: 335: }
863 0564 2E22 goto l39
864 0565 l48
865 ;modbus.c: 336: else if(receBuf[1] == 5)
866 0565 0822 movf _receBuf+1,w
867 0566 3A05 xorlw 5
868 0567 1D03 btfss 3,2
869 0568 2D6D goto l50
870 ;modbus.c: 337: {
871 0569 24B7 120A 118A fcall _forceSingleCoil
872 ;modbus.c: 339: }
873 056C 2E22 goto l39
874 056D l50
875 ;modbus.c: 340: else if(receBuf[1] == 6)
876 056D 0822 movf _receBuf+1,w
877 056E 3A06 xorlw 6
878 056F 2E22 goto l39
879 ;modbus.c: 341: {
880 ;modbus.c: 343: }
881 0570 l45
882 ;modbus.c: 346: else
883 0570 0862 movf _localAddr,w
884 0571 00B1 movwf _sendBuf
885 ;modbus.c: 349: sendBuf[1] = receBuf[1] | 0x80;
886 0572 0822 movf _receBuf+1,w
887 0573 3880 iorlw -128
888 0574 00B2 movwf _sendBuf+1
889 ;modbus.c: 350: crcData = crc16(sendBuf,2);
890 0575 3002 movlw 2
891 0576 00D9 movwf ?_crc16
892 0577 01DA clrf ?_crc16+1
893 0578 3031 movlw _sendBuf
894 0579 24E5 fcall _crc16
895 057A 0870 movf btemp,w
896 057B 00C7 movwf ?a_checkComm0Modbus
897 057C 0871 movf btemp+1,w
898 057D 00C8 movwf ?a_checkComm0Modbus+1
899 ;modbus.c: 351: sendBuf[2] = crcData >> 8;
900 057E 00B3 movwf _sendBuf+2
901 ;modbus.c: 352: sendBuf[3] = crcData & 0xff;
902 057F 0847 movf ?a_checkComm0Modbus,w
903 0580 00B4 movwf _sendBuf+3
904 ;modbus.c: 353: sendCount = 4;
905 0581 3004 movlw 4
906 0582 00C2 movwf _sendCount
907 ;modbus.c: 354: beginSend();
908 0583 248B fcall _beginSend
909 ;modbus.c: 355: }
910 0584 2E22 goto l39
911 0585 l54
912 ;modbus.c: 357: case 15:
913 ;modbus.c: 358: tempData = receBuf[6];
914 0585 0827 movf _receBuf+6,w
915 0586 00C9 movwf ?a_checkComm0Modbus+2
916 0587 01CA clrf ?a_checkComm0Modbus+3
917 ;modbus.c: 359: tempData += 9;
918 0588 3009 movlw 9
919 0589 07C9 addwf ?a_checkComm0Modbus+2
920 058A 1803 btfsc 3,0
921 058B 0ACA incf ?a_checkComm0Modbus+3
922 ;modbus.c: 360: if(receCount >= tempData)
923 058C 0841 movf _receCount,w
924 058D 00F0 movwf btemp
925 058E 01F1 clrf btemp+1
926 058F 084A movf ?a_checkComm0Modbus+3,w
927 0590 0271 subwf btemp+1,w
928 0591 1D03 btfss 3,2
929 0592 2D95 goto u215
930 0593 0849 movf ?a_checkComm0Modbus+2,w
931 0594 0270 subwf btemp,w
932 0595 u215
933 0595 1C03 btfss 3,0
934 0596 2E22 goto l39
935 ;modbus.c: 361: {
936 0597 0821 movf _receBuf,w
937 0598 0662 xorwf _localAddr,w
938 0599 1D03 btfss 3,2
939 059A 2E0C goto l60
940 ;modbus.c: 363: {
941 059B 30FE movlw 254
942 059C 0749 addwf ?a_checkComm0Modbus+2,w
943 059D 00D9 movwf ?_crc16
944 059E 30FF movlw 255
945 059F 1803 btfsc 3,0
946 05A0 3000 movlw 256
947 05A1 074A addwf ?a_checkComm0Modbus+3,w
948 05A2 00DA movwf ?_crc16+1
949 05A3 3021 movlw _receBuf
950 05A4 24E5 fcall _crc16
951 05A5 0870 movf btemp,w
952 05A6 00C7 movwf ?a_checkComm0Modbus
953 05A7 0871 movf btemp+1,w
954 05A8 00C8 movwf ?a_checkComm0Modbus+1
955 ;modbus.c: 365: if(crcData == (receBuf[tempData
+ -2]<<8)+ receBuf[tempData-1])
956 05A9 0849 movf ?a_checkComm0Modbus+2,w
957 05AA 3EFE addlw -2
958 05AB 3E21 addlw _receBuf
959 05AC 0084 movwf 4
960 05AD 1383 bcf 3,7
961 05AE 0800 movf 0,w
962 05AF 00F3 movwf btemp+3
963 05B0 01F2 clrf btemp+2
964 05B1 0349 decf ?a_checkComm0Modbus+2,w
965 05B2 3E21 addlw _receBuf
966 05B3 0084 movwf 4
967 05B4 1383 bcf 3,7
968 05B5 0800 movf 0,w
969 05B6 00F0 movwf btemp
970 05B7 01F1 clrf btemp+1
971 05B8 0872 movf btemp+2,w
972 05B9 07F0 addwf btemp
973 05BA 1803 btfsc 3,0
974 05BB 0AF1 incf btemp+1
975 05BC 0873 movf btemp+3,w
976 05BD 07F1 addwf btemp+1
977 05BE 0848 movf ?a_checkComm0Modbus+1,w
978 05BF 0671 xorwf btemp+1,w
979 05C0 1D03 btfss 3,2
980 05C1 2E0C goto l60
981 05C2 0847 movf ?a_checkComm0Modbus,w
982 ;modbus.c: 366: {
983 05C3 2E0C goto l60
984 ;modbus.c: 368: }
985 ;modbus.c: 371: }
986 05C4 l58
987 ;modbus.c: 373: case 16:
988 ;modbus.c: 374: tempData = (receBuf[4]<<8) + re
+ ceBuf[5];
989 05C4 0825 movf _receBuf+4,w
990 05C5 00CA movwf ?a_checkComm0Modbus+3
991 05C6 0826 movf _receBuf+5,w
992 05C7 00C9 movwf ?a_checkComm0Modbus+2
993 ;modbus.c: 375: tempData = tempData * 2;
994 05C8 1003 bcf 3,0
995 05C9 0DC9 rlf ?a_checkComm0Modbus+2
996 05CA 0DCA rlf ?a_checkComm0Modbus+3
997 ;modbus.c: 376: tempData += 9;
998 05CB 3009 movlw 9
999 05CC 07C9 addwf ?a_checkComm0Modbus+2
1000 05CD 1803 btfsc 3,0
1001 05CE 0ACA incf ?a_checkComm0Modbus+3
1002 ;modbus.c: 377: if(receCount >= tempData)
1003 05CF 0841 movf _receCount,w
1004 05D0 00F0 movwf btemp
1005 05D1 01F1 clrf btemp+1
1006 05D2 084A movf ?a_checkComm0Modbus+3,w
1007 05D3 0271 subwf btemp+1,w
1008 05D4 1D03 btfss 3,2
1009 05D5 2DD8 goto u245
1010 05D6 0849 movf ?a_checkComm0Modbus+2,w
1011 05D7 0270 subwf btemp,w
1012 05D8 u245
1013 05D8 1C03 btfss 3,0
1014 05D9 2E22 goto l39
1015 ;modbus.c: 378: {
1016 05DA 0821 movf _receBuf,w
1017 05DB 0662 xorwf _localAddr,w
1018 05DC 1D03 btfss 3,2
1019 05DD 2E0C goto l60
1020 ;modbus.c: 380: {
1021 05DE 30FE movlw 254
1022 05DF 0749 addwf ?a_checkComm0Modbus+2,w
1023 05E0 00D9 movwf ?_crc16
1024 05E1 30FF movlw 255
1025 05E2 1803 btfsc 3,0
1026 05E3 3000 movlw 256
1027 05E4 074A addwf ?a_checkComm0Modbus+3,w
1028 05E5 00DA movwf ?_crc16+1
1029 05E6 3021 movlw _receBuf
1030 05E7 24E5 fcall _crc16
1031 05E8 0870 movf btemp,w
1032 05E9 00C7 movwf ?a_checkComm0Modbus
1033 05EA 0871 movf btemp+1,w
1034 05EB 00C8 movwf ?a_checkComm0Modbus+1
1035 ;modbus.c: 382: if(crcData == (receBuf[tempData
+ -2]<<8)+ receBuf[tempData-1])
1036 05EC 0849 movf ?a_checkComm0Modbus+2,w
1037 05ED 3EFE addlw -2
1038 05EE 3E21 addlw _receBuf
1039 05EF 0084 movwf 4
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -