📄 at90can128.lis
字号:
0194 3991 ld R19,y+
0196 2991 ld R18,y+
0198 1991 ld R17,y+
019A 0991 ld R16,y+
019C 9990 ld R9,y+
019E 8990 ld R8,y+
01A0 7990 ld R7,y+
01A2 6990 ld R6,y+
01A4 5990 ld R5,y+
01A6 4990 ld R4,y+
01A8 3990 ld R3,y+
01AA 2990 ld R2,y+
01AC 1990 ld R1,y+
01AE 0990 ld R0,y+
01B0 1895 reti
01B2 .dbend
.area vector(rom, abs)
.org 36
0024 0C94D900 jmp _TIMER2_COMP_ISR
.area text(rom, con, rel)
01B2 .dbfile D:\CANBUS\数据帧\查询\单向通讯\结点2\AT90CAN128.C
01B2 .dbfunc e TIMER2_COMP_ISR _TIMER2_COMP_ISR fV
.even
01B2 _TIMER2_COMP_ISR::
01B2 2A92 st -y,R2
01B4 3A92 st -y,R3
01B6 8A93 st -y,R24
01B8 9A93 st -y,R25
01BA AA93 st -y,R26
01BC EA93 st -y,R30
01BE 2FB6 in R2,0x3f
01C0 2A92 st -y,R2
01C2 .dbline -1
01C2 .dbline 202
01C2 ; }
01C2 ;
01C2 ;
01C2 ; #pragma interrupt_handler TIMER2_COMP_ISR:iv_TIMER2_COMP
01C2 ; void TIMER2_COMP_ISR(void)
01C2 ; {
01C2 .dbline 203
01C2 ; if (!send_mark)
01C2 20900800 lds R2,_send_mark
01C6 2220 tst R2
01C8 B1F4 brne L44
01CA X12:
01CA .dbline 204
01CA ; {
01CA .dbline 205
01CA ; send_time++;
01CA 80910A00 lds R24,_send_time
01CE 90910B00 lds R25,_send_time+1
01D2 0196 adiw R24,1
01D4 90930B00 sts _send_time+1,R25
01D8 80930A00 sts _send_time,R24
01DC .dbline 206
01DC ; if (send_time >= 100)
01DC 8436 cpi R24,100
01DE E0E0 ldi R30,0
01E0 9E07 cpc R25,R30
01E2 48F0 brlo L46
01E4 X13:
01E4 .dbline 207
01E4 ; {
01E4 .dbline 208
01E4 ; send_mark = TRUE;
01E4 81E0 ldi R24,1
01E6 80930800 sts _send_mark,R24
01EA .dbline 209
01EA ; send_time = 0;
01EA 2224 clr R2
01EC 3324 clr R3
01EE 30920B00 sts _send_time+1,R3
01F2 20920A00 sts _send_time,R2
01F6 .dbline 210
01F6 ; }
01F6 L46:
01F6 .dbline 211
01F6 ; }
01F6 L44:
01F6 .dbline 212
01F6 ; if (!display_mark)
01F6 20900900 lds R2,_display_mark
01FA 2220 tst R2
01FC B1F4 brne L48
01FE X14:
01FE .dbline 213
01FE ; {
01FE .dbline 214
01FE ; display_time++;
01FE 80910C00 lds R24,_display_time
0202 90910D00 lds R25,_display_time+1
0206 0196 adiw R24,1
0208 90930D00 sts _display_time+1,R25
020C 80930C00 sts _display_time,R24
0210 .dbline 215
0210 ; if (display_time >= 25)
0210 8931 cpi R24,25
0212 E0E0 ldi R30,0
0214 9E07 cpc R25,R30
0216 48F0 brlo L50
0218 X15:
0218 .dbline 216
0218 ; {
0218 .dbline 217
0218 ; display_time = 0;
0218 2224 clr R2
021A 3324 clr R3
021C 30920D00 sts _display_time+1,R3
0220 20920C00 sts _display_time,R2
0224 .dbline 218
0224 ; display_mark = TRUE;
0224 81E0 ldi R24,1
0226 80930900 sts _display_mark,R24
022A .dbline 219
022A ; }
022A L50:
022A .dbline 220
022A ; }
022A L48:
022A .dbline -2
022A L43:
022A .dbline 0 ; func end
022A 2990 ld R2,y+
022C 2FBE out 0x3f,R2
022E E991 ld R30,y+
0230 A991 ld R26,y+
0232 9991 ld R25,y+
0234 8991 ld R24,y+
0236 3990 ld R3,y+
0238 2990 ld R2,y+
023A 1895 reti
023C .dbend
023C .dbfunc e CHA_Init _CHA_Init fV
.even
023C _CHA_Init::
023C .dbline -1
023C .dbline 225
023C ; }
023C ;
023C ;
023C ; void CHA_Init(void)
023C ; {
023C .dbline 226
023C ; CHA++;
023C 80910100 lds R24,_CHA
0240 8F5F subi R24,255 ; addi 1
0242 80930100 sts _CHA,R24
0246 .dbline 227
0246 ; if (CHA >= 100)
0246 80910100 lds R24,_CHA
024A 8436 cpi R24,100
024C 18F0 brlo L53
024E X16:
024E .dbline 228
024E ; CHA = 0;
024E 2224 clr R2
0250 20920100 sts _CHA,R2
0254 L53:
0254 .dbline -2
0254 L52:
0254 .dbline 0 ; func end
0254 0895 ret
0256 .dbend
0256 .dbfunc e main _main fV
0256 ; i -> R20
.even
0256 _main::
0256 .dbline -1
0256 .dbline 232
0256 ; }
0256 ;
0256 ; void main(void)
0256 ; {
0256 .dbline 235
0256 ; uint8 i;
0256 ;
0256 ; CLI();
0256 F894 cli
0258 .dbline 236
0258 ; PORT_Init();
0258 D3DE xcall _PORT_Init
025A .dbline 237
025A ; TIMER0_Init();
025A EADE xcall _TIMER0_Init
025C .dbline 238
025C ; TIMER2_Init();
025C F7DE xcall _TIMER2_Init
025E .dbline 240
025E ; // USART1_Init();
025E ; TJA1040_DISABLE();
025E 5C9A sbi 0xb,4
0260 .dbline 241
0260 ; NOP();
0260 0000 nop
0262 .dbline 242
0262 ; NOP();
0262 0000 nop
0264 .dbline 243
0264 ; TJA1040_ENABLE();
0264 5C98 cbi 0xb,4
0266 .dbline 244
0266 ; NOP();
0266 0000 nop
0268 .dbline 245
0268 ; NOP();
0268 0000 nop
026A .dbline 246
026A ; CAN_Init();
026A 0E940000 xcall _CAN_Init
026E .dbline 247
026E ; Watchdog_Init();
026E FEDE xcall _Watchdog_Init
0270 .dbline 248
0270 ; SEI();
0270 7894 sei
0272 B7C0 xjmp L57
0274 L56:
0274 .dbline 250
0274 ; while (1)
0274 ; {
0274 .dbline 287
0274 ; /*
0274 ; 00000000: 02 41 00 02 02 00 00 00 00 00 00 00 00 00 00 00 .A..............
0274 ; 00000010: 02 42 00 03 03 03 00 00 00 00 00 00 00 00 00 00 .B..............
0274 ; 00000020: 02 43 00 04 04 04 04 00 00 00 00 00 00 00 00 00 .C..............
0274 ; 00000030: 02 44 00 05 05 05 05 05 00 00 00 00 00 00 00 00 .D..............
0274 ; 00000040: 02 45 00 06 06 06 06 06 06 00 00 00 00 00 00 00 .E..............
0274 ; 00000050: 02 46 00 07 07 07 07 07 07 07 00 00 00 00 00 00 .F..............
0274 ; 00000060: 02 47 00 08 08 08 08 08 08 08 08 00 00 00 00 00 .G..............
0274 ; 00000070: 02 48 00 01 00 00 00 00 00 00 00 00 00 00 00 00 .H..............
0274 ; 00000080: 02 41 00 02 02 00 00 00 00 00 00 00 00 00 00 00 .A..............
0274 ; 00000090: 02 42 00 03 03 03 00 00 00 00 00 00 00 00 00 00 .B..............
0274 ; 000000A0: 02 43 00 04 04 04 04 00 00 00 00 00 00 00 00 00 .C..............
0274 ; 000000B0: 02 44 00 05 05 05 05 05 00 00 00 00 00 00 00 00 .D..............
0274 ; 000000C0: 02 45 00 06 06 06 06 06 06 00 00 00 00 00 00 00 .E..............
0274 ; 000000D0: 02 46 00 07 07 07 07 07 07 07 00 00 00 00 00 00 .F..............
0274 ; 000000E0: 02 47 00 08 08 08 08 08 08 08 08 00 00 00 00 00 .G..............
0274 ; 000000F0: 02 48 00 01 00 00 00 00 00 00 00 00 00 00 00 00 .H..............
0274 ; 00000100: 02 41 00 02 02 00 00 00 00 00 00 00 00 00 00 00 .A..............
0274 ; 00000110: 02 42 00 03 03 03 00 00 00 00 00 00 00 00 00 00 .B..............
0274 ; 00000120: 02 43 00 04 04 04 04 00 00 00 00 00 00 00 00 00 .C..............
0274 ; 00000130: 02 44 00 05 05 05 05 05 00 00 00 00 00 00 00 00 .D..............
0274 ; 00000140: 02 45 00 06 06 06 06 06 06 00 00 00 00 00 00 00 .E..............
0274 ; 00000150: 02 46 00 07 07 07 07 07 07 07 00 00 00 00 00 00 .F..............
0274 ; 00000160: 02 47 00 08 08 08 08 08 08 08 08 00 00 00 00 00 .G..............
0274 ; 00000170: 02 48 00 01 00 00 00 00 00 00 00 00 00 00 00 00 .H..............
0274 ; 00000180: 02 41 00 02 02 00 00 00 00 00 00 00 00 00 00 00 .A..............
0274 ; 00000190: 02 42 00 03 03 03 00 00 00 00 00 00 00 00 00 00 .B..............
0274 ; 000001A0: 02 43 00 04 04 04 04 00 00 00 00 00 00 00 00 00 .C..............
0274 ; 000001B0: 02 44 00 05 05 05 05 05 00 00 00 00 00 00 00 00 .D..............
0274 ; 000001C0: 02 45 00 06 06 06 06 06 06 00 00 00 00 00 00 00 .E..............
0274 ; 000001D0: 02 46 00 07 07 07 07 07 07 07 00 00 00 00 00 00 .F..............
0274 ; 000001E0: 02 47 00 08 08 08 08 08 08 08 08 00 00 00 00 00 .G..............
0274 ; 000001F0: 02 48 00 01 00 00 00 00 00 00 00 00 00 00 00 00 .H..............
0274 ; 00000200: 02 41 00 02 02 00 00 00 00 00 00 00 00 00 00 00 .A..............
0274 ;
0274 ; */
0274 ; if (send_mark)
0274 20900800 lds R2,_send_mark
0278 2220 tst R2
027A 09F4 brne X38
027C A0C0 xjmp L59
027E X38:
027E X17:
027E .dbline 288
027E ; {
027E .dbline 289
027E ; send_mark = FALSE;
027E 2224 clr R2
0280 20920800 sts _send_mark,R2
0284 .dbline 290
0284 ; if (!(CANGSTA & (1 << TXBSY)))
0284 2090D900 lds R2,217
0288 24FC sbrc R2,4
028A 99C0 rjmp L61
028C X18:
028C .dbline 291
028C ; {
028C .dbline 292
028C ; CANPAGE = 0x00;
028C 2224 clr R2
028E 2092ED00 sts 237,R2
0292 .dbline 293
0292 ; if (CANSTMOB & BIT(TXOK))
0292 2090EE00 lds R2,238
0296 26FE sbrs R2,6
0298 92C0 rjmp L63
029A X19:
029A .dbline 294
029A ; {
029A .dbline 295
029A ; CANSTMOB &= ~ BIT(TXOK);
029A 8091EE00 lds R24,238
029E 8F7B andi R24,191
02A0 8093EE00 sts 238,R24
02A4 .dbline 296
02A4 ; me_DLC++;
02A4 80910200 lds R24,_me_DLC
02A8 8F5F subi R24,255 ; addi 1
02AA 80930200 sts _me_DLC,R24
02AE .dbline 297
02AE ; if (me_DLC >= 9)
02AE 8930 cpi R24,9
02B0 18F0 brlo L65
02B2 X20:
02B2 .dbline 298
02B2 ; me_DLC = 1;
02B2 81E0 ldi R24,1
02B4 80930200 sts _me_DLC,R24
02B8 L65:
02B8 .dbline 299
02B8 ; switch (me_DLC)
02B8 40910200 lds R20,_me_DLC
02BC 5527 clr R21
02BE 4130 cpi R20,1
02C0 E0E0 ldi R30,0
02C2 5E07 cpc R21,R30
02C4 11F1 breq L70
02C6 X21:
02C6 4230 cpi R20,2
02C8 E0E0 ldi R30,0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -