📄 motorctr.lst
字号:
304 932A ST R18,-Y
305 933A ST R19,-Y
306 938A ST R24,-Y
307 939A ST R25,-Y
308 93AA ST R26,-Y
309 93BA ST R27,-Y
30A B60F IN R0,0x3F
30B 920A ST R0,-Y
(0138) }
(0139)
(0140) /***********************************************************
(0141) * 函数说明:外中断1中断处理函数 *
(0142) * 输入: 无 *
(0143) * 输出: 无 *
(0144) * 调用函数:INSERT_INT0_ISR_CODE *
(0145) ***********************************************************/
(0146) void INT1_ISR(void)
(0147) {
(0148) INSERT_INT1_ISR_CODE
30C B380 IN R24,0x10
30D 9586 LSR R24
30E 9586 LSR R24
30F 7081 ANDI R24,1
310 B390 IN R25,0x10
311 9596 LSR R25
312 9596 LSR R25
313 9596 LSR R25
314 7091 ANDI R25,1
315 1798 CP R25,R24
316 F4C9 BNE 0x0330
317 E081 LDI R24,1
318 E090 LDI R25,0
319 E0A0 LDI R26,0
31A E0B0 LDI R27,0
31B 9040 008E LDS R4,g_dNowMotorPosition+2
31D 9050 008F LDS R5,g_dNowMotorPosition+3
31F 9020 008C LDS R2,g_dNowMotorPosition
321 9030 008D LDS R3,g_dNowMotorPosition+1
323 0E28 ADD R2,R24
324 1E39 ADC R3,R25
325 1E4A ADC R4,R26
326 1E5B ADC R5,R27
327 9230 008D STS g_dNowMotorPosition+1,R3
329 9220 008C STS g_dNowMotorPosition,R2
32B 9250 008F STS g_dNowMotorPosition+3,R5
32D 9240 008E STS g_dNowMotorPosition+2,R4
32F C018 RJMP 0x0348
330 E081 LDI R24,1
331 E090 LDI R25,0
332 E0A0 LDI R26,0
333 E0B0 LDI R27,0
334 9040 008E LDS R4,g_dNowMotorPosition+2
336 9050 008F LDS R5,g_dNowMotorPosition+3
338 9020 008C LDS R2,g_dNowMotorPosition
33A 9030 008D LDS R3,g_dNowMotorPosition+1
33C 1A28 SUB R2,R24
33D 0A39 SBC R3,R25
33E 0A4A SBC R4,R26
33F 0A5B SBC R5,R27
340 9230 008D STS g_dNowMotorPosition+1,R3
342 9220 008C STS g_dNowMotorPosition,R2
344 9250 008F STS g_dNowMotorPosition+3,R5
346 9240 008E STS g_dNowMotorPosition+2,R4
348 B785 IN R24,0x35
349 708C ANDI R24,0xC
34A 308C CPI R24,0xC
34B F439 BNE 0x0353
34C B785 IN R24,0x35
34D 7F83 ANDI R24,0xF3
34E BF85 OUT 0x35,R24
34F B785 IN R24,0x35
350 6088 ORI R24,0x8
351 BF85 OUT 0x35,R24
352 C006 RJMP 0x0359
353 B785 IN R24,0x35
354 7F83 ANDI R24,0xF3
355 BF85 OUT 0x35,R24
356 B785 IN R24,0x35
357 608C ORI R24,0xC
358 BF85 OUT 0x35,R24
359 9009 LD R0,Y+
35A BE0F OUT 0x3F,R0
35B 91B9 LD R27,Y+
35C 91A9 LD R26,Y+
35D 9199 LD R25,Y+
35E 9189 LD R24,Y+
35F 9139 LD R19,Y+
360 9129 LD R18,Y+
361 9119 LD R17,Y+
362 9109 LD R16,Y+
363 9059 LD R5,Y+
364 9049 LD R4,Y+
365 9039 LD R3,Y+
366 9029 LD R2,Y+
367 9019 LD R1,Y+
368 9009 LD R0,Y+
369 9518 RETI
(0149) }
(0150)
(0151) /***********************************************************
(0152) * 函数说明:系统端口初始化函数 *
(0153) * 输入: 无 *
(0154) * 输出: 无 *
(0155) * 调用函数:无 *
(0156) ***********************************************************/
(0157) static void Port_INIT(void)
(0158) {
(0159) //LED
(0160) DDR_PC0 = PDIR_OUT;_PC0 = LOW;
HD_Support.c:Port_INIT:
_Port_INIT:
36A B384 IN R24,0x14
36B 6081 ORI R24,1
36C BB84 OUT 0x14,R24
36D B385 IN R24,0x15
36E 7F8E ANDI R24,0xFE
36F BB85 OUT 0x15,R24
(0161)
(0162) //SP027
(0163) DDR_PC5 = PDIR_OUT;_PC5 = HIGH;
370 B384 IN R24,0x14
371 6280 ORI R24,0x20
372 BB84 OUT 0x14,R24
373 B385 IN R24,0x15
374 6280 ORI R24,0x20
375 BB85 OUT 0x15,R24
(0164) DDR_PC4 = PDIR_OUT;_PC4 = HIGH;
376 B384 IN R24,0x14
377 6180 ORI R24,0x10
378 BB84 OUT 0x14,R24
379 B385 IN R24,0x15
37A 6180 ORI R24,0x10
37B BB85 OUT 0x15,R24
(0165)
(0166) //外中断
(0167) DDR_PD2 = PDIR_IN; _PD2 = HIGH;
37C B381 IN R24,0x11
37D 7F8B ANDI R24,0xFB
37E BB81 OUT 0x11,R24
37F B382 IN R24,0x12
380 6084 ORI R24,4
381 BB82 OUT 0x12,R24
(0168) DDR_PD3 = PDIR_IN; _PD3 = HIGH;
382 B381 IN R24,0x11
383 7F87 ANDI R24,0xF7
384 BB81 OUT 0x11,R24
385 B382 IN R24,0x12
386 6088 ORI R24,0x8
387 BB82 OUT 0x12,R24
(0169)
(0170) //SPI
(0171) DDR_PB2 = PDIR_IN; _PB2 = LOW;
388 B387 IN R24,0x17
389 7F8B ANDI R24,0xFB
38A BB87 OUT 0x17,R24
38B B388 IN R24,0x18
38C 7F8B ANDI R24,0xFB
38D BB88 OUT 0x18,R24
(0172) DDR_PB3 = PDIR_IN; _PB3 = LOW;
38E B387 IN R24,0x17
38F 7F87 ANDI R24,0xF7
390 BB87 OUT 0x17,R24
391 B388 IN R24,0x18
392 7F87 ANDI R24,0xF7
393 BB88 OUT 0x18,R24
(0173) DDR_PB4 = PDIR_IN; _PB4 = LOW;
394 B387 IN R24,0x17
395 7E8F ANDI R24,0xEF
396 BB87 OUT 0x17,R24
397 B388 IN R24,0x18
398 7E8F ANDI R24,0xEF
399 BB88 OUT 0x18,R24
(0174) DDR_PB5 = PDIR_IN; _PB5 = LOW;
39A B387 IN R24,0x17
39B 7D8F ANDI R24,0xDF
39C BB87 OUT 0x17,R24
39D B388 IN R24,0x18
39E 7D8F ANDI R24,0xDF
39F BB88 OUT 0x18,R24
(0175)
(0176) //串口
(0177) DDR_PD0 = PDIR_IN; _PD0 = HIGH;
3A0 B381 IN R24,0x11
3A1 7F8E ANDI R24,0xFE
3A2 BB81 OUT 0x11,R24
3A3 B382 IN R24,0x12
3A4 6081 ORI R24,1
3A5 BB82 OUT 0x12,R24
(0178)
(0179) //PWM输出
(0180) DDR_PB1 = PDIR_OUT;
3A6 B387 IN R24,0x17
3A7 6082 ORI R24,2
3A8 BB87 OUT 0x17,R24
(0181) //电机控制
(0182) DDR_PD6 = PDIR_OUT; _PD6 = HIGH;
3A9 B381 IN R24,0x11
3AA 6480 ORI R24,0x40
3AB BB81 OUT 0x11,R24
3AC B382 IN R24,0x12
3AD 6480 ORI R24,0x40
3AE BB82 OUT 0x12,R24
(0183) DDR_PD7 = PDIR_OUT; _PD7 = HIGH;
3AF B381 IN R24,0x11
3B0 6880 ORI R24,0x80
3B1 BB81 OUT 0x11,R24
3B2 B382 IN R24,0x12
3B3 6880 ORI R24,0x80
3B4 BB82 OUT 0x12,R24
(0184)
(0185) //读写控制
(0186) DDR_PD4 = PDIR_IN; _PD4 = HIGH;
3B5 B381 IN R24,0x11
3B6 7E8F ANDI R24,0xEF
3B7 BB81 OUT 0x11,R24
3B8 B382 IN R24,0x12
3B9 6180 ORI R24,0x10
3BA BB82 OUT 0x12,R24
3BB 9508 RET
(0187) }
(0188)
(0189) /***********************************************************
(0190) * 函数声明:定时器1初始化函数 *
(0191) * 输入: 无 *
(0192) * 输出: 无 *
(0193) * 调用函数:无 *
(0194) ***********************************************************/
(0195) static void Timer1_INIT(void)
(0196) {
(0197) TCCR1B = 0x00;
HD_Support.c:Timer1_INIT:
_Timer1_INIT:
3BC 2422 CLR R2
3BD BC2E OUT 0x2E,R2
(0198) ICR1 = 0x0320;
3BE E280 LDI R24,0x20
3BF E093 LDI R25,3
3C0 BD97 OUT 0x27,R25
3C1 BD86 OUT 0x26,R24
(0199) TCCR1A = 0x80;
3C2 E880 LDI R24,0x80
3C3 BD8F OUT 0x2F,R24
(0200) TCCR1B = 0x11; //start Timer
3C4 E181 LDI R24,0x11
3C5 BD8E OUT 0x2E,R24
3C6 9508 RET
(0201) }
(0202)
(0203) /***********************************************************
(0204) * 函数声明:定时器0初始化函数 *
(0205) * 输入: 无 *
(0206) * 输出: 无 *
(0207) * 调用函数:无 *
(0208) ***********************************************************/
(0209) static void Timer0_INIT(void)
(0210) {
(0211) TCCR0 = 0x00;
HD_Support.c:Timer0_INIT:
_Timer0_INIT:
3C7 2422 CLR R2
3C8 BE23 OUT 0x33,R2
(0212) TCNT0 = 0x06;
3C9 E086 LDI R24,6
3CA BF82 OUT 0x32,R24
(0213) TCCR0 = 0x03;
3CB E083 LDI R24,3
3CC BF83 OUT 0x33,R24
3CD 9508 RET
_Timer0_OVF_ISR:
3CE 920A ST R0,-Y
3CF 921A ST R1,-Y
3D0 922A ST R2,-Y
3D1 923A ST R3,-Y
3D2 924A ST R4,-Y
3D3 925A ST R5,-Y
3D4 926A ST R6,-Y
3D5 927A ST R7,-Y
3D6 928A ST R8,-Y
3D7 929A ST R9,-Y
3D8 930A ST R16,-Y
3D9 931A ST R17,-Y
3DA 932A ST R18,-Y
3DB 933A ST R19,-Y
3DC 938A ST R24,-Y
3DD 939A ST R25,-Y
3DE 93AA ST R26,-Y
3DF 93BA ST R27,-Y
3E0 93EA ST R30,-Y
3E1 93FA ST R31,-Y
3E2 B60F IN R0,0x3F
3E3 920A ST R0,-Y
(0214) }
(0215)
(0216) /***********************************************************
(0217) * 函数声明:定时器0溢出中断处理程序 *
(0218) * 输入: 无 *
(0219) * 输出: 无 *
(0220) * 调用函数:INSERT_TIMER0_OVF_ISR_CODE *
(0221) ***********************************************************/
(0222) void Timer0_OVF_ISR(void)
(0223) {
(0224) TCNT0 = 0x06;
3E4 E086 LDI R24,6
3E5 BF82 OUT 0x32,R24
(0225)
(0226) INSERT_TIMER0_OVF_ISR_CODE
3E6 9478 BSET 7
3E7 D079 RCALL _Insert_Timer0_OVF_ISR_Code
3E8 9009 LD R0,Y+
3E9 BE0F OUT 0x3F,R0
3EA 91F9 LD R31,Y+
3EB 91E9 LD R30,Y+
3EC 91B9 LD R27,Y+
3ED 91A9 LD R26,Y+
3EE 9199 LD R25,Y+
3EF 9189 LD R24,Y+
3F0 9139 LD R19,Y+
3F1 9129 LD R18,Y+
3F2 9119 LD R17,Y+
3F3 9109 LD R16,Y+
3F4 9099 LD R9,Y+
3F5 9089 LD R8,Y+
3F6 9079 LD R7,Y+
3F7 9069 LD R6,Y+
3F8 9059 LD R5,Y+
3F9 9049 LD R4,Y+
3FA 9039 LD R3,Y+
3FB 9029 LD R2,Y+
3FC 9019 LD R1,Y+
3FD 9009 LD R0,Y+
3FE 9518 RETI
(0227) }
(0228)
(0229) /***********************************************************
(0230) * 函数说明:USART0初始化函数 *
(0231) * 输入: 无 *
(0232) * 输出: 无 *
(0233) * 调用函数:无 *
(0234) * -------------------------------------------------------- *
(0235) * [说明] *
(0236) * 波特率: 38400,n,8,1 *
(0237) ******************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -