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

📄 can_module.lis

📁 Atmel mcu can interface design example
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 00E2           ;        Err_Cnt -> R22
 00E2           ;        OutCtrl -> R10
                        .even
 00E2           _SJASetOutControl::
 00E2 0E940000          xcall push_gset3
 00E6 A02E              mov R10,R16
 00E8                   .dbline -1
 00E8                   .dbline 92
 00E8           ; }
 00E8           ; 
 00E8           ; unsigned char SJASetOutControl(unsigned char OutCtrl)
 00E8           ; {
 00E8                   .dbline 93
 00E8           ;     unsigned char Err_Cnt = 0x20;
 00E8 60E2              ldi R22,32
 00EA                   .dbline 94
 00EA           ;       unsigned char Err_Flag = TRUE;
 00EA 41E0              ldi R20,1
 00EC                   .dbline 95
 00EC           ;       if(SJATestRstMode())
 00EC EBDF              xcall _SJATestRstMode
 00EE 0023              tst R16
 00F0 51F0              breq L28
 00F2                   .dbline 96
 00F2           ;       {
 00F2                   .dbline 97
 00F2           ;          Err_Flag = TRUE;
 00F2                   .dbline 98
 00F2           ;       }
 00F2 0EC0              xjmp L26
 00F4           X0:
 00F4                   .dbline 100
 00F4           ;       else
 00F4           ;       {
 00F4           L27:
 00F4                   .dbline 102
 00F4           ;          while(--Err_Cnt)
 00F4           ;          {
 00F4                   .dbline 103
 00F4           ;             write_sja(OCR, OutCtrl);
 00F4 2A2D              mov R18,R10
 00F6 08E0              ldi R16,8
 00F8 90DF              xcall _write_sja
 00FA                   .dbline 104
 00FA           ;                 if(read_sja(OCR) == OutCtrl)
 00FA 08E0              ldi R16,8
 00FC 81DF              xcall _read_sja
 00FE 0A15              cp R16,R10
 0100 11F4              brne L30
 0102                   .dbline 105
 0102           ;                 {
 0102                   .dbline 106
 0102           ;                    Err_Flag = FALSE;
 0102 4427              clr R20
 0104                   .dbline 107
 0104           ;                        break;
 0104 05C0              xjmp L29
 0106           L30:
 0106                   .dbline 109
 0106           L28:
 0106                   .dbline 101
 0106 862F              mov R24,R22
 0108 8150              subi R24,1
 010A 682F              mov R22,R24
 010C 8823              tst R24
 010E 91F7              brne L27
 0110           L29:
 0110                   .dbline 110
 0110           ;                 }
 0110           ;          }
 0110           ;       }
 0110           L26:
 0110                   .dbline 111
 0110           ;       return Err_Flag;
 0110 042F              mov R16,R20
 0112                   .dbline -2
 0112           L24:
 0112 0E940000          xcall pop_gset3
 0116                   .dbline 0 ; func end
 0116 0895              ret
 0118                   .dbsym r Err_Flag 20 c
 0118                   .dbsym r Err_Cnt 22 c
 0118                   .dbsym r OutCtrl 10 c
 0118                   .dbend
 0118                   .dbfunc e SJASetAccCode _SJASetAccCode fc
 0118           ;       Err_Flag -> R20
 0118           ;        Err_Cnt -> R22
 0118           ;           acr3 -> R10
 0118           ;           acr2 -> R12
 0118           ;           acr1 -> R14
 0118           ;           acr0 -> y+10
                        .even
 0118           _SJASetAccCode::
 0118 0E940000          xcall push_arg4
 011C 0E940000          xcall push_gset5
 0120 E22E              mov R14,R18
 0122 CE84              ldd R12,y+14
 0124 A888              ldd R10,y+16
 0126                   .dbline -1
 0126                   .dbline 117
 0126           ; }
 0126           ; 
 0126           ; 
 0126           ; 
 0126           ; unsigned char SJASetAccCode(unsigned char acr0, unsigned char acr1, unsigned char acr2, unsigned char acr3)
 0126           ; {
 0126                   .dbline 118
 0126           ;     unsigned char Err_Cnt = 0x20;
 0126 60E2              ldi R22,32
 0128                   .dbline 119
 0128           ;       unsigned char Err_Flag = TRUE;
 0128 41E0              ldi R20,1
 012A                   .dbline 120
 012A           ;       if(SJATestRstMode())
 012A CCDF              xcall _SJATestRstMode
 012C 0023              tst R16
 012E 39F1              breq L36
 0130                   .dbline 121
 0130           ;       {
 0130                   .dbline 122
 0130           ;          Err_Flag = TRUE;
 0130                   .dbline 123
 0130           ;       }
 0130 2BC0              xjmp L34
 0132           X1:
 0132                   .dbline 125
 0132           ;       else
 0132           ;       {
 0132           L35:
 0132                   .dbline 127
 0132           ;          while(--Err_Cnt)
 0132           ;          {
 0132                   .dbline 128
 0132           ;             write_sja(ACR0, acr0);
 0132 2A85              ldd R18,y+10
 0134 00E1              ldi R16,16
 0136 71DF              xcall _write_sja
 0138                   .dbline 129
 0138           ;                 if(read_sja(ACR0) != acr0)
 0138 00E1              ldi R16,16
 013A 62DF              xcall _read_sja
 013C 0A84              ldd R0,y+10
 013E 0015              cp R16,R0
 0140 09F0              breq L38
 0142                   .dbline 130
 0142           ;                 {
 0142                   .dbline 131
 0142           ;                    continue;
 0142 1DC0              xjmp L36
 0144           L38:
 0144                   .dbline 134
 0144           ;                 } 
 0144           ;                 
 0144           ;                 Err_Cnt = 0x20;
 0144 60E2              ldi R22,32
 0146                   .dbline 135
 0146           ;                 write_sja(ACR1, acr1);
 0146 2E2D              mov R18,R14
 0148 01E1              ldi R16,17
 014A 67DF              xcall _write_sja
 014C                   .dbline 136
 014C           ;                 if(read_sja(ACR1) != acr1)
 014C 01E1              ldi R16,17
 014E 58DF              xcall _read_sja
 0150 0E15              cp R16,R14
 0152 09F0              breq L40
 0154                   .dbline 137
 0154           ;                 {
 0154                   .dbline 138
 0154           ;                    continue;
 0154 14C0              xjmp L36
 0156           L40:
 0156                   .dbline 141
 0156           ;                 } 
 0156           ;                 
 0156           ;                 Err_Cnt = 0x20;
 0156 60E2              ldi R22,32
 0158                   .dbline 142
 0158           ;                 write_sja(ACR2, acr2);
 0158 2C2D              mov R18,R12
 015A 02E1              ldi R16,18
 015C 5EDF              xcall _write_sja
 015E                   .dbline 143
 015E           ;                 if(read_sja(ACR2) != acr2)
 015E 02E1              ldi R16,18
 0160 4FDF              xcall _read_sja
 0162 0C15              cp R16,R12
 0164 09F0              breq L42
 0166                   .dbline 144
 0166           ;                 {
 0166                   .dbline 145
 0166           ;                    continue;
 0166 0BC0              xjmp L36
 0168           L42:
 0168                   .dbline 148
 0168           ;                 } 
 0168           ;                 
 0168           ;                 Err_Cnt = 0x20;
 0168 60E2              ldi R22,32
 016A                   .dbline 149
 016A           ;                 write_sja(ACR3, acr3);
 016A 2A2D              mov R18,R10
 016C 03E1              ldi R16,19
 016E 55DF              xcall _write_sja
 0170                   .dbline 150
 0170           ;                 if(read_sja(ACR3) != acr3)
 0170 03E1              ldi R16,19
 0172 46DF              xcall _read_sja
 0174 0A15              cp R16,R10
 0176 09F0              breq L44
 0178                   .dbline 151
 0178           ;                 {
 0178                   .dbline 152
 0178           ;                    continue;
 0178 02C0              xjmp L36
 017A           L44:
 017A                   .dbline 155
 017A 4427              clr R20
 017C                   .dbline 156
 017C 05C0              xjmp L37
 017E           L36:
 017E                   .dbline 126
 017E 862F              mov R24,R22
 0180 8150              subi R24,1
 0182 682F              mov R22,R24
 0184 8823              tst R24
 0186 A9F6              brne L35
 0188           L37:
 0188                   .dbline 158
 0188           ;                 } 
 0188           ;                 
 0188           ;                 Err_Flag = FALSE;
 0188           ;                 break;   
 0188           ;          }
 0188           ;       }
 0188           L34:
 0188                   .dbline 159
 0188           ;       return Err_Flag;
 0188 042F              mov R16,R20
 018A                   .dbline -2
 018A           L32:
 018A 0E940000          xcall pop_gset5
 018E 2496              adiw R28,4
 0190                   .dbline 0 ; func end
 0190 0895              ret
 0192                   .dbsym r Err_Flag 20 c
 0192                   .dbsym r Err_Cnt 22 c
 0192                   .dbsym r acr3 10 c
 0192                   .dbsym r acr2 12 c
 0192                   .dbsym r acr1 14 c
 0192                   .dbsym l acr0 10 c
 0192                   .dbend
 0192                   .dbfunc e SJASetClockDivision _SJASetClockDivision fc
 0192           ;       Err_Flag -> R20
 0192           ;        Err_Cnt -> R22
 0192           ;       clockdiv -> R10
                        .even
 0192           _SJASetClockDivision::
 0192 0E940000          xcall push_gset3
 0196 A02E              mov R10,R16
 0198                   .dbline -1
 0198                   .dbline 163
 0198           ; }
 0198           ; 
 0198           ; unsigned char SJASetClockDivision(unsigned char clockdiv)
 0198           ; {
 0198                   .dbline 164
 0198           ;     unsigned char Err_Cnt = 0x20;
 0198 60E2              ldi R22,32
 019A                   .dbline 165
 019A           ;       unsigned char Err_Flag = TRUE;
 019A 41E0              ldi R20,1
 019C                   .dbline 166
 019C           ;       if(SJATestRstMode())
 019C 93DF              xcall _SJATestRstMode
 019E 0023              tst R16
 01A0 51F0              breq L50
 01A2                   .dbline 167
 01A2           ;       {
 01A2                   .dbline 168
 01A2           ;          Err_Flag = TRUE;
 01A2                   .dbline 169
 01A2           ;       }
 01A2 0EC0              xjmp L48
 01A4           X2:
 01A4                   .dbline 171
 01A4           ;       else
 01A4           ;       {
 01A4           L49:
 01A4                   .dbline 173
 01A4           ;          while(--Err_Cnt)
 01A4           ;          {
 01A4                   .dbline 174
 01A4           ;             write_sja(CDR, clockdiv);
 01A4 2A2D              mov R18,R10
 01A6 0FE1              ldi R16,31
 01A8 38DF              xcall _write_sja
 01AA                   .dbline 175
 01AA           ;                 if(read_sja(CDR) == clockdiv)
 01AA 0FE1              ldi R16,31
 01AC 29DF              xcall _read_sja
 01AE 0A15              cp R16,R10
 01B0 11F4              brne L52
 01B2                   .dbline 176
 01B2           ;                 {
 01B2                   .dbline 177
 01B2           ;                    Err_Flag = FALSE;
 01B2 4427              clr R20
 01B4                   .dbline 178
 01B4           ;                        break;
 01B4 05C0              xjmp L51
 01B6           L52:
 01B6                   .dbline 180
 01B6           L50:
 01B6                   .dbline 172
 01B6 862F              mov R24,R22
 01B8 8150              subi R24,1
 01BA 682F              mov R22,R24
 01BC 8823              tst R24
 01BE 91F7              brne L49
 01C0           L51:
 01C0                   .dbline 181
 01C0           ;                 }
 01C0           ;          }
 01C0           ;       }
 01C0           L48:
 01C0                   .dbline 182
 01C0           ;       return Err_Flag; 
 01C0 042F              mov R16,R20
 01C2                   .dbline -2
 01C2           L46:
 01C2 0E940000          xcall pop_gset3
 01C6                   .dbline 0 ; func end
 01C6 0895              ret
 01C8                   .dbsym r Err_Flag 20 c
 01C8                   .dbsym r Err_Cnt 22 c

⌨️ 快捷键说明

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