📄 can.lis
字号:
0028 .dbline 50
0028 .dbline 51
0028 84E0 ldi R24,4
002A 849F mul R24,R20
002C F001 movw R30,R0
002E 80E0 ldi R24,<_CANMOBID
0030 90E0 ldi R25,>_CANMOBID
0032 E80F add R30,R24
0034 F91F adc R31,R25
0036 0081 ldd R16,z+0
0038 1181 ldd R17,z+1
003A 2281 ldd R18,z+2
003C 3381 ldd R19,z+3
003E 83E0 ldi R24,3
0040 90E0 ldi R25,0
0042 8A93 st -y,R24
0044 0E940000 xcall lsl32
0048 0883 std y+0,R16
004A 1983 std y+1,R17
004C 2A83 std y+2,R18
004E 3B83 std y+3,R19
0050 .dbline 52
0050 6881 ldd R22,y+0
0052 7981 ldd R23,y+1
0054 .dbline 53
0054 2880 ldd R2,y+0
0056 3980 ldd R3,y+1
0058 4A80 ldd R4,y+2
005A 5B80 ldd R5,y+3
005C 5201 movw R10,R4
005E .dbline 54
005E 84E0 ldi R24,4
0060 849F mul R24,R20
0062 F001 movw R30,R0
0064 80E0 ldi R24,<_CANIDT+3
0066 90E0 ldi R25,>_CANIDT+3
0068 E80F add R30,R24
006A F91F adc R31,R25
006C 6083 std z+0,R22
006E .dbline 55
006E 84E0 ldi R24,4
0070 849F mul R24,R20
0072 F001 movw R30,R0
0074 80E0 ldi R24,<_CANIDT+2
0076 90E0 ldi R25,>_CANIDT+2
0078 E80F add R30,R24
007A F91F adc R31,R25
007C 1B01 movw R2,R22
007E 232C mov R2,R3
0080 3324 clr R3
0082 2082 std z+0,R2
0084 .dbline 56
0084 84E0 ldi R24,4
0086 849F mul R24,R20
0088 F001 movw R30,R0
008A 80E0 ldi R24,<_CANIDT+1
008C 90E0 ldi R25,>_CANIDT+1
008E E80F add R30,R24
0090 F91F adc R31,R25
0092 A082 std z+0,R10
0094 .dbline 57
0094 84E0 ldi R24,4
0096 849F mul R24,R20
0098 F001 movw R30,R0
009A 80E0 ldi R24,<_CANIDT
009C 90E0 ldi R25,>_CANIDT
009E E80F add R30,R24
00A0 F91F adc R31,R25
00A2 1501 movw R2,R10
00A4 232C mov R2,R3
00A6 3324 clr R3
00A8 2082 std z+0,R2
00AA .dbline 58
00AA 80910000 lds R24,_Pass_Flag
00AE 8F5F subi R24,255 ; addi 1
00B0 80930000 sts _Pass_Flag,R24
00B4 .dbline 59
00B4 0000 nop
00B6 .dbline 60
00B6 L4:
00B6 .dbline 49
00B6 4395 inc R20
00B8 L6:
00B8 .dbline 49
00B8 4630 cpi R20,6
00BA 08F4 brsh X0
00BC B5CF xjmp L3
00BE X0:
00BE .dbline 61
00BE ; {
00BE ; temp=CANMOBID[i]<<3; //ID初始化
00BE ; temp1=(unsigned int)temp;
00BE ; temp2=(unsigned int)(temp/0x00010000);
00BE ; CANIDT[i][3]=(Uchar)temp1;
00BE ; CANIDT[i][2]=(Uchar)(temp1>>8);
00BE ; CANIDT[i][1]=(Uchar)temp2;
00BE ; CANIDT[i][0]=(Uchar)(temp2>>8);
00BE ; Pass_Flag = Pass_Flag + 1;
00BE ; NOP();
00BE ; }
00BE ; if(Pass_Flag!=0x06)
00BE 80910000 lds R24,_Pass_Flag
00C2 8630 cpi R24,6
00C4 11F0 breq L10
00C6 .dbline 62
00C6 ; RESET;
00C6 0C940000 jmp 0x00000
00CA L10:
00CA .dbline 63
00CA ; WDR();
00CA A895 wdr
00CC .dbline 65
00CC ;
00CC ; Pass_Flag = 0x00;
00CC 2224 clr R2
00CE 20920000 sts _Pass_Flag,R2
00D2 .dbline 66
00D2 ; for(i=0;i<6;i++)
00D2 4427 clr R20
00D4 48C0 xjmp L15
00D6 L12:
00D6 .dbline 67
00D6 .dbline 68
00D6 84E0 ldi R24,4
00D8 849F mul R24,R20
00DA F001 movw R30,R0
00DC 80E0 ldi R24,<_CANMOBMD
00DE 90E0 ldi R25,>_CANMOBMD
00E0 E80F add R30,R24
00E2 F91F adc R31,R25
00E4 0081 ldd R16,z+0
00E6 1181 ldd R17,z+1
00E8 2281 ldd R18,z+2
00EA 3381 ldd R19,z+3
00EC 83E0 ldi R24,3
00EE 90E0 ldi R25,0
00F0 8A93 st -y,R24
00F2 0E940000 xcall lsl32
00F6 0883 std y+0,R16
00F8 1983 std y+1,R17
00FA 2A83 std y+2,R18
00FC 3B83 std y+3,R19
00FE .dbline 69
00FE 6881 ldd R22,y+0
0100 7981 ldd R23,y+1
0102 .dbline 70
0102 2880 ldd R2,y+0
0104 3980 ldd R3,y+1
0106 4A80 ldd R4,y+2
0108 5B80 ldd R5,y+3
010A 5201 movw R10,R4
010C .dbline 71
010C 84E0 ldi R24,4
010E 849F mul R24,R20
0110 F001 movw R30,R0
0112 80E0 ldi R24,<_CANIDM+3
0114 90E0 ldi R25,>_CANIDM+3
0116 E80F add R30,R24
0118 F91F adc R31,R25
011A 6083 std z+0,R22
011C .dbline 72
011C 84E0 ldi R24,4
011E 849F mul R24,R20
0120 F001 movw R30,R0
0122 80E0 ldi R24,<_CANIDM+2
0124 90E0 ldi R25,>_CANIDM+2
0126 E80F add R30,R24
0128 F91F adc R31,R25
012A 1B01 movw R2,R22
012C 232C mov R2,R3
012E 3324 clr R3
0130 2082 std z+0,R2
0132 .dbline 73
0132 84E0 ldi R24,4
0134 849F mul R24,R20
0136 F001 movw R30,R0
0138 80E0 ldi R24,<_CANIDM+1
013A 90E0 ldi R25,>_CANIDM+1
013C E80F add R30,R24
013E F91F adc R31,R25
0140 A082 std z+0,R10
0142 .dbline 74
0142 84E0 ldi R24,4
0144 849F mul R24,R20
0146 F001 movw R30,R0
0148 80E0 ldi R24,<_CANIDM
014A 90E0 ldi R25,>_CANIDM
014C E80F add R30,R24
014E F91F adc R31,R25
0150 1501 movw R2,R10
0152 232C mov R2,R3
0154 3324 clr R3
0156 2082 std z+0,R2
0158 .dbline 75
0158 80910000 lds R24,_Pass_Flag
015C 8F5F subi R24,255 ; addi 1
015E 80930000 sts _Pass_Flag,R24
0162 .dbline 76
0162 0000 nop
0164 .dbline 77
0164 L13:
0164 .dbline 66
0164 4395 inc R20
0166 L15:
0166 .dbline 66
0166 4630 cpi R20,6
0168 08F4 brsh X1
016A B5CF xjmp L12
016C X1:
016C .dbline 78
016C ; {
016C ; temp=CANMOBMD[i]<<3;
016C ; temp1=(unsigned int)temp; //低16位
016C ; temp2=(unsigned int)(temp/0x00010000); //高16位
016C ; CANIDM[i][3]=(Uchar)temp1;
016C ; CANIDM[i][2]=(Uchar)(temp1>>8);
016C ; CANIDM[i][1]=(Uchar)temp2;
016C ; CANIDM[i][0]=(Uchar)(temp2>>8);
016C ; Pass_Flag = Pass_Flag + 1;
016C ; NOP();
016C ; }
016C ; if(Pass_Flag!=0x06)
016C 80910000 lds R24,_Pass_Flag
0170 8630 cpi R24,6
0172 11F0 breq L19
0174 .dbline 79
0174 ; RESET;
0174 0C940000 jmp 0x00000
0178 L19:
0178 .dbline 82
0178 ; //reset all MObs
0178 ;
0178 ; Pass_Flag = 0x00;
0178 2224 clr R2
017A 20920000 sts _Pass_Flag,R2
017E .dbline 83
017E ; for (i=0; i<15; i++)
017E 4427 clr R20
0180 28C0 xjmp L24
0182 L21:
0182 .dbline 84
0182 ; {
0182 .dbline 85
0182 ; CANPAGE = (i<<4); //select MOb
0182 842F mov R24,R20
0184 8F70 andi R24,#0x0F
0186 8295 swap R24
0188 8093ED00 sts 237,R24
018C .dbline 86
018C ; CANCDMOB = 0; //disable MOb
018C 2224 clr R2
018E 2092EF00 sts 239,R2
0192 .dbline 87
0192 ; CANSTMOB = 0; //clear status
0192 2092EE00 sts 238,R2
0196 .dbline 88
0196 ; CANIDT1 = 0; //clear ID
0196 2092F300 sts 243,R2
019A .dbline 89
019A ; CANIDT2 = 0;
019A 2092F200 sts 242,R2
019E .dbline 90
019E ; CANIDT3 = 0;
019E 2092F100 sts 241,R2
01A2 .dbline 91
01A2 ; CANIDT4 = 0;
01A2 2092F000 sts 240,R2
01A6 .dbline 92
01A6 ; CANIDM1 = 0; //clear mask
01A6 2092F700 sts 247,R2
01AA .dbline 93
01AA ; CANIDM2 = 0;
01AA 2092F600 sts 246,R2
01AE .dbline 94
01AE ; CANIDM3 = 0;
01AE 2092F500 sts 245,R2
01B2 .dbline 95
01B2 ; CANIDM4 = 0;
01B2 2092F400 sts 244,R2
01B6 .dbline 96
01B6 ; for (j=0; j<8; j++)
01B6 6627 clr R22
01B8 04C0 xjmp L28
01BA L25:
01BA .dbline 97
01BA 2224 clr R2
01BC 2092FA00 sts 250,R2
01C0 L26:
01C0 .dbline 96
01C0 6395 inc R22
01C2 L28:
01C2 .dbline 96
01C2 6830 cpi R22,8
01C4 D0F3 brlo L25
01C6 .dbline 99
01C6 80910000 lds R24,_Pass_Flag
01CA 8F5F subi R24,255 ; addi 1
01CC 80930000 sts _Pass_Flag,R24
01D0 .dbline 100
01D0 L22:
01D0 .dbline 83
01D0 4395 inc R20
01D2 L24:
01D2 .dbline 83
01D2 4F30 cpi R20,15
01D4 B0F2 brlo L21
01D6 .dbline 101
01D6 ; CANMSG = 0; //clear data
01D6 ;
01D6 ; Pass_Flag = Pass_Flag + 1;
01D6 ; }
01D6 ; if(Pass_Flag!=0x0f)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -