📄 motorctr.lst
字号:
(0273) && (UARTTxBuffCounter == SERIAL_TX_BUFF_SIZE))
(0274) {
(0275) SEI();
(0276) return FALSE;
(0277) }
(0278) UARTTxBuff[UARTTxBuffTail++] = Data;
(0279)
(0280) UARTTxBuffCounter ++;
(0281)
(0282) if (UARTTxBuffTail == SERIAL_TX_BUFF_SIZE)
(0283) {
(0284) UARTTxBuffTail = 0;
(0285) }
(0286) )
(0287) return TRUE;
25C E001 LDI R16,1
25D 9508 RET
_PROC_Serial_Transmitter:
cTransmitByte --> Y,+0
25E 9721 SBIW R28,1
(0288) }
(0289)
(0290) #ifdef _USE_SERIAL_TX_TRANSMITTER_PROC
(0291) /***********************************************************
(0292) * 函数说明:串行发送进程 *
(0293) * 输入: 无 *
(0294) * 输出: 是否继续执行 *
(0295) * 调用函数:UARTgetDataFromTxBuff() *
(0296) ***********************************************************/
(0297) BOOL PROC_Serial_Transmitter(void)
(0298) {
(0299) uint8 cTransmitByte = 0;
25F 2422 CLR R2
260 8228 STD Y+0,R2
(0300)
(0301) SAFE_CODE_PERFORMANCE
261 94F8 BCLR 7
262 9020 0087 LDS R2,g_bIfSerialTransmitCompleted
264 2022 TST R2
265 F061 BEQ 0x0272
266 018E MOVW R16,R28
267 DF4D RCALL _UARTgetDataFromTxBuff
268 2300 TST R16
269 F419 BNE 0x026D
26A 9478 BSET 7
26B E001 LDI R16,1
26C C007 RJMP 0x0274
26D 2422 CLR R2
26E 9220 0087 STS g_bIfSerialTransmitCompleted,R2
270 8028 LDD R2,Y+0
271 B82C OUT 0x0C,R2
272 9478 BSET 7
(0302) (
(0303) if (g_bIfSerialTransmitCompleted)
(0304) {
(0305) if (!UARTgetDataFromTxBuff(&cTransmitByte))
(0306) {
(0307) SEI();
(0308) SERIAL_DISABLE_WRITE
(0309) return TRUE;
(0310) }
(0311) else
(0312) {
(0313) SERIAL_ENABLE_WRITE
(0314) }
(0315) g_bIfSerialTransmitCompleted = FALSE;
(0316) UDR_PORT = cTransmitByte;
(0317) }
(0318) )
(0319) return TRUE;
273 E001 LDI R16,1
274 9621 ADIW R28,1
275 9508 RET
FILE: H:\单片机\源程序\2007全国电子设计大赛\电机闭环模块\HD_Support.c
(0001) /***********************************************************
(0002) * 函数库说明:底层硬件初始化函数库 *
(0003) * 版本: *
(0004) * 作者: *
(0005) * 创建日期: *
(0006) * -------------------------------------------------------- *
(0007) * [硬件说明] *
(0008) * 处理器: *
(0009) * 系统时钟: *
(0010) * -------------------------------------------------------- *
(0011) * [支 持 库] *
(0012) * 支持库名称:PF_Config.h *
(0013) * 需要版本: ----- *
(0014) * 声明库说明:硬件平台配置声明库 *
(0015) * *
(0016) * 支持库名称:HD_Support.h *
(0017) * 需要版本: ----- *
(0018) * 声明库说明:底层硬件初始化声明库 *
(0019) * -------------------------------------------------------- *
(0020) * [版本更新] *
(0021) * 修改: *
(0022) * 修改日期: *
(0023) * 版本: *
(0024) * -------------------------------------------------------- *
(0025) * [版本历史] *
(0026) * -------------------------------------------------------- *
(0027) * [使用说明] *
(0028) ***********************************************************/
(0029)
(0030) /********************
(0031) * 头 文 件 配 置 区 *
(0032) ********************/
(0033) # include "PF_Config.h"
(0034) # include "HD_Support.h"
(0035) # include "LIB_Config.h"
(0036)
(0037) /********************
(0038) * 系 统 宏 定 义 *
(0039) ********************/
(0040) # pragma interrupt_handler Timer0_OVF_ISR:iv_TIMER0_OVF
(0041) # pragma interrupt_handler USART0_RX_ISR:iv_USART0_RXC
(0042) # pragma interrupt_handler USART0_TX_ISR:iv_USART0_TXC
(0043) # pragma interrupt_handler INT1_ISR:iv_INT1
(0044) # pragma interrupt_handler INT0_ISR:iv_INT0
(0045)
(0046) /*------------------*
(0047) * 常 数 宏 定 义 *
(0048) *------------------*/
(0049)
(0050) /*------------------*
(0051) * 动 作 宏 定 义 *
(0052) *------------------*/
(0053) #ifndef INSERT_TIMER0_OVF_ISR_CODE
(0054) # define INSERT_TIMER0_OVF_ISR_CODE
(0055) #endif
(0056)
(0057) #ifndef INSERT_USART0_RX_ISR_CODE
(0058) # define INSERT_USART0_RX_ISR_CODE
(0059) #endif
(0060)
(0061) #ifndef INSERT_USART0_TX_ISR_CODE
(0062) # define INSERT_USART0_TX_ISR_CODE
(0063) #endif
(0064)
(0065) #ifndef INSERT_INT0_ISR_CODE
(0066) # define INSERT_INT0_ISR_CODE
(0067) #endif
(0068)
(0069) #ifndef INSERT_INT1_ISR_CODE
(0070) # define INSERT_INT1_ISR_CODE
(0071) #endif
(0072) /********************
(0073) * 模块结构体定义区 *
(0074) ********************/
(0075)
(0076) /********************
(0077) * 函 数 声 明 区 *
(0078) ********************/
(0079) void Device_INIT(void);
(0080)
(0081) /********************
(0082) * 模块函数声明区 *
(0083) ********************/
(0084) static void Port_INIT(void);
(0085) static void Timer0_INIT(void);
(0086) static void USART0_INIT(void);
(0087) static void Timer1_INIT(void);
(0088) static void Extend_INT_INIT(void);
(0089)
(0090) /********************
(0091) * 模块变量声明区 *
(0092) ********************/
(0093)
(0094) /********************
(0095) * 全局变量声明区 *
(0096) ********************/
(0097)
(0098)
(0099) /***********************************************************
(0100) * 函数说明:系统硬件初始化函数 *
(0101) * 输入: 无 *
(0102) * 输出: 无 *
(0103) * 调用函数:Port_INIT() Timer0_INIT() *
(0104) ***********************************************************/
(0105) void Device_INIT(void)
(0106) {
(0107) Port_INIT();
_Device_INIT:
276 D0F3 RCALL HD_Support.c:Port_INIT
(0108) Timer0_INIT();
277 D14F RCALL HD_Support.c:Timer0_INIT
(0109) USART0_INIT();
278 D186 RCALL HD_Support.c:USART0_INIT
(0110) Timer1_INIT();
279 D142 RCALL HD_Support.c:Timer1_INIT
(0111) Extend_INT_INIT();
27A D003 RCALL _Extend_INT_INIT
(0112)
(0113) TIMSK = BIT(TOIE0); //启动定时期0溢出中断资源
27B E081 LDI R24,1
27C BF89 OUT 0x39,R24
27D 9508 RET
(0114) }
(0115)
(0116) /***********************************************************
(0117) * 函数说明:外中断初始化函数 *
(0118) * 输入: 无 *
(0119) * 输出: 无 *
(0120) * 调用函数:无 *
(0121) ***********************************************************/
(0122) static void Extend_INT_INIT(void)
(0123) {
(0124) SET_INT0_RAISING_EDGE
_Extend_INT_INIT:
HD_Support.c:Extend_INT_INIT:
27E B785 IN R24,0x35
27F 7F8C ANDI R24,0xFC
280 BF85 OUT 0x35,R24
281 B785 IN R24,0x35
282 6083 ORI R24,3
283 BF85 OUT 0x35,R24
(0125) SET_INT1_FALLING_EDGE
284 B785 IN R24,0x35
285 7F83 ANDI R24,0xF3
286 BF85 OUT 0x35,R24
287 B785 IN R24,0x35
288 6088 ORI R24,0x8
289 BF85 OUT 0x35,R24
(0126) GICR |= BIT(INT0)|BIT(INT1);
28A B78B IN R24,0x3B
28B 6C80 ORI R24,0xC0
28C BF8B OUT 0x3B,R24
28D 9508 RET
_INT0_ISR:
28E 920A ST R0,-Y
28F 921A ST R1,-Y
290 922A ST R2,-Y
291 923A ST R3,-Y
292 924A ST R4,-Y
293 925A ST R5,-Y
294 930A ST R16,-Y
295 931A ST R17,-Y
296 932A ST R18,-Y
297 933A ST R19,-Y
298 938A ST R24,-Y
299 939A ST R25,-Y
29A 93AA ST R26,-Y
29B 93BA ST R27,-Y
29C B60F IN R0,0x3F
29D 920A ST R0,-Y
(0127) }
(0128)
(0129) /***********************************************************
(0130) * 函数说明:外中断0中断处理函数 *
(0131) * 输入: 无 *
(0132) * 输出: 无 *
(0133) * 调用函数:INSERT_INT0_ISR_CODE *
(0134) ***********************************************************/
(0135) void INT0_ISR(void)
(0136) {
(0137) INSERT_INT0_ISR_CODE
29E B380 IN R24,0x10
29F 9586 LSR R24
2A0 9586 LSR R24
2A1 7081 ANDI R24,1
2A2 B390 IN R25,0x10
2A3 9596 LSR R25
2A4 9596 LSR R25
2A5 9596 LSR R25
2A6 7091 ANDI R25,1
2A7 1798 CP R25,R24
2A8 F4C9 BNE 0x02C2
2A9 E081 LDI R24,1
2AA E090 LDI R25,0
2AB E0A0 LDI R26,0
2AC E0B0 LDI R27,0
2AD 9040 008E LDS R4,g_dNowMotorPosition+2
2AF 9050 008F LDS R5,g_dNowMotorPosition+3
2B1 9020 008C LDS R2,g_dNowMotorPosition
2B3 9030 008D LDS R3,g_dNowMotorPosition+1
2B5 1A28 SUB R2,R24
2B6 0A39 SBC R3,R25
2B7 0A4A SBC R4,R26
2B8 0A5B SBC R5,R27
2B9 9230 008D STS g_dNowMotorPosition+1,R3
2BB 9220 008C STS g_dNowMotorPosition,R2
2BD 9250 008F STS g_dNowMotorPosition+3,R5
2BF 9240 008E STS g_dNowMotorPosition+2,R4
2C1 C018 RJMP 0x02DA
2C2 E081 LDI R24,1
2C3 E090 LDI R25,0
2C4 E0A0 LDI R26,0
2C5 E0B0 LDI R27,0
2C6 9040 008E LDS R4,g_dNowMotorPosition+2
2C8 9050 008F LDS R5,g_dNowMotorPosition+3
2CA 9020 008C LDS R2,g_dNowMotorPosition
2CC 9030 008D LDS R3,g_dNowMotorPosition+1
2CE 0E28 ADD R2,R24
2CF 1E39 ADC R3,R25
2D0 1E4A ADC R4,R26
2D1 1E5B ADC R5,R27
2D2 9230 008D STS g_dNowMotorPosition+1,R3
2D4 9220 008C STS g_dNowMotorPosition,R2
2D6 9250 008F STS g_dNowMotorPosition+3,R5
2D8 9240 008E STS g_dNowMotorPosition+2,R4
2DA B785 IN R24,0x35
2DB 7083 ANDI R24,3
2DC 3083 CPI R24,3
2DD F439 BNE 0x02E5
2DE B785 IN R24,0x35
2DF 7F8C ANDI R24,0xFC
2E0 BF85 OUT 0x35,R24
2E1 B785 IN R24,0x35
2E2 6082 ORI R24,2
2E3 BF85 OUT 0x35,R24
2E4 C006 RJMP 0x02EB
2E5 B785 IN R24,0x35
2E6 7F8C ANDI R24,0xFC
2E7 BF85 OUT 0x35,R24
2E8 B785 IN R24,0x35
2E9 6083 ORI R24,3
2EA BF85 OUT 0x35,R24
2EB 9009 LD R0,Y+
2EC BE0F OUT 0x3F,R0
2ED 91B9 LD R27,Y+
2EE 91A9 LD R26,Y+
2EF 9199 LD R25,Y+
2F0 9189 LD R24,Y+
2F1 9139 LD R19,Y+
2F2 9129 LD R18,Y+
2F3 9119 LD R17,Y+
2F4 9109 LD R16,Y+
2F5 9059 LD R5,Y+
2F6 9049 LD R4,Y+
2F7 9039 LD R3,Y+
2F8 9029 LD R2,Y+
2F9 9019 LD R1,Y+
2FA 9009 LD R0,Y+
2FB 9518 RETI
_INT1_ISR:
2FC 920A ST R0,-Y
2FD 921A ST R1,-Y
2FE 922A ST R2,-Y
2FF 923A ST R3,-Y
300 924A ST R4,-Y
301 925A ST R5,-Y
302 930A ST R16,-Y
303 931A ST R17,-Y
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -