📄 err_debug_main.lis
字号:
.module Err_debug_main.c
.area text(rom, con, rel)
0000 .dbfile D:\bak\新建文件夹\Err_debug_main.c
0000 .dbfunc e port_init _port_init fV
.even
0000 _port_init::
0000 .dbline -1
0000 .dbline 46
0000 ; //ICC-AVR application builder : 2005-7-14 20:07:57
0000 ; // Target : M88
0000 ; // Crystal: 8.0000Mhz
0000 ;
0000 ; #include <iom88v.h>
0000 ; #include <macros.h>
0000 ; #include "Err.h"
0000 ;
0000 ; void timer1_ovf_isr_(void);
0000 ;
0000 ; //宏定义:定义常用口线操作等,具体应用前应根据实际情况修改!
0000 ; //#define LEDFLICKTIME1 50 // LED 灯闪烁时亮的时间T1 * 10 ms
0000 ; //#define LEDFLICKTIME2 50 // LED 灯闪烁时灭的时间T2 * 10 ms
0000 ; //#define LEDFLICKTIME3 150 // LED 灯闪烁时两次闪烁间隔时间T3 * 10 ms
0000 ;
0000 ; byte g_ErrCode01,g_ErrCode02; // 故障代码 每一位指代不同的故障// 初始化为0
0000 ; word g_Over220VCnt; // 记录超过220v 的次数// 初始化为0
0000 ; word g_Lower220VCnt; // 记录低于220v 的次数// 初始化为0
0000 ; word g_Over400VCnt; // 记录超过400v 的次数// 初始化为0
0000 ; word g_Lower400VCnt; // 记录低于400v 的次数// 初始化为0
0000 ; word g_LowSpeedCnt; // 记录电机速度小于10 RPM 的次数// 初始化为0
0000 ; byte g_LedTimesCnt; // LED 灯闪烁次数计数// 初始化为0
0000 ; byte g_LedTimes; // LED 灯闪烁次数 // 初始化为0
0000 ; byte g_LedTimesT1; // LED 灯闪烁时亮的时间统计 10ms 为单位// 初始化为0
0000 ; byte g_LedTimesT2; //LED 灯闪烁时灭的时间统计 10ms 为单位// 初始化为0
0000 ; word g_LedTimesT3; //LED 灯闪烁时间隔的时间统计 10ms 为单位// 初始化为0
0000 ;
0000 ; byte g_MotorRun; // 电机运动状态标志 : 1 表示运行 0 表示停止// 初始化为0
0000 ; byte g_LowVol; // 确定检测到欠压标志: 1 表示欠压// 初始化为0
0000 ; byte g_singleLowVol; // 单次欠压标志: 1 表示欠压// 初始化为0
0000 ; byte g_SynEncoderErr; // 同步编码器故障: 1 表示发生故障// 初始化为0
0000 ; byte g_MotorBlock; //电机堵转标志: 1 表示发生电机堵转// 初始化为0
0000 ; byte g_LowSpeed; // 电机速度小于10 RPM 标志1 表示速度小于10 RPM // 初始化为0
0000 ; byte g_NostopNeedle; // 无停针信号标志 : 1 表示无停针信号// 初始化为0
0000 ; byte g_OverVol; // 确定检测到过压标志: 1 表示过压// 初始化为0
0000 ; byte g_SingleOverVol; // 单次过压标志: 1 表示过压// 初始化为0
0000 ; byte g_HallErr; // 电机HALL信号故障 标志1 表示电机HALL信号故障 // 初始化为0
0000 ; byte g_LedType; // LED 灯闪烁类别 1 红灯 0 绿灯 // 初始化为0
0000 ; byte g_StartLedFlick; // 启动LED 灯闪烁标志// 初始化为0
0000 ; byte g_LedTimes; // LED 灯闪烁次数 1 表示 开始闪烁 // 初始化为0
0000 ; byte g_E_Mag_No; // 选择电磁铁的序号1~3 // 初始化为1
0000 ; byte g_Err_Det_Disable; // 故障检测禁止1 表示禁止检测故障 // 初始化为0
0000 ;
0000 ;
0000 ; void port_init(void)
0000 ; {
0000 .dbline 47
0000 ; PORTB = 0x00;
0000 2224 clr R2
0002 25B8 out 0x5,R2
0004 .dbline 48
0004 ; DDRB = 0x00;
0004 24B8 out 0x4,R2
0006 .dbline 49
0006 ; PORTC = 0x00; //m103 output only
0006 28B8 out 0x8,R2
0008 .dbline 50
0008 ; DDRC = 0x00;
0008 27B8 out 0x7,R2
000A .dbline 51
000A ; PORTD = 0x00;
000A 2BB8 out 0xb,R2
000C .dbline 52
000C ; DDRD = 0x00;
000C 2AB8 out 0xa,R2
000E .dbline -2
000E L1:
000E .dbline 0 ; func end
000E 0895 ret
0010 .dbend
0010 .dbfunc e timer0_init _timer0_init fV
.even
0010 _timer0_init::
0010 .dbline -1
0010 .dbline 60
0010 ; }
0010 ;
0010 ; //TIMER0 initialize - prescale:1024
0010 ; // WGM: Normal
0010 ; // desired value: 10mSec
0010 ; // actual value: 9.984mSec (0.2%)
0010 ; void timer0_init(void)
0010 ; {
0010 .dbline 61
0010 ; TCCR0B = 0x00; //stop
0010 2224 clr R2
0012 25BC out 0x25,R2
0014 .dbline 62
0014 ; TCNT0 = 0xB2; //set count
0014 82EB ldi R24,178
0016 86BD out 0x26,R24
0018 .dbline 63
0018 ; TCCR0A = 0x00;
0018 24BC out 0x24,R2
001A .dbline 64
001A ; TCCR0B = 0x05; //start timer
001A 85E0 ldi R24,5
001C 85BD out 0x25,R24
001E .dbline -2
001E L2:
001E .dbline 0 ; func end
001E 0895 ret
0020 .dbend
.area vector(rom, abs)
.org 32
0020 10C0 rjmp _timer0_ovf_isr
.area text(rom, con, rel)
0020 .dbfile D:\bak\新建文件夹\Err_debug_main.c
0020 .dbfunc e timer0_ovf_isr _timer0_ovf_isr fV
.even
0020 _timer0_ovf_isr::
0020 00D0 rcall push_lset
0022 .dbline -1
0022 .dbline 69
0022 ; }
0022 ;
0022 ; #pragma interrupt_handler timer0_ovf_isr:17
0022 ; void timer0_ovf_isr(void)
0022 ; {
0022 .dbline 71
0022 ; //TIMER0 has overflowed
0022 ; TCNT0 = 0xB2; //set count
0022 82EB ldi R24,178
0024 86BD out 0x26,R24
0026 .dbline 73
0026 ;
0026 ; timer1_ovf_isr_();
0026 00D0 rcall _timer1_ovf_isr_
0028 .dbline -2
0028 L3:
0028 00D0 rcall pop_lset
002A .dbline 0 ; func end
002A 1895 reti
002C .dbend
002C .dbfunc e init_devices _init_devices fV
.even
002C _init_devices::
002C .dbline -1
002C .dbline 81
002C ;
002C ;
002C ;
002C ; }
002C ;
002C ; //call this routine to initialize all peripherals
002C ; void init_devices(void)
002C ; {
002C .dbline 83
002C ; //stop errant interrupts until set up
002C ; CLI(); //disable all interrupts
002C F894 cli
002E .dbline 84
002E ; port_init();
002E E8DF rcall _port_init
0030 .dbline 85
0030 ; timer0_init();
0030 EFDF rcall _timer0_init
0032 .dbline 87
0032 ;
0032 ; MCUCR = 0x00;
0032 2224 clr R2
0034 25BE out 0x35,R2
0036 .dbline 88
0036 ; EICRA = 0x00; //extended ext ints
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -