📄 minid_20050711.lis
字号:
.module MiniD_20050711.c
.area text(rom, con, rel)
0000 .dbfile E:\PMax\单片机源代码\函数库\MiniD\MiniD_20050711.c
0000 .dbfunc e port_init _port_init fV
.even
0000 _port_init::
0000 .dbline -1
0000 .dbline 15
0000 ; //ICC-AVR application builder : 2005-7-11 14:38:07
0000 ; // Target : M48
0000 ; // Crystal: 8.0000Mhz
0000 ;
0000 ; #include "Minid.h"
0000 ;
0000 ;
0000 ; //函数定义
0000 ; void adc_init(void); //ADC initialize
0000 ; void adc_isr(void);
0000 ; word AdcPedal(word adcp); //踏板信号转换为对应的控制值
0000 ;
0000 ;
0000 ; void port_init(void)
0000 ; {
0000 .dbline 16
0000 ; PORTB = 0xff;
0000 8FEF ldi R24,255
0002 85B9 out 0x5,R24
0004 .dbline 17
0004 ; DDRB = 0x00;
0004 2224 clr R2
0006 24B8 out 0x4,R2
0008 .dbline 18
0008 ; PORTC = 0xff; //m103 output only
0008 88B9 out 0x8,R24
000A .dbline 19
000A ; DDRC = 0x00;
000A 27B8 out 0x7,R2
000C .dbline 20
000C ; PORTD = 0xff;
000C 8BB9 out 0xb,R24
000E .dbline 21
000E ; DDRD = 0x00;
000E 2AB8 out 0xa,R2
0010 .dbline -2
0010 L1:
0010 .dbline 0 ; func end
0010 0895 ret
0012 .dbend
0012 .dbfunc e init_devices _init_devices fV
.even
0012 _init_devices::
0012 .dbline -1
0012 .dbline 26
0012 ; }
0012 ;
0012 ; //call this routine to initialize all peripherals
0012 ; void init_devices(void)
0012 ; {
0012 .dbline 28
0012 ; //stop errant interrupts until set up
0012 ; CLI(); //disable all interrupts
0012 F894 cli
0014 .dbline 29
0014 ; port_init();
0014 F5DF rcall _port_init
0016 .dbline 30
0016 ; timer1_init();
0016 00D0 rcall _timer1_init
0018 .dbline 32
0018 ;
0018 ; MCUCR = 0x00;
0018 2224 clr R2
001A 25BE out 0x35,R2
001C .dbline 33
001C ; EICRA = 0x00; //extended ext ints
001C 20926900 sts 105,R2
0020 .dbline 34
0020 ; EIMSK = 0x00;
0020 2DBA out 0x1d,R2
0022 .dbline 36
0022 ;
0022 ; TIMSK0 = 0x00; //timer 0 interrupt sources
0022 20926E00 sts 110,R2
0026 .dbline 37
0026 ; TIMSK1 = 0x21; //timer 1 interrupt sources
0026 81E2 ldi R24,33
0028 80936F00 sts 111,R24
002C .dbline 38
002C ; TIMSK2 = 0x00; //timer 2 interrupt sources
002C 20927000 sts 112,R2
0030 .dbline 40
0030 ;
0030 ; PCMSK0 = 0x00; //pin change mask 0
0030 20926B00 sts 107,R2
0034 .dbline 41
0034 ; PCMSK1 = 0x00; //pin change mask 1
0034 20926C00 sts 108,R2
0038 .dbline 42
0038 ; PCMSK2 = 0x00; //pin change mask 2
0038 20926D00 sts 109,R2
003C .dbline 43
003C ; PCICR = 0x00; //pin change enable
003C 20926800 sts 104,R2
0040 .dbline 44
0040 ; PRR = 0x00; //power controller
0040 20926400 sts 100,R2
0044 .dbline 45
0044 ; SEI(); //re-enable interrupts
0044 7894 sei
0046 .dbline -2
0046 L2:
0046 .dbline 0 ; func end
0046 0895 ret
0048 .dbend
0048 .dbfunc e main _main fV
0048 ; d -> R20
0048 ; jj -> R22,R23
0048 ; j -> R10,R11
0048 ; i -> y+0
.even
0048 _main::
0048 2497 sbiw R28,4
004A .dbline -1
004A .dbline 51
004A ; //all peripherals are now initialized
004A ; }
004A ;
004A ; //
004A ; void main(void)
004A ; {
004A .dbline 55
004A ; dword i;
004A ; word j,jj;
004A ; byte d;
004A ; init_devices();
004A E3DF rcall _init_devices
004C .dbline 58
004C ;
004C ; //insert your functional code here...
004C ; PIDInit (&sPID);
004C 00E0 ldi R16,<_sPID
004E 10E0 ldi R17,>_sPID
0050 00D0 rcall _PIDInit
0052 2AC0 rjmp L5
0054 L4:
0054 .dbline 60
0054 .dbline 61
0054 40900600 lds R4,_g_DeltaEnc+2
0058 50900700 lds R5,_g_DeltaEnc+2+1
005C 20900400 lds R2,_g_DeltaEnc
0060 30900500 lds R3,_g_DeltaEnc+1
0064 FE01 movw R30,R28
0066 2082 std z+0,R2
0068 3182 std z+1,R3
006A 4282 std z+2,R4
006C 5382 std z+3,R5
006E .dbline 62
006E C501 movw R24,R10
0070 0196 adiw R24,1
0072 5C01 movw R10,R24
0074 .dbline 63
0074 8C01 movw R16,R24
0076 00D0 rcall _AdcPedal
0078 B801 movw R22,R16
007A .dbline 64
007A 2224 clr R2
007C 3324 clr R3
007E 30921200 sts _sPID+4+1,R3
0082 20921100 sts _sPID+4,R2
0086 .dbline 65
0086 30921000 sts _sPID+2+1,R3
008A 20920F00 sts _sPID+2,R2
008E .dbline 66
008E 88E8 ldi R24,5000
0090 93E1 ldi R25,19
0092 90930E00 sts _sPID+1,R25
0096 80930D00 sts _sPID,R24
009A .dbline 67
009A FE01 movw R30,R28
009C 2081 ldd R18,z+0
009E 3181 ldd R19,z+1
00A0 00E0 ldi R16,<_sPID
00A2 10E0 ldi R17,>_sPID
00A4 00D0 rcall _PIDCalc
00A6 402F mov R20,R16
00A8 .dbline 69
00A8 L5:
00A8 .dbline 59
00A8 D5CF rjmp L4
00AA X0:
00AA .dbline -2
00AA L3:
00AA 2496 adiw R28,4
00AC .dbline 0 ; func end
00AC 0895 ret
00AE .dbsym r d 20 c
00AE .dbsym r jj 22 i
00AE .dbsym r j 10 i
00AE .dbsym l i 0 l
00AE .dbend
.area bss(ram, con, rel)
0000 .dbfile E:\PMax\单片机源代码\函数库\MiniD\MiniD_20050711.c
0000 _g_ValueAdc::
0000 .blkb 2
0002 .dbfile E:\PMax\单片机源代码\函数库\MiniD/Minid.h
0002 .dbsym e g_ValueAdc _g_ValueAdc i
0002 _g_AdcNum::
0002 .blkb 1
0003 .dbsym e g_AdcNum _g_AdcNum c
0003 _g_AdcEnd::
0003 .blkb 1
0004 .dbsym e g_AdcEnd _g_AdcEnd c
0004 _g_DeltaEnc::
0004 .blkb 4
0008 .dbsym e g_DeltaEnc _g_DeltaEnc l
0008 _g_CntOld::
0008 .blkb 2
000A .dbsym e g_CntOld _g_CntOld i
000A _g_CntUpdate::
000A .blkb 2
000C .dbsym e g_CntUpdate _g_CntUpdate i
000C _g_TotalEnc::
000C .blkb 1
000D .dbsym e g_TotalEnc _g_TotalEnc c
000D _sPID::
000D .blkb 16
001D .dbstruct 0 16 PID
001D .dbfield 0 SetValue I
001D .dbfield 2 P I
001D .dbfield 4 I I
001D .dbfield 6 D I
001D .dbfield 8 LastError I
001D .dbfield 10 PrevError I
001D .dbfield 12 SumError L
001D .dbend
001D .dbsym e sPID _sPID S[PID]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -