passive_encoder.lst
来自「全场地位系统:小车静止或移动过程中码盘进行全场定位,用的是avr单片机」· LST 代码 · 共 1,758 行 · 第 1/5 页
LST
1,758 行
1A9 BE0F OUT 0x3F,R0
1AA 91B9 LD R27,Y+
1AB 91A9 LD R26,Y+
1AC 9199 LD R25,Y+
1AD 9189 LD R24,Y+
1AE 9139 LD R19,Y+
1AF 9129 LD R18,Y+
1B0 9119 LD R17,Y+
1B1 9109 LD R16,Y+
1B2 9059 LD R5,Y+
1B3 9049 LD R4,Y+
1B4 9039 LD R3,Y+
1B5 9029 LD R2,Y+
1B6 9019 LD R1,Y+
1B7 9009 LD R0,Y+
1B8 9518 RETI
_INT1_ISR:
1B9 920A ST R0,-Y
1BA 921A ST R1,-Y
1BB 922A ST R2,-Y
1BC 923A ST R3,-Y
1BD 924A ST R4,-Y
1BE 925A ST R5,-Y
1BF 930A ST R16,-Y
1C0 931A ST R17,-Y
1C1 932A ST R18,-Y
1C2 933A ST R19,-Y
1C3 938A ST R24,-Y
1C4 939A ST R25,-Y
1C5 93AA ST R26,-Y
1C6 93BA ST R27,-Y
1C7 B60F IN R0,0x3F
1C8 920A ST R0,-Y
(0168) }
(0169)
(0170) /***********************************************************
(0171) * 函数说明:INT1中断处理程序 *
(0172) * 输入: 无 *
(0173) * 输出: 无 *
(0174) * 调用函数:INSERT_INT1_ISR_CODE *
(0175) ***********************************************************/
(0176) void INT1_ISR(void)
(0177) {
(0178) INSERT_INT1_ISR_CODE
1C9 9478 BSET 7
1CA B183 IN R24,0x03
1CB 7081 ANDI R24,1
1CC B199 IN R25,0x09
1CD 9596 LSR R25
1CE 9596 LSR R25
1CF 9596 LSR R25
1D0 7091 ANDI R25,1
1D1 1798 CP R25,R24
1D2 F4C9 BNE 0x01EC
1D3 E081 LDI R24,1
1D4 E090 LDI R25,0
1D5 E0A0 LDI R26,0
1D6 E0B0 LDI R27,0
1D7 9040 010A LDS R4,g_lCounterR+2
1D9 9050 010B LDS R5,g_lCounterR+3
1DB 9020 0108 LDS R2,g_lCounterR
1DD 9030 0109 LDS R3,g_lCounterR+1
1DF 1A28 SUB R2,R24
1E0 0A39 SBC R3,R25
1E1 0A4A SBC R4,R26
1E2 0A5B SBC R5,R27
1E3 9230 0109 STS g_lCounterR+1,R3
1E5 9220 0108 STS g_lCounterR,R2
1E7 9250 010B STS g_lCounterR+3,R5
1E9 9240 010A STS g_lCounterR+2,R4
1EB C018 RJMP 0x0204
1EC E081 LDI R24,1
1ED E090 LDI R25,0
1EE E0A0 LDI R26,0
1EF E0B0 LDI R27,0
1F0 9040 010A LDS R4,g_lCounterR+2
1F2 9050 010B LDS R5,g_lCounterR+3
1F4 9020 0108 LDS R2,g_lCounterR
1F6 9030 0109 LDS R3,g_lCounterR+1
1F8 0E28 ADD R2,R24
1F9 1E39 ADC R3,R25
1FA 1E4A ADC R4,R26
1FB 1E5B ADC R5,R27
1FC 9230 0109 STS g_lCounterR+1,R3
1FE 9220 0108 STS g_lCounterR,R2
200 9250 010B STS g_lCounterR+3,R5
202 9240 010A STS g_lCounterR+2,R4
204 9009 LD R0,Y+
205 BE0F OUT 0x3F,R0
206 91B9 LD R27,Y+
207 91A9 LD R26,Y+
208 9199 LD R25,Y+
209 9189 LD R24,Y+
20A 9139 LD R19,Y+
20B 9129 LD R18,Y+
20C 9119 LD R17,Y+
20D 9109 LD R16,Y+
20E 9059 LD R5,Y+
20F 9049 LD R4,Y+
210 9039 LD R3,Y+
211 9029 LD R2,Y+
212 9019 LD R1,Y+
213 9009 LD R0,Y+
214 9518 RETI
_PCINT1_ISR:
215 920A ST R0,-Y
216 921A ST R1,-Y
217 922A ST R2,-Y
218 923A ST R3,-Y
219 924A ST R4,-Y
21A 925A ST R5,-Y
21B 930A ST R16,-Y
21C 931A ST R17,-Y
21D 932A ST R18,-Y
21E 933A ST R19,-Y
21F 938A ST R24,-Y
220 939A ST R25,-Y
221 93AA ST R26,-Y
222 93BA ST R27,-Y
223 B60F IN R0,0x3F
224 920A ST R0,-Y
(0179) }
(0180)
(0181) /***********************************************************
(0182) * 函数说明:PCINT1中断处理程序 *
(0183) * 输入: 无 *
(0184) * 输出: 无 *
(0185) * 调用函数:INSERT_PCINT1_ISR_CODE *
(0186) ***********************************************************/
(0187) void PCINT1_ISR(void)
(0188) {
(0189) INSERT_PCINT1_ISR_CODE
225 9478 BSET 7
226 B186 IN R24,0x06
227 9586 LSR R24
228 9586 LSR R24
229 9586 LSR R24
22A 7081 ANDI R24,1
22B B199 IN R25,0x09
22C 9596 LSR R25
22D 9596 LSR R25
22E 7091 ANDI R25,1
22F 1798 CP R25,R24
230 F4C9 BNE 0x024A
231 E081 LDI R24,1
232 E090 LDI R25,0
233 E0A0 LDI R26,0
234 E0B0 LDI R27,0
235 9040 0106 LDS R4,g_lCounterL+2
237 9050 0107 LDS R5,g_lCounterL+3
239 9020 0104 LDS R2,g_lCounterL
23B 9030 0105 LDS R3,g_lCounterL+1
23D 1A28 SUB R2,R24
23E 0A39 SBC R3,R25
23F 0A4A SBC R4,R26
240 0A5B SBC R5,R27
241 9230 0105 STS g_lCounterL+1,R3
243 9220 0104 STS g_lCounterL,R2
245 9250 0107 STS g_lCounterL+3,R5
247 9240 0106 STS g_lCounterL+2,R4
249 C018 RJMP 0x0262
24A E081 LDI R24,1
24B E090 LDI R25,0
24C E0A0 LDI R26,0
24D E0B0 LDI R27,0
24E 9040 0106 LDS R4,g_lCounterL+2
250 9050 0107 LDS R5,g_lCounterL+3
252 9020 0104 LDS R2,g_lCounterL
254 9030 0105 LDS R3,g_lCounterL+1
256 0E28 ADD R2,R24
257 1E39 ADC R3,R25
258 1E4A ADC R4,R26
259 1E5B ADC R5,R27
25A 9230 0105 STS g_lCounterL+1,R3
25C 9220 0104 STS g_lCounterL,R2
25E 9250 0107 STS g_lCounterL+3,R5
260 9240 0106 STS g_lCounterL+2,R4
262 9009 LD R0,Y+
263 BE0F OUT 0x3F,R0
264 91B9 LD R27,Y+
265 91A9 LD R26,Y+
266 9199 LD R25,Y+
267 9189 LD R24,Y+
268 9139 LD R19,Y+
269 9129 LD R18,Y+
26A 9119 LD R17,Y+
26B 9109 LD R16,Y+
26C 9059 LD R5,Y+
26D 9049 LD R4,Y+
26E 9039 LD R3,Y+
26F 9029 LD R2,Y+
270 9019 LD R1,Y+
271 9009 LD R0,Y+
272 9518 RETI
_PCINT0_ISR:
273 920A ST R0,-Y
274 921A ST R1,-Y
275 922A ST R2,-Y
276 923A ST R3,-Y
277 924A ST R4,-Y
278 925A ST R5,-Y
279 930A ST R16,-Y
27A 931A ST R17,-Y
27B 932A ST R18,-Y
27C 933A ST R19,-Y
27D 938A ST R24,-Y
27E 939A ST R25,-Y
27F 93AA ST R26,-Y
280 93BA ST R27,-Y
281 B60F IN R0,0x3F
282 920A ST R0,-Y
(0190) }
(0191)
(0192) /***********************************************************
(0193) * 函数说明:PCINT0中断处理程序 *
(0194) * 输入: 无 *
(0195) * 输出: 无 *
(0196) * 调用函数:INSERT_PCINT0_ISR_CODE *
(0197) ***********************************************************/
(0198) void PCINT0_ISR(void)
(0199) {
(0200) INSERT_PCINT0_ISR_CODE
283 9478 BSET 7
284 B183 IN R24,0x03
285 7081 ANDI R24,1
286 B199 IN R25,0x09
287 9596 LSR R25
288 9596 LSR R25
289 9596 LSR R25
28A 7091 ANDI R25,1
28B 1798 CP R25,R24
28C F4C9 BNE 0x02A6
28D E081 LDI R24,1
28E E090 LDI R25,0
28F E0A0 LDI R26,0
290 E0B0 LDI R27,0
291 9040 010A LDS R4,g_lCounterR+2
293 9050 010B LDS R5,g_lCounterR+3
295 9020 0108 LDS R2,g_lCounterR
297 9030 0109 LDS R3,g_lCounterR+1
299 0E28 ADD R2,R24
29A 1E39 ADC R3,R25
29B 1E4A ADC R4,R26
29C 1E5B ADC R5,R27
29D 9230 0109 STS g_lCounterR+1,R3
29F 9220 0108 STS g_lCounterR,R2
2A1 9250 010B STS g_lCounterR+3,R5
2A3 9240 010A STS g_lCounterR+2,R4
2A5 C018 RJMP 0x02BE
2A6 E081 LDI R24,1
2A7 E090 LDI R25,0
2A8 E0A0 LDI R26,0
2A9 E0B0 LDI R27,0
2AA 9040 010A LDS R4,g_lCounterR+2
2AC 9050 010B LDS R5,g_lCounterR+3
2AE 9020 0108 LDS R2,g_lCounterR
2B0 9030 0109 LDS R3,g_lCounterR+1
2B2 1A28 SUB R2,R24
2B3 0A39 SBC R3,R25
2B4 0A4A SBC R4,R26
2B5 0A5B SBC R5,R27
2B6 9230 0109 STS g_lCounterR+1,R3
2B8 9220 0108 STS g_lCounterR,R2
2BA 9250 010B STS g_lCounterR+3,R5
2BC 9240 010A STS g_lCounterR+2,R4
2BE 9009 LD R0,Y+
2BF BE0F OUT 0x3F,R0
2C0 91B9 LD R27,Y+
2C1 91A9 LD R26,Y+
2C2 9199 LD R25,Y+
2C3 9189 LD R24,Y+
2C4 9139 LD R19,Y+
2C5 9129 LD R18,Y+
2C6 9119 LD R17,Y+
2C7 9109 LD R16,Y+
2C8 9059 LD R5,Y+
2C9 9049 LD R4,Y+
2CA 9039 LD R3,Y+
2CB 9029 LD R2,Y+
2CC 9019 LD R1,Y+
2CD 9009 LD R0,Y+
2CE 9518 RETI
(0201) }
(0202)
(0203) /***********************************************************
(0204) * 函数声明:定时器0初始化函数 *
(0205) * 输入: 无 *
(0206) * 输出: 无 *
(0207) * 调用函数:无 *
(0208) ***********************************************************/
(0209) static void Timer0_INIT(void)
(0210) {
(0211) TCCR0B = 0x00; //stop
_Timer0_INIT:
HD_Support.c:Timer0_INIT:
2CF 2422 CLR R2
2D0 BC25 OUT 0x25,R2
(0212) TCNT0 = 0x06; //set count
2D1 E086 LDI R24,6
2D2 BD86 OUT 0x26,R24
(0213) TCCR0A = 0x00;
2D3 BC24 OUT 0x24,R2
(0214) TCCR0B = 0x03; //start timer
2D4 E083 LDI R24,3
2D5 BD85 OUT 0x25,R24
2D6 9508 RET
_Timer0_OVF_ISR:
2D7 920A ST R0,-Y
2D8 921A ST R1,-Y
2D9 922A ST R2,-Y
2DA 923A ST R3,-Y
2DB 924A ST R4,-Y
2DC 925A ST R5,-Y
2DD 926A ST R6,-Y
2DE 927A ST R7,-Y
2DF 928A ST R8,-Y
2E0 929A ST R9,-Y
2E1 930A ST R16,-Y
2E2 931A ST R17,-Y
2E3 932A ST R18,-Y
2E4 933A ST R19,-Y
2E5 938A ST R24,-Y
2E6 939A ST R25,-Y
2E7 93AA ST R26,-Y
2E8 93BA ST R27,-Y
2E9 93EA ST R30,-Y
2EA 93FA ST R31,-Y
2EB B60F IN R0,0x3F
2EC 920A ST R0,-Y
(0215) }
(0216)
(0217) /***********************************************************
(0218) * 函数声明:定时器0溢出中断处理程序 *
(0219) * 输入: 无 *
(0220) * 输出: 无 *
(0221) * 调用函数:INSERT_TIMER0_OVF_ISR_CODE *
(0222) ***********************************************************/
(0223) void Timer0_OVF_ISR(void)
(0224) {
(0225) TCNT0 = 0x06;
2ED E086 LDI R24,6
2EE BD86 OUT 0x26,R24
(0226) INSERT_TIMER0_OVF_ISR_CODE
2EF 9478 BSET 7
2F0 DDED RCALL _Insert_Timer0_OVF_ISR_Code
2F1 9009 LD R0,Y+
2F2 BE0F OUT 0x3F,R0
2F3 91F9 LD R31,Y+
2F4 91E9 LD R30,Y+
2F5 91B9 LD R27,Y+
2F6 91A9 LD R26,Y+
2F7 9199 LD R25,Y+
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?