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

📄 can_module.lis

📁 Atmel mcu can interface design example
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0286           ;                       write_sja(BTR1, SJA_BTR_CODETAB[BaudRateSize*2 + 1]);
 0286 82E0              ldi R24,2
 0288 8A9D              mul R24,R10
 028A F001              movw R30,R0
 028C 80E0              ldi R24,<_SJA_BTR_CODETAB+1
 028E 90E0              ldi R25,>_SJA_BTR_CODETAB+1
 0290 E80F              add R30,R24
 0292 F91F              adc R31,R25
 0294 2081              ldd R18,z+0
 0296 07E0              ldi R16,7
 0298 C0DE              xcall _write_sja
 029A                   .dbline 268
 029A           ;                       if(read_sja(BTR1) != SJA_BTR_CODETAB[BaudRateSize*2 + 1])
 029A 07E0              ldi R16,7
 029C B1DE              xcall _read_sja
 029E 82E0              ldi R24,2
 02A0 8A9D              mul R24,R10
 02A2 F001              movw R30,R0
 02A4 80E0              ldi R24,<_SJA_BTR_CODETAB+1
 02A6 90E0              ldi R25,>_SJA_BTR_CODETAB+1
 02A8 E80F              add R30,R24
 02AA F91F              adc R31,R25
 02AC 2080              ldd R2,z+0
 02AE 0215              cp R16,R2
 02B0 09F0              breq L77
 02B2                   .dbline 269
 02B2           ;                       {
 02B2                   .dbline 270
 02B2           ;                          continue;
 02B2 02C0              xjmp L72
 02B4           L77:
 02B4                   .dbline 272
 02B4 4427              clr R20
 02B6                   .dbline 273
 02B6 06C0              xjmp L73
 02B8           L72:
 02B8                   .dbline 258
 02B8 862F              mov R24,R22
 02BA 8150              subi R24,1
 02BC 682F              mov R22,R24
 02BE 8823              tst R24
 02C0 09F0              breq X6
 02C2 C9CF              xjmp L71
 02C4           X6:
 02C4           L73:
 02C4                   .dbline 275
 02C4           ;                       }
 02C4           ;                       Err_Flag = FALSE;
 02C4           ;                       break;
 02C4           ;               }
 02C4           ;        }
 02C4           L70:
 02C4                   .dbline 276
 02C4           ;        return Err_Flag;
 02C4 042F              mov R16,R20
 02C6                   .dbline -2
 02C6           L68:
 02C6 0E940000          xcall pop_gset3
 02CA                   .dbline 0 ; func end
 02CA 0895              ret
 02CC                   .dbsym r Err_Flag 20 c
 02CC                   .dbsym r Err_Cnt 22 c
 02CC                   .dbsym r BaudRateSize 10 c
 02CC                   .dbend
 02CC                   .dbfunc e SJASetOtherReg _SJASetOtherReg fc
 02CC           ;       Err_Flag -> R20
 02CC           ;        Err_Cnt -> R22
                        .even
 02CC           _SJASetOtherReg::
 02CC 0E940000          xcall push_gset2
 02D0                   .dbline -1
 02D0                   .dbline 327
 02D0           ;        
 02D0           ; }     
 02D0           ; 
 02D0           ; /*void SJAWriteDataToTxBuf(unsigned char Num, unsigned char Data)
 02D0           ; {
 02D0           ;     switch(Num)
 02D0           ;       {
 02D0           ;             case 0:
 02D0           ;                      TX_Buffer[0] = Data;
 02D0           ;                          break;
 02D0           ;             case 1:
 02D0           ;                      TX_Buffer[1] = Data;
 02D0           ;                          break;
 02D0           ;                 case 2:                          
 02D0           ;                  TX_Buffer[2] = Data;
 02D0           ;                          break;
 02D0           ;                 case 3:                          
 02D0           ;                  TX_Buffer[3] = Data;
 02D0           ;                          break;
 02D0           ;                 case 4:                          
 02D0           ;                  TX_Buffer[4] = Data;
 02D0           ;                          break;
 02D0           ;             case 5:                      
 02D0           ;                  TX_Buffer[5] = Data;
 02D0           ;                          break;                          
 02D0           ;                 case 6:                          
 02D0           ;                  TX_Buffer[6] = Data;
 02D0           ;                          break;       
 02D0           ;                 case 7:                          
 02D0           ;                  TX_Buffer[7] = Data;
 02D0           ;                          break;       
 02D0           ;             case 8:                      
 02D0           ;                  TX_Buffer[8] = Data;
 02D0           ;                          break;
 02D0           ;                 case 9:                          
 02D0           ;                  TX_Buffer[9] = Data;
 02D0           ;                          break;       
 02D0           ;                 case 10:                         
 02D0           ;                  TX_Buffer[10] = Data;
 02D0           ;                          break;       
 02D0           ;                 case 11:                         
 02D0           ;                  TX_Buffer[11] = Data;
 02D0           ;                          break;       
 02D0           ;                 case 12:                         
 02D0           ;                  TX_Buffer[12] = Data;
 02D0           ;                          break;                                                                                  
 02D0           ;       }
 02D0           ; }*/
 02D0           ; 
 02D0           ; unsigned char SJASetOtherReg(void)
 02D0           ; {
 02D0                   .dbline 328
 02D0           ;     unsigned char Err_Cnt = 0x20;
 02D0 60E2              ldi R22,32
 02D2                   .dbline 329
 02D2           ;       unsigned char Err_Flag = TRUE;
 02D2 41E0              ldi R20,1
 02D4                   .dbline 331
 02D4           ;        
 02D4           ;       if(SJATestRstMode())
 02D4 F7DE              xcall _SJATestRstMode
 02D6 0023              tst R16
 02D8 31F1              breq L84
 02DA                   .dbline 332
 02DA           ;       {
 02DA                   .dbline 333
 02DA           ;          Err_Flag = TRUE;
 02DA                   .dbline 334
 02DA           ;       }
 02DA 2AC0              xjmp L82
 02DC           X7:
 02DC                   .dbline 336
 02DC           ;       else
 02DC           ;       {
 02DC           L83:
 02DC                   .dbline 338
 02DC           ;               while(--Err_Cnt)
 02DC           ;               {
 02DC                   .dbline 339
 02DC           ;               write_sja(RXERR,0x00);  
 02DC 2227              clr R18
 02DE 0EE0              ldi R16,14
 02E0 9CDE              xcall _write_sja
 02E2                   .dbline 340
 02E2           ;                       if(read_sja(RXERR) != 0x00)
 02E2 0EE0              ldi R16,14
 02E4 8DDE              xcall _read_sja
 02E6 0023              tst R16
 02E8 09F0              breq L86
 02EA                   .dbline 341
 02EA           ;                       {
 02EA                   .dbline 342
 02EA           ;                               continue;
 02EA 1DC0              xjmp L84
 02EC           L86:
 02EC                   .dbline 345
 02EC           ;                       }
 02EC           ;                
 02EC           ;                   Err_Cnt = 0x20;
 02EC 60E2              ldi R22,32
 02EE                   .dbline 346
 02EE           ;                   write_sja(TXERR,0x00);;     
 02EE 2227              clr R18
 02F0 0FE0              ldi R16,15
 02F2 93DE              xcall _write_sja
 02F4                   .dbline 346
 02F4                   .dbline 347
 02F4           ;                   if(read_sja(TXERR) != 0x00)
 02F4 0FE0              ldi R16,15
 02F6 84DE              xcall _read_sja
 02F8 0023              tst R16
 02FA 09F0              breq L88
 02FC                   .dbline 348
 02FC           ;                   {
 02FC                   .dbline 349
 02FC           ;                      continue;
 02FC 14C0              xjmp L84
 02FE           L88:
 02FE                   .dbline 352
 02FE           ;                   } 
 02FE           ;                
 02FE           ;                   Err_Cnt = 0x20;
 02FE 60E2              ldi R22,32
 0300                   .dbline 353
 0300           ;                   write_sja(ECC,0x00);        
 0300 2227              clr R18
 0302 0CE0              ldi R16,12
 0304 8ADE              xcall _write_sja
 0306                   .dbline 354
 0306           ;                   if(read_sja(ECC) != 0x00)
 0306 0CE0              ldi R16,12
 0308 7BDE              xcall _read_sja
 030A 0023              tst R16
 030C 09F0              breq L90
 030E                   .dbline 355
 030E           ;                   {
 030E                   .dbline 356
 030E           ;                      continue;
 030E 0BC0              xjmp L84
 0310           L90:
 0310                   .dbline 359
 0310           ;                   }
 0310           ;                
 0310           ;                   Err_Cnt = 0x20;
 0310 60E2              ldi R22,32
 0312                   .dbline 360
 0312           ;                   write_sja(RBSA,0x00);;      
 0312 2227              clr R18
 0314 0EE1              ldi R16,30
 0316 81DE              xcall _write_sja
 0318                   .dbline 360
 0318                   .dbline 361
 0318           ;                   if(read_sja(RBSA) != 0x00)
 0318 0EE1              ldi R16,30
 031A 72DE              xcall _read_sja
 031C 0023              tst R16
 031E 09F0              breq L92
 0320                   .dbline 362
 0320           ;                   {
 0320                   .dbline 363
 0320           ;                      continue;
 0320 02C0              xjmp L84
 0322           L92:
 0322                   .dbline 366
 0322 4427              clr R20
 0324                   .dbline 367
 0324 05C0              xjmp L85
 0326           L84:
 0326                   .dbline 337
 0326 862F              mov R24,R22
 0328 8150              subi R24,1
 032A 682F              mov R22,R24
 032C 8823              tst R24
 032E B1F6              brne L83
 0330           L85:
 0330                   .dbline 369
 0330           ;                   }
 0330           ;                
 0330           ;                   Err_Flag = FALSE;
 0330           ;                   break;
 0330           ;          }
 0330           ;       }
 0330           L82:
 0330                   .dbline 370
 0330           ;       return Err_Flag;
 0330 042F              mov R16,R20
 0332                   .dbline -2
 0332           L80:
 0332 0E940000          xcall pop_gset2
 0336                   .dbline 0 ; func end
 0336 0895              ret
 0338                   .dbsym r Err_Flag 20 c
 0338                   .dbsym r Err_Cnt 22 c
 0338                   .dbend
 0338                   .dbfunc e SJASetIER _SJASetIER fc
 0338           ;       Err_Flag -> R20
 0338           ;        Err_Cnt -> R22
 0338           ;          value -> R10
                        .even
 0338           _SJASetIER::
 0338 0E940000          xcall push_gset3
 033C A02E              mov R10,R16
 033E                   .dbline -1
 033E                   .dbline 374
 033E           ; }
 033E           ; 
 033E           ; unsigned char SJASetIER(unsigned char value)
 033E           ; {
 033E                   .dbline 375
 033E           ;      unsigned char Err_Cnt = 0x20;
 033E 60E2              ldi R22,32
 0340                   .dbline 376
 0340           ;        unsigned char Err_Flag = TRUE;
 0340 41E0              ldi R20,1
 0342 09C0              xjmp L96
 0344           L95:
 0344                   .dbline 385
 0344           ;        
 0344           ;        /*if(SJATestRstMode())
 0344           ;        {
 0344           ;          Err_Flag = TRUE;
 0344           ;        }
 0344           ;        else*/
 0344           ;        //{
 0344           ;           while(--Err_Cnt)
 0344           ;           {
 0344                   .dbline 386
 0344           ;              write_sja(IER, value);
 0344 2A2D              mov R18,R10
 0346 04E0              ldi R16,4
 0348 68DE              xcall _write_sja
 034A                   .dbline 387
 034A           ;                  if(read_sja(IER) == value)
 034A 04E0              ldi R16,4
 034C 59DE              xcall _read_sja
 034E 0A15              cp R16,R10
 0350 11F4              brne L98
 0352                   .dbline 388
 0352           ;                  {
 0352                   .dbline 389
 0352           ;                     Err_Flag = FALSE;
 0352 4427              clr R20
 0354                   .dbline 390
 0354           ;                         break;
 0354 05C0              xjmp L97
 0356           L98:
 0356                   .dbline 392
 0356           L96:
 0356                   .dbline 384
 0356 862F              mov R24,R22
 0358 8150              subi R24,1
 035A 682F              mov R22,R24
 035C 8823              tst R24
 035E 91F7              brne L95
 0360           L97:
 0360                   .dbline 394
 0360           ;                  }
 0360           ;           }
 0360           ;      //}
 0360           ;        return Err_Flag;
 0360 042F              mov R16,R20
 0362                   .dbline -2
 0362           L94:
 0362 0E940000          xcall pop_gset3

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -