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

📄 err_debug_main.s

📁 平缝机的单片机伺服控制系统源代码。本程序为用单片机控制永磁同步电机的低成本方案
💻 S
字号:
	.module Err_debug_main.c
	.area text(rom, con, rel)
	.dbfile D:\bak\新建文件夹\Err_debug_main.c
	.dbfunc e port_init _port_init fV
	.even
_port_init::
	.dbline -1
	.dbline 46
; //ICC-AVR application builder : 2005-7-14 20:07:57
; // Target : M88
; // Crystal: 8.0000Mhz
; 
; #include <iom88v.h>
; #include <macros.h>
; #include "Err.h"
; 
; void  timer1_ovf_isr_(void);
; 
; //宏定义:定义常用口线操作等,具体应用前应根据实际情况修改!
; //#define LEDFLICKTIME1		 	  50			//  LED 灯闪烁时亮的时间T1 * 10 ms
; //#define LEDFLICKTIME2			  50		    //  LED 灯闪烁时灭的时间T2 * 10 ms
; //#define LEDFLICKTIME3			  150			//  LED 灯闪烁时两次闪烁间隔时间T3 * 10 ms
; 
; byte g_ErrCode01,g_ErrCode02;	//  故障代码 每一位指代不同的故障//  初始化为0
; word g_Over220VCnt;					// 记录超过220v 的次数//  初始化为0
; word g_Lower220VCnt;					// 记录低于220v 的次数//  初始化为0
; word g_Over400VCnt;					// 记录超过400v 的次数//  初始化为0
; word g_Lower400VCnt;					// 记录低于400v 的次数//  初始化为0
; word g_LowSpeedCnt;					// 记录电机速度小于10 RPM 的次数//  初始化为0
; byte g_LedTimesCnt;					// LED 灯闪烁次数计数//  初始化为0
; byte g_LedTimes;					//  LED 灯闪烁次数 //  初始化为0
; byte g_LedTimesT1;					// LED 灯闪烁时亮的时间统计 10ms 为单位//  初始化为0
; byte g_LedTimesT2;					//LED 灯闪烁时灭的时间统计 10ms 为单位//  初始化为0
; word g_LedTimesT3;					//LED 灯闪烁时间隔的时间统计 10ms 为单位//  初始化为0
; 
; byte g_MotorRun;					// 电机运动状态标志 :  1 表示运行 0 表示停止//  初始化为0
; byte g_LowVol;					// 确定检测到欠压标志:  1 表示欠压//  初始化为0
; byte g_singleLowVol;					// 单次欠压标志:  1 表示欠压//  初始化为0
; byte g_SynEncoderErr;					// 同步编码器故障:  1 表示发生故障//  初始化为0
; byte g_MotorBlock;					//电机堵转标志:  1 表示发生电机堵转//  初始化为0
; byte g_LowSpeed;					// 电机速度小于10 RPM 标志1 表示速度小于10 RPM //  初始化为0
; byte g_NostopNeedle;			// 无停针信号标志 : 1 表示无停针信号//  初始化为0
; byte g_OverVol;					// 确定检测到过压标志:  1 表示过压//  初始化为0
; byte g_SingleOverVol;					// 单次过压标志:  1 表示过压//  初始化为0
; byte g_HallErr;					// 电机HALL信号故障 标志1 表示电机HALL信号故障  //  初始化为0
; byte g_LedType;					// LED 灯闪烁类别  1 红灯  0  绿灯 //  初始化为0
; byte g_StartLedFlick;				// 启动LED 灯闪烁标志//  初始化为0
; byte g_LedTimes;					//  LED 灯闪烁次数   1 表示 开始闪烁  //  初始化为0
; byte g_E_Mag_No;					//  选择电磁铁的序号1~3	//  初始化为1
; byte g_Err_Det_Disable;					//  故障检测禁止1 表示禁止检测故障 //  初始化为0
; 
; 
; void port_init(void)
; {
	.dbline 47
;  PORTB = 0x00;
	clr R2
	out 0x5,R2
	.dbline 48
;  DDRB  = 0x00;
	out 0x4,R2
	.dbline 49
;  PORTC = 0x00; //m103 output only
	out 0x8,R2
	.dbline 50
;  DDRC  = 0x00;
	out 0x7,R2
	.dbline 51
;  PORTD = 0x00;
	out 0xb,R2
	.dbline 52
;  DDRD  = 0x00;
	out 0xa,R2
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e timer0_init _timer0_init fV
	.even
_timer0_init::
	.dbline -1
	.dbline 60
; }
; 
; //TIMER0 initialize - prescale:1024
; // WGM: Normal
; // desired value: 10mSec
; // actual value:  9.984mSec (0.2%)
; void timer0_init(void)
; {
	.dbline 61
;  TCCR0B = 0x00; //stop
	clr R2
	out 0x25,R2
	.dbline 62
;  TCNT0 = 0xB2; //set count
	ldi R24,178
	out 0x26,R24
	.dbline 63
;  TCCR0A = 0x00; 
	out 0x24,R2
	.dbline 64
;  TCCR0B = 0x05; //start timer
	ldi R24,5
	out 0x25,R24
	.dbline -2
L2:
	.dbline 0 ; func end
	ret
	.dbend
	.area vector(rom, abs)
	.org 32
	rjmp _timer0_ovf_isr
	.area text(rom, con, rel)
	.dbfile D:\bak\新建文件夹\Err_debug_main.c
	.dbfunc e timer0_ovf_isr _timer0_ovf_isr fV
	.even
_timer0_ovf_isr::
	rcall push_lset
	.dbline -1
	.dbline 69
; }
; 
; #pragma interrupt_handler timer0_ovf_isr:17
; void timer0_ovf_isr(void)
; {
	.dbline 71
;  //TIMER0 has overflowed
;  TCNT0 = 0xB2; //set count
	ldi R24,178
	out 0x26,R24
	.dbline 73
;  
;  timer1_ovf_isr_();
	rcall _timer1_ovf_isr_
	.dbline -2
L3:
	rcall pop_lset
	.dbline 0 ; func end
	reti
	.dbend
	.dbfunc e init_devices _init_devices fV
	.even
_init_devices::
	.dbline -1
	.dbline 81
;  
;  
;  
; }
; 
; //call this routine to initialize all peripherals
; void init_devices(void)
; {
	.dbline 83
;  //stop errant interrupts until set up
;  CLI(); //disable all interrupts
	cli
	.dbline 84
;  port_init();
	rcall _port_init
	.dbline 85
;  timer0_init();
	rcall _timer0_init
	.dbline 87
; 
;  MCUCR = 0x00;
	clr R2
	out 0x35,R2
	.dbline 88
;  EICRA = 0x00; //extended ext ints
	sts 105,R2
	.dbline 89
;  EIMSK = 0x00;
	out 0x1d,R2
	.dbline 91
;  
;  TIMSK0 = 0x01; //timer 0 interrupt sources
	ldi R24,1
	sts 110,R24
	.dbline 92
;  TIMSK1 = 0x00; //timer 1 interrupt sources
	sts 111,R2
	.dbline 93
;  TIMSK2 = 0x00; //timer 2 interrupt sources
	sts 112,R2
	.dbline 95
;  
;  PCMSK0 = 0x00; //pin change mask 0 
	sts 107,R2
	.dbline 96
;  PCMSK1 = 0x00; //pin change mask 1 
	sts 108,R2
	.dbline 97
;  PCMSK2 = 0x00; //pin change mask 2
	sts 109,R2
	.dbline 98
;  PCICR = 0x00; //pin change enable 
	sts 104,R2
	.dbline 99
;  PRR = 0x00; //power controller
	sts 100,R2
	.dbline 100
;  SEI(); //re-enable interrupts
	sei
	.dbline -2
L4:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e main _main fV
;              i -> R20
	.even
_main::
	.dbline -1
	.dbline 106
;  //all peripherals are now initialized
; }
; 
; //
; void main(void)
; {
	.dbline 109
;  byte i;
;  
;  i  = 1;
	ldi R20,1
	.dbline 110
;  init_devices();
	rcall _init_devices
	rjmp L7
L6:
	.dbline 113
;  //insert your functional code here...
;  	while (1)
; 	{
	.dbline 115
; 		//det_err();
; 		if (i)
	tst R20
	breq L9
	.dbline 117
; 
; 		led_flicker(1,3);
	ldi R18,3
	ldi R16,1
	rcall _led_flicker
L9:
	.dbline 119
	clr R20
	.dbline 120
L7:
	.dbline 112
	rjmp L6
X0:
	.dbline -2
L5:
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbend
	.area bss(ram, con, rel)
	.dbfile D:\bak\新建文件夹\Err_debug_main.c
_g_LedTimesT3::
	.blkb 2
	.dbsym e g_LedTimesT3 _g_LedTimesT3 i
_g_LowSpeedCnt::
	.blkb 2
	.dbsym e g_LowSpeedCnt _g_LowSpeedCnt i
_g_Lower400VCnt::
	.blkb 2
	.dbsym e g_Lower400VCnt _g_Lower400VCnt i
_g_Over400VCnt::
	.blkb 2
	.dbsym e g_Over400VCnt _g_Over400VCnt i
_g_Lower220VCnt::
	.blkb 2
	.dbsym e g_Lower220VCnt _g_Lower220VCnt i
_g_Over220VCnt::
	.blkb 2
	.dbsym e g_Over220VCnt _g_Over220VCnt i
_g_Err_Det_Disable::
	.blkb 1
	.dbsym e g_Err_Det_Disable _g_Err_Det_Disable c
_g_E_Mag_No::
	.blkb 1
	.dbsym e g_E_Mag_No _g_E_Mag_No c
_g_StartLedFlick::
	.blkb 1
	.dbsym e g_StartLedFlick _g_StartLedFlick c
_g_LedTimesT2::
	.blkb 1
	.dbsym e g_LedTimesT2 _g_LedTimesT2 c
_g_LedTimesT1::
	.blkb 1
	.dbsym e g_LedTimesT1 _g_LedTimesT1 c
_g_LedTimes::
	.blkb 1
	.dbsym e g_LedTimes _g_LedTimes c
_g_LedTimesCnt::
	.blkb 1
	.dbsym e g_LedTimesCnt _g_LedTimesCnt c
_g_LedType::
	.blkb 1
	.dbsym e g_LedType _g_LedType c
_g_HallErr::
	.blkb 1
	.dbsym e g_HallErr _g_HallErr c
_g_LowSpeed::
	.blkb 1
	.dbsym e g_LowSpeed _g_LowSpeed c
_g_MotorBlock::
	.blkb 1
	.dbsym e g_MotorBlock _g_MotorBlock c
_g_SynEncoderErr::
	.blkb 1
	.dbsym e g_SynEncoderErr _g_SynEncoderErr c
_g_SingleOverVol::
	.blkb 1
	.dbsym e g_SingleOverVol _g_SingleOverVol c
_g_OverVol::
	.blkb 1
	.dbsym e g_OverVol _g_OverVol c
_g_LowVol::
	.blkb 1
	.dbsym e g_LowVol _g_LowVol c
_g_NostopNeedle::
	.blkb 1
	.dbsym e g_NostopNeedle _g_NostopNeedle c
_g_singleLowVol::
	.blkb 1
	.dbsym e g_singleLowVol _g_singleLowVol c
_g_MotorRun::
	.blkb 1
	.dbsym e g_MotorRun _g_MotorRun c
_g_ErrCode02::
	.blkb 1
	.dbsym e g_ErrCode02 _g_ErrCode02 c
_g_ErrCode01::
	.blkb 1
	.dbsym e g_ErrCode01 _g_ErrCode01 c

⌨️ 快捷键说明

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