📄 can_module.lis
字号:
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 + -