⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 at90can128.lis

📁 不可多得的atmel公司canbus通讯程序(at90can128)
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 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 + -