📄 can.lis
字号:
01D6 80910000 lds R24,_Pass_Flag
01DA 8F30 cpi R24,15
01DC 11F0 breq L29
01DE .dbline 102
01DE ; RESET;
01DE 0C940000 jmp 0x00000
01E2 L29:
01E2 .dbline 104
01E2 ;
01E2 ; WDR();
01E2 A895 wdr
01E4 .dbline 105
01E4 ; CANBT1 = CanBaud[2][0];
01E4 E0E0 ldi R30,<_CanBaud+6
01E6 F0E0 ldi R31,>_CanBaud+6
01E8 E491 lpm R30,Z
01EA E093E200 sts 226,R30
01EE .dbline 106
01EE ; CANBT2 = CanBaud[2][1];
01EE E0E0 ldi R30,<_CanBaud+6+1
01F0 F0E0 ldi R31,>_CanBaud+6+1
01F2 E491 lpm R30,Z
01F4 E093E300 sts 227,R30
01F8 .dbline 107
01F8 ; CANBT3 = CanBaud[2][2];
01F8 E0E0 ldi R30,<_CanBaud+6+2
01FA F0E0 ldi R31,>_CanBaud+6+2
01FC E491 lpm R30,Z
01FE E093E400 sts 228,R30
0202 .dbline 112
0202 ;
0202 ; //configure MObi
0202 ; /******************************************************************/
0202 ;
0202 ; Pass_Flag = 0x00;
0202 2224 clr R2
0204 20920000 sts _Pass_Flag,R2
0208 .dbline 113
0208 ; for (i=0; i<3; i++)
0208 4427 clr R20
020A 5FC0 xjmp L39
020C L36:
020C .dbline 114
020C .dbline 115
020C 842F mov R24,R20
020E 8F70 andi R24,#0x0F
0210 8295 swap R24
0212 8093ED00 sts 237,R24
0216 .dbline 116
0216 84E0 ldi R24,4
0218 849F mul R24,R20
021A F001 movw R30,R0
021C 80E0 ldi R24,<_CANIDT
021E 90E0 ldi R25,>_CANIDT
0220 E80F add R30,R24
0222 F91F adc R31,R25
0224 2080 ldd R2,z+0
0226 2092F300 sts 243,R2
022A .dbline 117
022A 84E0 ldi R24,4
022C 849F mul R24,R20
022E F001 movw R30,R0
0230 80E0 ldi R24,<_CANIDT+1
0232 90E0 ldi R25,>_CANIDT+1
0234 E80F add R30,R24
0236 F91F adc R31,R25
0238 2080 ldd R2,z+0
023A 2092F200 sts 242,R2
023E .dbline 118
023E 84E0 ldi R24,4
0240 849F mul R24,R20
0242 F001 movw R30,R0
0244 80E0 ldi R24,<_CANIDT+2
0246 90E0 ldi R25,>_CANIDT+2
0248 E80F add R30,R24
024A F91F adc R31,R25
024C 2080 ldd R2,z+0
024E 2092F100 sts 241,R2
0252 .dbline 119
0252 84E0 ldi R24,4
0254 849F mul R24,R20
0256 F001 movw R30,R0
0258 80E0 ldi R24,<_CANIDT+3
025A 90E0 ldi R25,>_CANIDT+3
025C E80F add R30,R24
025E F91F adc R31,R25
0260 2080 ldd R2,z+0
0262 2092F000 sts 240,R2
0266 .dbline 120
0266 84E0 ldi R24,4
0268 849F mul R24,R20
026A F001 movw R30,R0
026C 80E0 ldi R24,<_CANIDM
026E 90E0 ldi R25,>_CANIDM
0270 E80F add R30,R24
0272 F91F adc R31,R25
0274 2080 ldd R2,z+0
0276 2092F700 sts 247,R2
027A .dbline 121
027A 84E0 ldi R24,4
027C 849F mul R24,R20
027E F001 movw R30,R0
0280 80E0 ldi R24,<_CANIDM+1
0282 90E0 ldi R25,>_CANIDM+1
0284 E80F add R30,R24
0286 F91F adc R31,R25
0288 2080 ldd R2,z+0
028A 2092F600 sts 246,R2
028E .dbline 122
028E 84E0 ldi R24,4
0290 849F mul R24,R20
0292 F001 movw R30,R0
0294 80E0 ldi R24,<_CANIDM+2
0296 90E0 ldi R25,>_CANIDM+2
0298 E80F add R30,R24
029A F91F adc R31,R25
029C 2080 ldd R2,z+0
029E 2092F500 sts 245,R2
02A2 .dbline 123
02A2 84E0 ldi R24,4
02A4 849F mul R24,R20
02A6 F001 movw R30,R0
02A8 80E0 ldi R24,<_CANIDM+3
02AA 90E0 ldi R25,>_CANIDM+3
02AC E80F add R30,R24
02AE F91F adc R31,R25
02B0 2080 ldd R2,z+0
02B2 2092F400 sts 244,R2
02B6 .dbline 125
02B6 88E1 ldi R24,24
02B8 8093EF00 sts 239,R24
02BC .dbline 126
02BC 0000 nop
02BE .dbline 127
02BE 80910000 lds R24,_Pass_Flag
02C2 8F5F subi R24,255 ; addi 1
02C4 80930000 sts _Pass_Flag,R24
02C8 .dbline 128
02C8 L37:
02C8 .dbline 113
02C8 4395 inc R20
02CA L39:
02CA .dbline 113
02CA 4330 cpi R20,3
02CC 08F4 brsh X2
02CE 9ECF xjmp L36
02D0 X2:
02D0 .dbline 130
02D0 ; {
02D0 ; CANPAGE = (i<<4); //MOb 0,1,2设置为发送模式
02D0 ; CANIDT1 = CANIDT[i][0]; //初始化 ID
02D0 ; CANIDT2 = CANIDT[i][1];
02D0 ; CANIDT3 = CANIDT[i][2];
02D0 ; CANIDT4 = CANIDT[i][3];
02D0 ; CANIDM1 = CANIDM[i][0]; //初始化 mask
02D0 ; CANIDM2 = CANIDM[i][1];
02D0 ; CANIDM3 = CANIDM[i][2];
02D0 ; CANIDM4 = CANIDM[i][3]; //0 = ignore bit
02D0 ; //CANIDM4 = (1<<IDEMSK); //identifier extention mask
02D0 ; CANCDMOB = (1<<IDE)|(8<<DLC0); //reception, ext. ID,rev2.0B
02D0 ; NOP();
02D0 ; Pass_Flag = Pass_Flag + 1;
02D0 ; }
02D0 ;
02D0 ; if(Pass_Flag!=0x03)
02D0 80910000 lds R24,_Pass_Flag
02D4 8330 cpi R24,3
02D6 11F0 breq L46
02D8 .dbline 131
02D8 ; RESET;
02D8 0C940000 jmp 0x00000
02DC L46:
02DC .dbline 133
02DC ;
02DC ; WDR();
02DC A895 wdr
02DE .dbline 135
02DE ;
02DE ; Pass_Flag = 0x00;
02DE 2224 clr R2
02E0 20920000 sts _Pass_Flag,R2
02E4 .dbline 136
02E4 ; for(i=3;i<6;i++)
02E4 43E0 ldi R20,3
02E6 5FC0 xjmp L51
02E8 L48:
02E8 .dbline 137
02E8 .dbline 138
02E8 842F mov R24,R20
02EA 8F70 andi R24,#0x0F
02EC 8295 swap R24
02EE 8093ED00 sts 237,R24
02F2 .dbline 139
02F2 84E0 ldi R24,4
02F4 849F mul R24,R20
02F6 F001 movw R30,R0
02F8 80E0 ldi R24,<_CANIDT
02FA 90E0 ldi R25,>_CANIDT
02FC E80F add R30,R24
02FE F91F adc R31,R25
0300 2080 ldd R2,z+0
0302 2092F300 sts 243,R2
0306 .dbline 140
0306 84E0 ldi R24,4
0308 849F mul R24,R20
030A F001 movw R30,R0
030C 80E0 ldi R24,<_CANIDT+1
030E 90E0 ldi R25,>_CANIDT+1
0310 E80F add R30,R24
0312 F91F adc R31,R25
0314 2080 ldd R2,z+0
0316 2092F200 sts 242,R2
031A .dbline 141
031A 84E0 ldi R24,4
031C 849F mul R24,R20
031E F001 movw R30,R0
0320 80E0 ldi R24,<_CANIDT+2
0322 90E0 ldi R25,>_CANIDT+2
0324 E80F add R30,R24
0326 F91F adc R31,R25
0328 2080 ldd R2,z+0
032A 2092F100 sts 241,R2
032E .dbline 142
032E 84E0 ldi R24,4
0330 849F mul R24,R20
0332 F001 movw R30,R0
0334 80E0 ldi R24,<_CANIDT+3
0336 90E0 ldi R25,>_CANIDT+3
0338 E80F add R30,R24
033A F91F adc R31,R25
033C 2080 ldd R2,z+0
033E 2092F000 sts 240,R2
0342 .dbline 143
0342 84E0 ldi R24,4
0344 849F mul R24,R20
0346 F001 movw R30,R0
0348 80E0 ldi R24,<_CANIDM
034A 90E0 ldi R25,>_CANIDM
034C E80F add R30,R24
034E F91F adc R31,R25
0350 2080 ldd R2,z+0
0352 2092F700 sts 247,R2
0356 .dbline 144
0356 84E0 ldi R24,4
0358 849F mul R24,R20
035A F001 movw R30,R0
035C 80E0 ldi R24,<_CANIDM+1
035E 90E0 ldi R25,>_CANIDM+1
0360 E80F add R30,R24
0362 F91F adc R31,R25
0364 2080 ldd R2,z+0
0366 2092F600 sts 246,R2
036A .dbline 145
036A 84E0 ldi R24,4
036C 849F mul R24,R20
036E F001 movw R30,R0
0370 80E0 ldi R24,<_CANIDM+2
0372 90E0 ldi R25,>_CANIDM+2
0374 E80F add R30,R24
0376 F91F adc R31,R25
0378 2080 ldd R2,z+0
037A 2092F500 sts 245,R2
037E .dbline 146
037E 84E0 ldi R24,4
0380 849F mul R24,R20
0382 F001 movw R30,R0
0384 80E0 ldi R24,<_CANIDM+3
0386 90E0 ldi R25,>_CANIDM+3
0388 E80F add R30,R24
038A F91F adc R31,R25
038C 2080 ldd R2,z+0
038E 2092F400 sts 244,R2
0392 .dbline 147
0392 88E9 ldi R24,152
0394 8093EF00 sts 239,R24
0398 .dbline 148
0398 0000 nop
039A .dbline 149
039A 80910000 lds R24,_Pass_Flag
039E 8F5F subi R24,255 ; addi 1
03A0 80930000 sts _Pass_Flag,R24
03A4 .dbline 150
03A4 L49:
03A4 .dbline 136
03A4 4395 inc R20
03A6 L51:
03A6 .dbline 136
03A6 4630 cpi R20,6
03A8 08F4 brsh X3
03AA 9ECF xjmp L48
03AC X3:
03AC .dbline 151
03AC ; {
03AC ; CANPAGE = (i<<4); //MOb3,4,5设置为接受模式
03AC ; CANIDT1 = CANIDT[i][0]; //初始化 ID
03AC ; CANIDT2 = CANIDT[i][1];
03AC ; CANIDT3 = CANIDT[i][2];
03AC ; CANIDT4 = CANIDT[i][3];
03AC ; CANIDM1 = CANIDM[i][0]; //初始化 mask
03AC ; CANIDM2 = CANIDM[i][1];
03AC ; CANIDM3 = CANIDM[i][2];
03AC ; CANIDM4 = CANIDM[i][3]; //0 = ignore bit
03AC ; CANCDMOB = (2<<CONMOB0)|(1<<IDE)|(8<<DLC0); //reception, ext. ID,rev2.0B
03AC ; NOP();
03AC ; Pass_Flag = Pass_Flag + 1;
03AC ; }
03AC ; if(Pass_Flag!=0x03)
03AC 80910000 lds R24,_Pass_Flag
03B0 8330 cpi R24,3
03B2 11F0 breq L58
03B4 .dbline 152
03B4 ; RESET;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -