📄 main.lis
字号:
.module main.c
.area text(rom, con, rel)
0000 .dbfile D:\_文档~1\easy-STQ-20080712\main.c
0000 .dbfunc e main _main fV
.even
0000 _main::
0000 2297 sbiw R28,2
0002 .dbline -1
0002 .dbline 12
0002 ;
0002 ;
0002 ; #define MAIN_GLOBAL
0002 ; #include "main.h"
0002 ;
0002 ;
0002 ; static void InitPort(void);
0002 ; static void InitDevices(void);
0002 ;
0002 ;
0002 ; void main()
0002 ; {
0002 .dbline 14
0002 ;
0002 ; InitDevices(); //设备初始化
0002 26D0 xcall _InitDevices
0004 .dbline 16
0004 ;
0004 ; SCH_Add_Task(Motor, 900, 1); //电机任务,10ms循环一次
0004 81E0 ldi R24,1
0006 90E0 ldi R25,0
0008 9983 std y+1,R25
000A 8883 std y+0,R24
000C 24E8 ldi R18,900
000E 33E0 ldi R19,3
0010 00E0 ldi R16,<PL_Motor
0012 10E0 ldi R17,>PL_Motor
0014 0E940000 xcall _SCH_Add_Task
0018 .dbline 18
0018 ;
0018 ; SCH_Add_Task(Alarm,901,10); //LED告警指示,100ms循环一次
0018 8AE0 ldi R24,10
001A 90E0 ldi R25,0
001C 9983 std y+1,R25
001E 8883 std y+0,R24
0020 25E8 ldi R18,901
0022 33E0 ldi R19,3
0024 00E0 ldi R16,<PL_Alarm
0026 10E0 ldi R17,>PL_Alarm
0028 0E940000 xcall _SCH_Add_Task
002C .dbline 20
002C ;
002C ; SCH_Add_Task(check,1,0); //电机参数检测任务,只上电时执行一次
002C 2224 clr R2
002E 3324 clr R3
0030 3982 std y+1,R3
0032 2882 std y+0,R2
0034 21E0 ldi R18,1
0036 30E0 ldi R19,0
0038 00E0 ldi R16,<PL_check
003A 10E0 ldi R17,>PL_check
003C 0E940000 xcall _SCH_Add_Task
0040 .dbline 22
0040 ;
0040 ; SCH_Start();
0040 0E940000 xcall _SCH_Start
0044 02C0 xjmp L6
0046 L5:
0046 .dbline 25
0046 .dbline 26
0046 0E940000 xcall _SCH_Dispatch_Tasks
004A .dbline 27
004A L6:
004A .dbline 24
004A FDCF xjmp L5
004C X0:
004C .dbline -2
004C L4:
004C 2296 adiw R28,2
004E .dbline 0 ; func end
004E 0895 ret
0050 .dbend
0050 .dbfunc s InitDevices _InitDevices fV
.even
0050 _InitDevices:
0050 .dbline -1
0050 .dbline 33
0050 ;
0050 ; while(1)
0050 ; {
0050 ; SCH_Dispatch_Tasks();
0050 ; }
0050 ;
0050 ; }
0050 ;
0050 ;
0050 ; static void InitDevices(void)
0050 ; {
0050 .dbline 34
0050 ; CLI(); //关中断
0050 F894 cli
0052 .dbline 36
0052 ;
0052 ; InitPort(); //IO端口初始化
0052 15D0 xcall _InitPort
0054 .dbline 38
0054 ;
0054 ; StopMotor(); //设置电机关
0054 0E940000 xcall _StopMotor
0058 .dbline 41
0058 ;
0058 ;
0058 ; MotorFlag = STOP; //状态标识
0058 83E0 ldi R24,3
005A 80930000 sts _MotorFlag,R24
005E .dbline 42
005E ; ControlFlag = IN_LOCAL;
005E 81E0 ldi R24,1
0060 80930000 sts _ControlFlag,R24
0064 .dbline 43
0064 ; limit_direction = 1;
0064 80930000 sts _limit_direction,R24
0068 .dbline 45
0068 ;
0068 ; SetLocalLed(); //本地LED指示
0068 C598 cbi 0x18,5
006A .dbline 46
006A ; ClrRemoteLed();
006A C69A sbi 0x18,6
006C .dbline 48
006C ;
006C ; MCUCR = 0x00;
006C 2224 clr R2
006E 25BE out 0x35,R2
0070 .dbline 49
0070 ; GICR = 0x00;
0070 2BBE out 0x3b,R2
0072 .dbline 50
0072 ; TIMSK = 0x04; //timer interrupt sources
0072 84E0 ldi R24,4
0074 89BF out 0x39,R24
0076 .dbline 52
0076 ;
0076 ; InitTimer1(); //调度定时器
0076 0E940000 xcall _InitTimer1
007A .dbline 54
007A ;
007A ; OutWdServer(); //喂外部看门狗
007A 0ED0 xcall _OutWdServer
007C .dbline -2
007C L8:
007C .dbline 0 ; func end
007C 0895 ret
007E .dbend
007E .dbfunc s InitPort _InitPort fV
.even
007E _InitPort:
007E .dbline -1
007E .dbline 59
007E ; }
007E ;
007E ;
007E ; static void InitPort(void)
007E ; {
007E .dbline 60
007E ; PORTB =(1<<LOCAL_LED)|(1<<REMOTE_LED)|(1<<OUT_WD);
007E 80E7 ldi R24,112
0080 88BB out 0x18,R24
0082 .dbline 61
0082 ; DDRB=((1<<LOCAL_LED)|(1<<REMOTE_LED)|(1<<OUT_WD));
0082 87BB out 0x17,R24
0084 .dbline 63
0084 ;
0084 ; PORTA =0x00;
0084 2224 clr R2
0086 2BBA out 0x1b,R2
0088 .dbline 64
0088 ; DDRA=0x00;
0088 2ABA out 0x1a,R2
008A .dbline 66
008A ;
008A ; PORTC =0x00;
008A 25BA out 0x15,R2
008C .dbline 67
008C ; DDRC =(0<<LOCAL_CLOSE)|(0<<LOCAL_OPEN)|(1<<MOTOR_1)|(1<<MOTOR_2);
008C 83E0 ldi R24,3
008E 84BB out 0x14,R24
0090 .dbline 69
0090 ;
0090 ; PORTD =0x00;
0090 22BA out 0x12,R2
0092 .dbline 70
0092 ; DDRD = ((0<<REMOTE_STOP)|(0<<REMOTE_CLOSE)|(0<<REMOTE_OPEN))|((1<<S1|(1<<S2)));
0092 80EC ldi R24,192
0094 81BB out 0x11,R24
0096 .dbline -2
0096 L9:
0096 .dbline 0 ; func end
0096 0895 ret
0098 .dbend
.area data(ram, con, rel)
0000 .dbfile D:\_文档~1\easy-STQ-20080712\main.c
0000 L11:
0000 .blkb 1
.area idata
0000 01 .byte 1
.area data(ram, con, rel)
0001 .dbfile D:\_文档~1\easy-STQ-20080712\main.c
.area text(rom, con, rel)
0098 .dbfile D:\_文档~1\easy-STQ-20080712\main.c
0098 .dbfunc e OutWdServer _OutWdServer fV
0098 .dbsym s WdFlag L11 c
.even
0098 _OutWdServer::
0098 .dbline -1
0098 .dbline 76
0098 ;
0098 ; }
0098 ;
0098 ;
0098 ; void OutWdServer(void) //喂外部看门狗
0098 ; {
0098 .dbline 79
0098 ; static uchar WdFlag=1;
0098 ;
0098 ; if (WdFlag)
0098 20900000 lds R2,L11
009C 2220 tst R2
009E 29F0 breq L12
00A0 .dbline 80
00A0 ; {
00A0 .dbline 81
00A0 ; SetOutWd();
00A0 C49A sbi 0x18,4
00A2 .dbline 82
00A2 ; WdFlag=0;
00A2 2224 clr R2
00A4 20920000 sts L11,R2
00A8 .dbline 83
00A8 ; }
00A8 04C0 xjmp L13
00AA L12:
00AA .dbline 85
00AA .dbline 86
00AA C498 cbi 0x18,4
00AC .dbline 87
00AC 81E0 ldi R24,1
00AE 80930000 sts L11,R24
00B2 .dbline 88
00B2 L13:
00B2 .dbline -2
00B2 L10:
00B2 .dbline 0 ; func end
00B2 0895 ret
00B4 .dbend
.area func_lit
0000 0000 PL_check: .word `_check
0002 0000 PL_Alarm: .word `_Alarm
0004 0000 PL_Motor: .word `_Motor
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -