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

📄 err_debug_main.lis

📁 平缝机的单片机伺服控制系统源代码。本程序为用单片机控制永磁同步电机的低成本方案
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .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 + -