📄 err_debug_main.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 + -