?? can.lis
字號:
0046 3B83 std y+3,R19
0048 .dbline 52
0048 6881 ldd R22,y+0
004A 7981 ldd R23,y+1
004C .dbline 53
004C 2880 ldd R2,y+0
004E 3980 ldd R3,y+1
0050 4A80 ldd R4,y+2
0052 5B80 ldd R5,y+3
0054 5201 movw R10,R4
0056 .dbline 54
0056 84E0 ldi R24,4
0058 849F mul R24,R20
005A F001 movw R30,R0
005C 80E0 ldi R24,<_CANIDT+3
005E 90E0 ldi R25,>_CANIDT+3
0060 E80F add R30,R24
0062 F91F adc R31,R25
0064 6083 std z+0,R22
0066 .dbline 55
0066 84E0 ldi R24,4
0068 849F mul R24,R20
006A F001 movw R30,R0
006C 80E0 ldi R24,<_CANIDT+2
006E 90E0 ldi R25,>_CANIDT+2
0070 E80F add R30,R24
0072 F91F adc R31,R25
0074 1B01 movw R2,R22
0076 232C mov R2,R3
0078 3324 clr R3
007A 2082 std z+0,R2
007C .dbline 56
007C 84E0 ldi R24,4
007E 849F mul R24,R20
0080 F001 movw R30,R0
0082 80E0 ldi R24,<_CANIDT+1
0084 90E0 ldi R25,>_CANIDT+1
0086 E80F add R30,R24
0088 F91F adc R31,R25
008A A082 std z+0,R10
008C .dbline 57
008C 84E0 ldi R24,4
008E 849F mul R24,R20
0090 F001 movw R30,R0
0092 80E0 ldi R24,<_CANIDT
0094 90E0 ldi R25,>_CANIDT
0096 E80F add R30,R24
0098 F91F adc R31,R25
009A 1501 movw R2,R10
009C 232C mov R2,R3
009E 3324 clr R3
00A0 2082 std z+0,R2
00A2 .dbline 58
00A2 0000 nop
00A4 .dbline 59
00A4 L4:
00A4 .dbline 49
00A4 4395 inc R20
00A6 L6:
00A6 .dbline 49
00A6 4F30 cpi R20,15
00A8 08F4 brsh X0
00AA BACF xjmp L3
00AC X0:
00AC .dbline 61
00AC ; {
00AC ; temp=CANMOBID[i]<<3;
00AC ; temp1=(unsigned int)temp;
00AC ; temp2=(unsigned int)(temp/0x00010000);
00AC ; CANIDT[i][3]=(Uchar)temp1;
00AC ; CANIDT[i][2]=(Uchar)(temp1>>8);
00AC ; CANIDT[i][1]=(Uchar)temp2;
00AC ; CANIDT[i][0]=(Uchar)(temp2>>8);
00AC ; NOP();
00AC ; }
00AC ;
00AC ; for(i=0;i<15;i++)
00AC 4427 clr R20
00AE 43C0 xjmp L13
00B0 L10:
00B0 .dbline 62
00B0 .dbline 63
00B0 84E0 ldi R24,4
00B2 849F mul R24,R20
00B4 F001 movw R30,R0
00B6 80E0 ldi R24,<_CANMOBMD
00B8 90E0 ldi R25,>_CANMOBMD
00BA E80F add R30,R24
00BC F91F adc R31,R25
00BE 0081 ldd R16,z+0
00C0 1181 ldd R17,z+1
00C2 2281 ldd R18,z+2
00C4 3381 ldd R19,z+3
00C6 83E0 ldi R24,3
00C8 90E0 ldi R25,0
00CA 8A93 st -y,R24
00CC 0E940000 xcall lsl32
00D0 0883 std y+0,R16
00D2 1983 std y+1,R17
00D4 2A83 std y+2,R18
00D6 3B83 std y+3,R19
00D8 .dbline 64
00D8 6881 ldd R22,y+0
00DA 7981 ldd R23,y+1
00DC .dbline 65
00DC 2880 ldd R2,y+0
00DE 3980 ldd R3,y+1
00E0 4A80 ldd R4,y+2
00E2 5B80 ldd R5,y+3
00E4 5201 movw R10,R4
00E6 .dbline 66
00E6 84E0 ldi R24,4
00E8 849F mul R24,R20
00EA F001 movw R30,R0
00EC 80E0 ldi R24,<_CANIDM+3
00EE 90E0 ldi R25,>_CANIDM+3
00F0 E80F add R30,R24
00F2 F91F adc R31,R25
00F4 6083 std z+0,R22
00F6 .dbline 67
00F6 84E0 ldi R24,4
00F8 849F mul R24,R20
00FA F001 movw R30,R0
00FC 80E0 ldi R24,<_CANIDM+2
00FE 90E0 ldi R25,>_CANIDM+2
0100 E80F add R30,R24
0102 F91F adc R31,R25
0104 1B01 movw R2,R22
0106 232C mov R2,R3
0108 3324 clr R3
010A 2082 std z+0,R2
010C .dbline 68
010C 84E0 ldi R24,4
010E 849F mul R24,R20
0110 F001 movw R30,R0
0112 80E0 ldi R24,<_CANIDM+1
0114 90E0 ldi R25,>_CANIDM+1
0116 E80F add R30,R24
0118 F91F adc R31,R25
011A A082 std z+0,R10
011C .dbline 69
011C 84E0 ldi R24,4
011E 849F mul R24,R20
0120 F001 movw R30,R0
0122 80E0 ldi R24,<_CANIDM
0124 90E0 ldi R25,>_CANIDM
0126 E80F add R30,R24
0128 F91F adc R31,R25
012A 1501 movw R2,R10
012C 232C mov R2,R3
012E 3324 clr R3
0130 2082 std z+0,R2
0132 .dbline 70
0132 0000 nop
0134 .dbline 71
0134 L11:
0134 .dbline 61
0134 4395 inc R20
0136 L13:
0136 .dbline 61
0136 4F30 cpi R20,15
0138 08F4 brsh X1
013A BACF xjmp L10
013C X1:
013C .dbline 73
013C ; {
013C ; temp=CANMOBMD[i]<<3;
013C ; temp1=(unsigned int)temp;
013C ; temp2=(unsigned int)(temp/0x00010000);
013C ; CANIDM[i][3]=(Uchar)temp1;
013C ; CANIDM[i][2]=(Uchar)(temp1>>8);
013C ; CANIDM[i][1]=(Uchar)temp2;
013C ; CANIDM[i][0]=(Uchar)(temp2>>8);
013C ; NOP();
013C ; }
013C ; //reset all MObs
013C ; for (i=0; i<15; i++)
013C 4427 clr R20
013E 23C0 xjmp L20
0140 L17:
0140 .dbline 74
0140 ; {
0140 .dbline 75
0140 ; CANPAGE = (i<<4); //select MOb
0140 842F mov R24,R20
0142 8F70 andi R24,#0x0F
0144 8295 swap R24
0146 8093ED00 sts 237,R24
014A .dbline 76
014A ; CANCDMOB = 0; //disable MOb
014A 2224 clr R2
014C 2092EF00 sts 239,R2
0150 .dbline 77
0150 ; CANSTMOB = 0; //clear status
0150 2092EE00 sts 238,R2
0154 .dbline 78
0154 ; CANIDT1 = 0; //clear ID
0154 2092F300 sts 243,R2
0158 .dbline 79
0158 ; CANIDT2 = 0;
0158 2092F200 sts 242,R2
015C .dbline 80
015C ; CANIDT3 = 0;
015C 2092F100 sts 241,R2
0160 .dbline 81
0160 ; CANIDT4 = 0;
0160 2092F000 sts 240,R2
0164 .dbline 82
0164 ; CANIDM1 = 0; //clear mask
0164 2092F700 sts 247,R2
0168 .dbline 83
0168 ; CANIDM2 = 0;
0168 2092F600 sts 246,R2
016C .dbline 84
016C ; CANIDM3 = 0;
016C 2092F500 sts 245,R2
0170 .dbline 85
0170 ; CANIDM4 = 0;
0170 2092F400 sts 244,R2
0174 .dbline 86
0174 ; for (j=0; j<8; j++)
0174 6627 clr R22
0176 04C0 xjmp L24
0178 L21:
0178 .dbline 87
0178 2224 clr R2
017A 2092FA00 sts 250,R2
017E L22:
017E .dbline 86
017E 6395 inc R22
0180 L24:
0180 .dbline 86
0180 6830 cpi R22,8
0182 D0F3 brlo L21
0184 .dbline 88
0184 L18:
0184 .dbline 73
0184 4395 inc R20
0186 L20:
0186 .dbline 73
0186 4F30 cpi R20,15
0188 D8F2 brlo L17
018A .dbline 96
018A ; CANMSG = 0; //clear data
018A ; }
018A ;
018A ; //bit timing -> datasheet page 260 (check table) 250Kbps
018A ; //CANBT1 = 0x02; //16Mhz,1Mbps
018A ; //CANBT2 = 0x04;
018A ; //CANBT3 = 0x13;
018A ;
018A ; //canbaud= EEPROM_read(0x0020);
018A ; CANBT1 = CanBaud[2][0];
018A E0E0 ldi R30,<_CanBaud+6
018C F0E0 ldi R31,>_CanBaud+6
018E E491 lpm R30,Z
0190 E093E200 sts 226,R30
0194 .dbline 97
0194 ; CANBT2 = CanBaud[2][1];
0194 E0E0 ldi R30,<_CanBaud+6+1
0196 F0E0 ldi R31,>_CanBaud+6+1
0198 E491 lpm R30,Z
019A E093E300 sts 227,R30
019E .dbline 98
019E ; CANBT3 = CanBaud[2][2];
019E E0E0 ldi R30,<_CanBaud+6+2
01A0 F0E0 ldi R31,>_CanBaud+6+2
01A2 E491 lpm R30,Z
01A4 E093E400 sts 228,R30
01A8 .dbline 102
01A8 ;
01A8 ; //configure MObi
01A8 ; /******************************************************************/
01A8 ; for (i=0; i<15; i++)
01A8 4427 clr R20
01AA 5AC0 xjmp L33
01AC L30:
01AC .dbline 103
01AC .dbline 104
01AC 842F mov R24,R20
01AE 8F70 andi R24,#0x0F
01B0 8295 swap R24
01B2 8093ED00 sts 237,R24
01B6 .dbline 105
01B6 84E0 ldi R24,4
01B8 849F mul R24,R20
01BA F001 movw R30,R0
01BC 80E0 ldi R24,<_CANIDT
01BE 90E0 ldi R25,>_CANIDT
01C0 E80F add R30,R24
01C2 F91F adc R31,R25
01C4 2080 ldd R2,z+0
01C6 2092F300 sts 243,R2
01CA .dbline 106
01CA 84E0 ldi R24,4
01CC 849F mul R24,R20
01CE F001 movw R30,R0
01D0 80E0 ldi R24,<_CANIDT+1
01D2 90E0 ldi R25,>_CANIDT+1
01D4 E80F add R30,R24
01D6 F91F adc R31,R25
01D8 2080 ldd R2,z+0
01DA 2092F200 sts 242,R2
01DE .dbline 107
01DE 84E0 ldi R24,4
01E0 849F mul R24,R20
01E2 F001 movw R30,R0
01E4 80E0 ldi R24,<_CANIDT+2
01E6 90E0 ldi R25,>_CANIDT+2
01E8 E80F add R30,R24
01EA F91F adc R31,R25
01EC 2080 ldd R2,z+0
01EE 2092F100 sts 241,R2
01F2 .dbline 108
01F2 84E0 ldi R24,4
01F4 849F mul R24,R20
01F6 F001 movw R30,R0
01F8 80E0 ldi R24,<_CANIDT+3
01FA 90E0 ldi R25,>_CANIDT+3
01FC E80F add R30,R24
01FE F91F adc R31,R25
0200 2080 ldd R2,z+0
0202 2092F000 sts 240,R2
0206 .dbline 109
0206 84E0 ldi R24,4
0208 849F mul R24,R20
020A F001 movw R30,R0
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -