📄 can.lst
字号:
878 3 CAN_HWOBJ[0].uwMSGCTR = 0xfffd; // reset INTPND
879 3
880 3 // USER CODE BEGIN (SRN1_OBJ0,6)
881 3
882 3 // USER CODE END
883 3
884 3 }
885 2
886 2
887 2 // USER CODE BEGIN (SRN1,3)
888 2
889 2 // USER CODE END
890 2
891 2
892 2 } // End of while()
893 1
894 1 // USER CODE BEGIN (SRN1,7)
895 1
896 1 // USER CODE END
897 1
898 1 } // End of function CAN_viSRN1
899
900
901 //****************************************************************************
902 // @Function void CAN_viSRN2(void)
903 //
904 //----------------------------------------------------------------------------
905 // @Description This is the interrupt service routine for the Service
906 // Request Node 2 of the TwinCAN module.
907 //
908 //----------------------------------------------------------------------------
909 // @Returnvalue None
910 //
911 //----------------------------------------------------------------------------
912 // @Parameters None
913 //
914 //----------------------------------------------------------------------------
915 // @Date 2006-12-10
916 //
917 //****************************************************************************
918
919 // USER CODE BEGIN (SRN2,1)
920
921 // USER CODE END
922
C166 COMPILER V6.04, CAN 12/10/2006 17:56:47 PAGE 16
923 void CAN_viSRN2(void) interrupt CAN_SRN2INT
924 {
925 1
926 1 // USER CODE BEGIN (SRN2,2)
927 1
928 1 // USER CODE END
929 1
930 1 while((( ((ulong)CAN_TXIPNDH << 16) + CAN_TXIPNDL) & 0x00000002))
931 1 {
932 2
933 2 // message object 1 interrupt
934 2
935 2 if((CAN_HWOBJ[1].uwMSGCTR & 0x0003) == 0x0002) // if INTPND
936 2 {
937 3 if(CAN_TXIPNDL & CAN_TXIPNDL_TXIPND1) // message object 1 transmit interrupt
938 3 {
939 4
940 4 // The transmission of the last message object
941 4 // was successful.
942 4
943 4 // USER CODE BEGIN (SRN2_OBJ1,4)
944 4 P1L=0x7f;
945 4 delayms(1);
946 4 P1L=0xff;
947 4 // USER CODE END
948 4
949 4 CAN_HWOBJ[1].uwMSGCTR = 0xfdff; // reset NEWDAT
950 4
951 4 } // End of TXIPND1
952 3
953 3 CAN_HWOBJ[1].uwMSGCTR = 0xfffd; // reset INTPND
954 3
955 3 // USER CODE BEGIN (SRN2_OBJ1,6)
956 3
957 3 // USER CODE END
958 3
959 3 }
960 2
961 2
962 2 // USER CODE BEGIN (SRN2,3)
963 2
964 2 // USER CODE END
965 2
966 2
967 2 } // End of while()
968 1
969 1 // USER CODE BEGIN (SRN2,7)
970 1
971 1 // USER CODE END
972 1
973 1 } // End of function CAN_viSRN2
974
975
976 //****************************************************************************
977 // @Function void CAN_viSRN3(void)
978 //
979 //----------------------------------------------------------------------------
980 // @Description This is the interrupt service routine for the Service
981 // Request Node 3 of the TwinCAN module.
982 //
983 //----------------------------------------------------------------------------
984 // @Returnvalue None
C166 COMPILER V6.04, CAN 12/10/2006 17:56:47 PAGE 17
985 //
986 //----------------------------------------------------------------------------
987 // @Parameters None
988 //
989 //----------------------------------------------------------------------------
990 // @Date 2006-12-10
991 //
992 //****************************************************************************
993
994 // USER CODE BEGIN (SRN3,1)
995
996 // USER CODE END
997
998 void CAN_viSRN3(void) interrupt CAN_SRN3INT
999 {
1000 1
1001 1 // USER CODE BEGIN (SRN3,2)
1002 1
1003 1 // USER CODE END
1004 1
1005 1 while((( ((ulong)CAN_TXIPNDH << 16) + CAN_TXIPNDL) & 0x00000004))
1006 1 {
1007 2
1008 2 // message object 2 interrupt
1009 2
1010 2 if((CAN_HWOBJ[2].uwMSGCTR & 0x0003) == 0x0002) // if INTPND
1011 2 {
1012 3 if(CAN_TXIPNDL & CAN_TXIPNDL_TXIPND2) // message object 2 transmit interrupt
1013 3 {
1014 4
1015 4 // The transmission of the last message object
1016 4 // was successful.
1017 4
1018 4 // USER CODE BEGIN (SRN3_OBJ2,4)
1019 4 P1L=0xbf;
1020 4 delayms(1);
1021 4 P1L=0xff;
1022 4 // USER CODE END
1023 4
1024 4 CAN_HWOBJ[2].uwMSGCTR = 0xfdff; // reset NEWDAT
1025 4
1026 4 } // End of TXIPND2
1027 3
1028 3 CAN_HWOBJ[2].uwMSGCTR = 0xfffd; // reset INTPND
1029 3
1030 3 // USER CODE BEGIN (SRN3_OBJ2,6)
1031 3
1032 3 // USER CODE END
1033 3
1034 3 }
1035 2
1036 2
1037 2 // USER CODE BEGIN (SRN3,3)
1038 2
1039 2 // USER CODE END
1040 2
1041 2
1042 2 } // End of while()
1043 1
1044 1 // USER CODE BEGIN (SRN3,7)
1045 1
1046 1 // USER CODE END
C166 COMPILER V6.04, CAN 12/10/2006 17:56:47 PAGE 18
1047 1
1048 1 } // End of function CAN_viSRN3
1049
1050
1051 //****************************************************************************
1052 // @Function void CAN_viSRN4(void)
1053 //
1054 //----------------------------------------------------------------------------
1055 // @Description This is the interrupt service routine for the Service
1056 // Request Node 4 of the TwinCAN module.
1057 //
1058 //----------------------------------------------------------------------------
1059 // @Returnvalue None
1060 //
1061 //----------------------------------------------------------------------------
1062 // @Parameters None
1063 //
1064 //----------------------------------------------------------------------------
1065 // @Date 2006-12-10
1066 //
1067 //****************************************************************************
1068
1069 // USER CODE BEGIN (SRN4,1)
1070
1071 // USER CODE END
1072
1073 void CAN_viSRN4(void) interrupt CAN_SRN4INT
1074 {
1075 1
1076 1 // USER CODE BEGIN (SRN4,2)
1077 1
1078 1 // USER CODE END
1079 1
1080 1 while((( ((ulong)CAN_RXIPNDH << 16) + CAN_RXIPNDL) & 0x00000008))
1081 1 {
1082 2
1083 2 // message object 3 interrupt
1084 2
1085 2 if((CAN_HWOBJ[3].uwMSGCTR & 0x0003) == 0x0002) // if INTPND
1086 2 {
1087 3 if(CAN_RXIPNDL & CAN_RXIPNDL_RXIPND3) // message object 3 receive interrupt
1088 3 {
1089 4
1090 4 if((CAN_HWOBJ[3].uwMSGCTR & 0x0300) == 0x0200) // if NEWDAT is set
1091 4 {
1092 5
1093 5 if ((CAN_HWOBJ[3].uwMSGCTR & 0x0c00) == 0x0800) // if MSGLST is set
1094 5 {
1095 6 // Indicates that the CAN controller has stored a new
1096 6 // message into this object, while NEWDAT was still set,
1097 6 // ie. the previously stored message is lost.
1098 6
1099 6 CAN_HWOBJ[3].uwMSGCTR = 0xf7ff; // reset MSGLST
1100 6
1101 6 // USER CODE BEGIN (SRN4_OBJ3,1)
1102 6
1103 6 // USER CODE END
1104 6 }
1105 5 else
1106 5 {
1107 6 // The CAN controller has stored a new message
1108 6 // into this object.
C166 COMPILER V6.04, CAN 12/10/2006 17:56:47 PAGE 19
1109 6
1110 6 // USER CODE BEGIN (SRN4_OBJ3,2)
1111 6 P1L=0xfd;
1112 6 delayms(1);
1113 6 P1L=0xff;
1114 6 // USER CODE END
1115 6 }
1116 5
1117 5 CAN_HWOBJ[3].uwMSGCTR = 0xfdff; // reset NEWDAT
1118 5 }
1119 4
1120 4 } // End of RXIPND3
1121 3
1122 3
1123 3 CAN_HWOBJ[3].uwMSGCTR = 0xfffd; // reset INTPND
1124 3
1125 3 // USER CODE BEGIN (SRN4_OBJ3,6)
1126 3
1127 3 // USER CODE END
1128 3
1129 3 }
1130 2
1131 2
1132 2 // USER CODE BEGIN (SRN4,3)
1133 2
1134 2 // USER CODE END
1135 2
1136 2
1137 2 } // End of while()
1138 1
1139 1 // USER CODE BEGIN (SRN4,7)
1140 1
1141 1 // USER CODE END
1142 1
1143 1 } // End of function CAN_viSRN4
1144
1145
1146
1147 // USER CODE BEGIN (CAN_General,10)
1148
1149 // USER CODE END
1150
MODULE INFORMATION: INITIALIZED UNINITIALIZED
CODE SIZE = 2214 --------
NEAR-CONST SIZE = -------- --------
FAR-CONST SIZE = -------- --------
HUGE-CONST SIZE = -------- --------
XHUGE-CONST SIZE = -------- --------
NEAR-DATA SIZE = -------- --------
FAR-DATA SIZE = -------- --------
XHUGE-DATA SIZE = -------- --------
IDATA-DATA SIZE = -------- --------
SDATA-DATA SIZE = -------- --------
BDATA-DATA SIZE = -------- --------
HUGE-DATA SIZE = -------- --------
BIT SIZE = -------- --------
INIT'L SIZE = -------- --------
END OF MODULE INFORMATION.
C166 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -