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

📄 err_debug.lst

📁 平缝机的单片机伺服控制系统源代码。本程序为用单片机控制永磁同步电机的低成本方案
💻 LST
📖 第 1 页 / 共 3 页
字号:
    01E5 91800106  LDS	R24,g_Over400VCnt
    01E7 91900107  LDS	R25,g_Over400VCnt+1
    01E9 9601      ADIW	R24,1
    01EA 93900107  STS	g_Over400VCnt+1,R25
    01EC 93800106  STS	g_Over400VCnt,R24
(0436) 	}
(0437) 	if (g_Lower400VCnt + g_Over400VCnt > 300)
    01EE 90200106  LDS	R2,g_Over400VCnt
    01F0 90300107  LDS	R3,g_Over400VCnt+1
    01F2 90400104  LDS	R4,g_Lower400VCnt
    01F4 90500105  LDS	R5,g_Lower400VCnt+1
    01F6 0C42      ADD	R4,R2
    01F7 1C53      ADC	R5,R3
    01F8 E28C      LDI	R24,0x2C
    01F9 E091      LDI	R25,1
    01FA 1584      CP	R24,R4
    01FB 0595      CPC	R25,R5
    01FC F4C0      BCC	0x0215
(0438) 	{
(0439) 		if (g_Lower400VCnt >= g_Over400VCnt)
    01FD 90400104  LDS	R4,g_Lower400VCnt
    01FF 90500105  LDS	R5,g_Lower400VCnt+1
    0201 1442      CP	R4,R2
    0202 0453      CPC	R5,R3
    0203 F020      BCS	0x0208
(0440) 		{
(0441) 			g_OverVol = 1;
    0204 E081      LDI	R24,1
    0205 93800119  STS	g_OverVol,R24
(0442) 		}
    0207 C003      RJMP	0x020B
(0443) 		else
(0444) 		{
(0445) 			g_OverVol = 0;
    0208 2422      CLR	R2
    0209 92200119  STS	g_OverVol,R2
(0446) 		}
(0447) 		g_Lower400VCnt = 0;
    020B 2422      CLR	R2
    020C 2433      CLR	R3
    020D 92300105  STS	g_Lower400VCnt+1,R3
    020F 92200104  STS	g_Lower400VCnt,R2
(0448) 		g_Over400VCnt = 0;
    0211 92300107  STS	g_Over400VCnt+1,R3
    0213 92200106  STS	g_Over400VCnt,R2
(0449) 	}
(0450) 
(0451) 
(0452) 	if (g_StartLedFlick)
    0215 9020010E  LDS	R2,g_StartLedFlick
    0217 2022      TST	R2
    0218 F409      BNE	0x021A
    0219 C048      RJMP	0x0262
(0453) 	{
(0454) 		if (g_LedTimesCnt)
    021A 90200112  LDS	R2,g_LedTimesCnt
    021C 2022      TST	R2
    021D F149      BEQ	0x0247
(0455) 		{
(0456) 			if (g_LedTimesT1 < LEDFLICKTIME1)
    021E 91800110  LDS	R24,g_LedTimesT1
    0220 3382      CPI	R24,0x32
    0221 F468      BCC	0x022F
(0457) 			{
(0458) 				if (g_LedType)
    0222 90200113  LDS	R2,g_LedType
    0224 2022      TST	R2
    0225 F011      BEQ	0x0228
(0459) 				{
(0460) 					RED_ON();
    0226 9842      CBI	0x08,2
(0461) 				}
    0227 C001      RJMP	0x0229
(0462) 				else
(0463) 				{
(0464) 					GREEN_ON();
    0228 9843      CBI	0x08,3
(0465) 				}
(0466) 				g_LedTimesT1 ++;
    0229 91800110  LDS	R24,g_LedTimesT1
    022B 5F8F      SUBI	R24,0xFF
    022C 93800110  STS	g_LedTimesT1,R24
(0467) 			}
    022E C018      RJMP	0x0247
(0468) 			else
(0469) 			{
(0470) 				if (g_LedType)
    022F 90200113  LDS	R2,g_LedType
    0231 2022      TST	R2
    0232 F011      BEQ	0x0235
(0471) 				{
(0472) 					RED_OFF();
    0233 9A42      SBI	0x08,2
(0473) 				}
    0234 C001      RJMP	0x0236
(0474) 				else
(0475) 				{
(0476) 					GREEN_OFF();
    0235 9A43      SBI	0x08,3
(0477) 				}
(0478) 				g_LedTimesT2 ++;
    0236 9180010F  LDS	R24,g_LedTimesT2
    0238 5F8F      SUBI	R24,0xFF
    0239 9380010F  STS	g_LedTimesT2,R24
(0479) 				if (g_LedTimesT2 == LEDFLICKTIME2)
    023B 3382      CPI	R24,0x32
    023C F451      BNE	0x0247
(0480) 				{
(0481) 					g_LedTimesT2 = 0;
    023D 2422      CLR	R2
    023E 9220010F  STS	g_LedTimesT2,R2
(0482) 					g_LedTimesT1 = 0;
    0240 92200110  STS	g_LedTimesT1,R2
(0483) 					g_LedTimesCnt--;
    0242 91800112  LDS	R24,g_LedTimesCnt
    0244 5081      SUBI	R24,1
    0245 93800112  STS	g_LedTimesCnt,R24
(0484) 				}
(0485) 			}
(0486) 		}
(0487) 		if (g_LedTimesCnt == 0)
    0247 90200112  LDS	R2,g_LedTimesCnt
    0249 2022      TST	R2
    024A F4B9      BNE	0x0262
(0488) 		{
(0489) 			g_LedTimesT3 ++;
    024B 91800100  LDS	R24,g_LedTimesT3
    024D 91900101  LDS	R25,g_LedTimesT3+1
    024F 9601      ADIW	R24,1
    0250 93900101  STS	g_LedTimesT3+1,R25
    0252 93800100  STS	g_LedTimesT3,R24
(0490) 			if (g_LedTimesT3 == LEDFLICKTIME3)
    0254 3F8A      CPI	R24,0xFA
    0255 E0E0      LDI	R30,0
    0256 079E      CPC	R25,R30
    0257 F451      BNE	0x0262
(0491) 			{
(0492) 				g_LedTimesT3 = 0;
    0258 2422      CLR	R2
    0259 2433      CLR	R3
    025A 92300101  STS	g_LedTimesT3+1,R3
    025C 92200100  STS	g_LedTimesT3,R2
(0493) 				g_LedTimesCnt = g_LedTimes;
    025E 90200111  LDS	R2,g_LedTimes
    0260 92200112  STS	g_LedTimesCnt,R2
(0494) 			}
(0495) 		}
(0496) 	}
    0262 9508      RET
FILE: D:\bak\新建文件夹\Err_debug_main.c
(0001) //ICC-AVR application builder : 2005-7-14 20:07:57
(0002) // Target : M88
(0003) // Crystal: 8.0000Mhz
(0004) 
(0005) #include <iom88v.h>
(0006) #include <macros.h>
(0007) #include "Err.h"
(0008) 
(0009) void  timer1_ovf_isr_(void);
(0010) 
(0011) //宏定义:定义常用口线操作等,具体应用前应根据实际情况修改!
(0012) //#define LEDFLICKTIME1		 	  50			//  LED 灯闪烁时亮的时间T1 * 10 ms
(0013) //#define LEDFLICKTIME2			  50		    //  LED 灯闪烁时灭的时间T2 * 10 ms
(0014) //#define LEDFLICKTIME3			  150			//  LED 灯闪烁时两次闪烁间隔时间T3 * 10 ms
(0015) 
(0016) byte g_ErrCode01,g_ErrCode02;	//  故障代码 每一位指代不同的故障//  初始化为0
(0017) word g_Over220VCnt;					// 记录超过220v 的次数//  初始化为0
(0018) word g_Lower220VCnt;					// 记录低于220v 的次数//  初始化为0
(0019) word g_Over400VCnt;					// 记录超过400v 的次数//  初始化为0
(0020) word g_Lower400VCnt;					// 记录低于400v 的次数//  初始化为0
(0021) word g_LowSpeedCnt;					// 记录电机速度小于10 RPM 的次数//  初始化为0
(0022) byte g_LedTimesCnt;					// LED 灯闪烁次数计数//  初始化为0
(0023) byte g_LedTimes;					//  LED 灯闪烁次数 //  初始化为0
(0024) byte g_LedTimesT1;					// LED 灯闪烁时亮的时间统计 10ms 为单位//  初始化为0
(0025) byte g_LedTimesT2;					//LED 灯闪烁时灭的时间统计 10ms 为单位//  初始化为0
(0026) word g_LedTimesT3;					//LED 灯闪烁时间隔的时间统计 10ms 为单位//  初始化为0
(0027) 
(0028) byte g_MotorRun;					// 电机运动状态标志 :  1 表示运行 0 表示停止//  初始化为0
(0029) byte g_LowVol;					// 确定检测到欠压标志:  1 表示欠压//  初始化为0
(0030) byte g_singleLowVol;					// 单次欠压标志:  1 表示欠压//  初始化为0
(0031) byte g_SynEncoderErr;					// 同步编码器故障:  1 表示发生故障//  初始化为0
(0032) byte g_MotorBlock;					//电机堵转标志:  1 表示发生电机堵转//  初始化为0
(0033) byte g_LowSpeed;					// 电机速度小于10 RPM 标志1 表示速度小于10 RPM //  初始化为0
(0034) byte g_NostopNeedle;			// 无停针信号标志 : 1 表示无停针信号//  初始化为0
(0035) byte g_OverVol;					// 确定检测到过压标志:  1 表示过压//  初始化为0
(0036) byte g_SingleOverVol;					// 单次过压标志:  1 表示过压//  初始化为0
(0037) byte g_HallErr;					// 电机HALL信号故障 标志1 表示电机HALL信号故障  //  初始化为0
(0038) byte g_LedType;					// LED 灯闪烁类别  1 红灯  0  绿灯 //  初始化为0
(0039) byte g_StartLedFlick;				// 启动LED 灯闪烁标志//  初始化为0
(0040) byte g_LedTimes;					//  LED 灯闪烁次数   1 表示 开始闪烁  //  初始化为0
(0041) byte g_E_Mag_No;					//  选择电磁铁的序号1~3	//  初始化为1
(0042) byte g_Err_Det_Disable;					//  故障检测禁止1 表示禁止检测故障 //  初始化为0
(0043) 
(0044) 
(0045) void port_init(void)
(0046) {
(0047)  PORTB = 0x00;
_port_init:
    0263 2422      CLR	R2
    0264 B825      OUT	0x05,R2
(0048)  DDRB  = 0x00;
    0265 B824      OUT	0x04,R2
(0049)  PORTC = 0x00; //m103 output only
    0266 B828      OUT	0x08,R2
(0050)  DDRC  = 0x00;
    0267 B827      OUT	0x07,R2
(0051)  PORTD = 0x00;
    0268 B82B      OUT	0x0B,R2
(0052)  DDRD  = 0x00;
    0269 B82A      OUT	0x0A,R2
    026A 9508      RET
(0053) }
(0054) 
(0055) //TIMER0 initialize - prescale:1024
(0056) // WGM: Normal
(0057) // desired value: 10mSec
(0058) // actual value:  9.984mSec (0.2%)
(0059) void timer0_init(void)
(0060) {
(0061)  TCCR0B = 0x00; //stop
_timer0_init:
    026B 2422      CLR	R2
    026C BC25      OUT	0x25,R2
(0062)  TCNT0 = 0xB2; //set count
    026D EB82      LDI	R24,0xB2
    026E BD86      OUT	0x26,R24
(0063)  TCCR0A = 0x00; 
    026F BC24      OUT	0x24,R2
(0064)  TCCR0B = 0x05; //start timer
    0270 E085      LDI	R24,5
    0271 BD85      OUT	0x25,R24
    0272 9508      RET
_timer0_ovf_isr:
    0273 D04A      RCALL	push_lset
(0065) }
(0066) 
(0067) #pragma interrupt_handler timer0_ovf_isr:17
(0068) void timer0_ovf_isr(void)
(0069) {
(0070)  //TIMER0 has overflowed
(0071)  TCNT0 = 0xB2; //set count
    0274 EB82      LDI	R24,0xB2
    0275 BD86      OUT	0x26,R24
(0072)  
(0073)  timer1_ovf_isr_();
    0276 DEE6      RCALL	_timer1_ovf_isr_
    0277 D05D      RCALL	pop_lset
    0278 9518      RETI
(0074)  
(0075)  
(0076)  
(0077) }
(0078) 
(0079) //call this routine to initialize all peripherals
(0080) void init_devices(void)
(0081) {
(0082)  //stop errant interrupts until set up
(0083)  CLI(); //disable all interrupts
_init_devices:
    0279 94F8      BCLR	7
(0084)  port_init();
    027A DFE8      RCALL	_port_init
(0085)  timer0_init();
    027B DFEF      RCALL	_timer0_init
(0086) 
(0087)  MCUCR = 0x00;
    027C 2422      CLR	R2
    027D BE25      OUT	0x35,R2
(0088)  EICRA = 0x00; //extended ext ints
    027E 92200069  STS	0x69,R2
(0089)  EIMSK = 0x00;
    0280 BA2D      OUT	0x1D,R2
(0090)  
(0091)  TIMSK0 = 0x01; //timer 0 interrupt sources
    0281 E081      LDI	R24,1
    0282 9380006E  STS	0x6E,R24
(0092)  TIMSK1 = 0x00; //timer 1 interrupt sources
    0284 9220006F  STS	0x6F,R2
(0093)  TIMSK2 = 0x00; //timer 2 interrupt sources
    0286 92200070  STS	0x70,R2
(0094)  
(0095)  PCMSK0 = 0x00; //pin change mask 0 
    0288 9220006B  STS	0x6B,R2
(0096)  PCMSK1 = 0x00; //pin change mask 1 
    028A 9220006C  STS	0x6C,R2
(0097)  PCMSK2 = 0x00; //pin change mask 2
    028C 9220006D  STS	0x6D,R2
(0098)  PCICR = 0x00; //pin change enable 
    028E 92200068  STS	0x68,R2
(0099)  PRR = 0x00; //power controller
    0290 92200064  STS	0x64,R2
(0100)  SEI(); //re-enable interrupts
    0292 9478      BSET	7
    0293 9508      RET
(0101)  //all peripherals are now initialized
(0102) }
(0103) 
(0104) //
(0105) void main(void)
(0106) {
(0107)  byte i;
(0108)  
(0109)  i  = 1;
_main:
  i                    --> R20
    0294 E041      LDI	R20,1
(0110)  init_devices();
    0295 DFE3      RCALL	_init_devices
    0296 C006      RJMP	0x029D
(0111)  //insert your functional code here...
(0112)  	while (1)
(0113) 	{
(0114) 		//det_err();
(0115) 		if (i)
    0297 2344      TST	R20
    0298 F019      BEQ	0x029C
(0116) 
(0117) 		led_flicker(1,3);
    0299 E023      LDI	R18,3
    029A E001      LDI	R16,1
    029B DE8A      RCALL	_led_flicker
(0118) 		
(0119) 		i = 0;
FILE: <library>
    029C 2744      CLR	R20
    029D CFF9      RJMP	0x0297
    029E 9508      RET
push_gset5:
    029F 92FA      ST	R15,-Y
    02A0 92EA      ST	R14,-Y
push_gset4:
    02A1 92DA      ST	R13,-Y
    02A2 92CA      ST	R12,-Y
push_gset3:
    02A3 92BA      ST	R11,-Y
    02A4 92AA      ST	R10,-Y
push_gset2:
    02A5 937A      ST	R23,-Y
    02A6 936A      ST	R22,-Y
push_gset1:
    02A7 935A      ST	R21,-Y
    02A8 934A      ST	R20,-Y
    02A9 9508      RET
pop_gset1:
    02AA E0E1      LDI	R30,1
pop:
    02AB 9149      LD	R20,Y+
    02AC 9159      LD	R21,Y+
    02AD FDE0      SBRC	R30,0
    02AE 9508      RET
    02AF 9169      LD	R22,Y+
    02B0 9179      LD	R23,Y+
    02B1 FDE1      SBRC	R30,1
    02B2 9508      RET
    02B3 90A9      LD	R10,Y+
    02B4 90B9      LD	R11,Y+
    02B5 FDE2      SBRC	R30,2
    02B6 9508      RET
    02B7 90C9      LD	R12,Y+
    02B8 90D9      LD	R13,Y+
    02B9 FDE3      SBRC	R30,3
    02BA 9508      RET
    02BB 90E9      LD	R14,Y+
    02BC 90F9      LD	R15,Y+
    02BD 9508      RET
push_lset:
    02BE 93FA      ST	R31,-Y
    02BF 93EA      ST	R30,-Y
    02C0 93BA      ST	R27,-Y
    02C1 93AA      ST	R26,-Y
    02C2 939A      ST	R25,-Y
    02C3 938A      ST	R24,-Y
    02C4 933A      ST	R19,-Y
    02C5 932A      ST	R18,-Y
    02C6 931A      ST	R17,-Y
    02C7 930A      ST	R16,-Y
    02C8 929A      ST	R9,-Y
    02C9 928A      ST	R8,-Y
    02CA 927A      ST	R7,-Y
    02CB 926A      ST	R6,-Y
    02CC 925A      ST	R5,-Y
    02CD 924A      ST	R4,-Y
    02CE 923A      ST	R3,-Y
    02CF 922A      ST	R2,-Y
    02D0 921A      ST	R1,-Y
    02D1 920A      ST	R0,-Y
    02D2 B60F      IN	R0,0x3F
    02D3 920A      ST	R0,-Y
    02D4 9508      RET
pop_lset:
    02D5 9009      LD	R0,Y+
    02D6 BE0F      OUT	0x3F,R0
    02D7 9009      LD	R0,Y+
    02D8 9019      LD	R1,Y+
    02D9 9029      LD	R2,Y+
    02DA 9039      LD	R3,Y+
    02DB 9049      LD	R4,Y+
    02DC 9059      LD	R5,Y+
    02DD 9069      LD	R6,Y+
    02DE 9079      LD	R7,Y+
    02DF 9089      LD	R8,Y+
    02E0 9099      LD	R9,Y+
    02E1 9109      LD	R16,Y+
    02E2 9119      LD	R17,Y+
    02E3 9129      LD	R18,Y+
    02E4 9139      LD	R19,Y+
    02E5 9189      LD	R24,Y+
    02E6 9199      LD	R25,Y+
    02E7 91A9      LD	R26,Y+
    02E8 91B9      LD	R27,Y+
    02E9 91E9      LD	R30,Y+
    02EA 91F9      LD	R31,Y+
    02EB 9508      RET

⌨️ 快捷键说明

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