📄 timer2.lis
字号:
.module timer2.c
.area text(rom, con, rel)
0000 .dbfile D:\ICCTES~1\1128\timer2.c
0000 .dbfunc e timer2_init _timer2_init fV
.even
0000 _timer2_init::
0000 .dbline -1
0000 .dbline 17
0000 ; // timer2
0000 ; #include <iom48v.h>
0000 ; #include <macros.h>
0000 ; #include "main.h"
0000 ; #include "modbus.h"
0000 ; #include "timer2.h"
0000 ;
0000 ; volatile TIMEBASESTRCUT timeBase;
0000 ; volatile LEDCONTROL ledControl;
0000 ; //uchar var_a,var_b;
0000 ;
0000 ; //TIMER2 initialize - prescale:64
0000 ; // WGM: Normal
0000 ; // desired value: 1mSec
0000 ; // actual value: 1.000mSec (0.0%)
0000 ; void timer2_init(void)
0000 ; {
0000 .dbline 18
0000 ; TCCR2B = 0x00; //stop
0000 2224 clr R2
0002 2092B100 sts 177,R2
0006 .dbline 19
0006 ; ASSR = 0x00; //set async mode
0006 2092B600 sts 182,R2
000A .dbline 20
000A ; TCNT2 = 0x83; //setup
000A 83E8 ldi R24,131
000C 8093B200 sts 178,R24
0010 .dbline 21
0010 ; OCR2A = 0x7D;
0010 8DE7 ldi R24,125
0012 8093B300 sts 179,R24
0016 .dbline 22
0016 ; OCR2B = 0x00;
0016 2092B400 sts 180,R2
001A .dbline 23
001A ; TCCR2A = 0x00;
001A 2092B000 sts 176,R2
001E .dbline 24
001E ; TCCR2B = 0x04; //start
001E 84E0 ldi R24,4
0020 8093B100 sts 177,R24
0024 .dbline -2
0024 L5:
0024 .dbline 0 ; func end
0024 0895 ret
0026 .dbend
.area bss(ram, con, rel)
0000 .dbfile D:\ICCTES~1\1128\timer2.c
0000 L7:
0000 .blkb 1
0001 L8:
0001 .blkb 1
0002 L9:
0002 .blkb 2
.area text(rom, con, rel)
0026 .dbfile D:\ICCTES~1\1128\timer2.c
0026 .dbfunc e time_mission _time_mission fV
0026 .dbsym s cnt500ms L9 i
0026 .dbsym s varcou L8 c
0026 .dbsym s Cnt100ms L7 c
.even
0026 _time_mission::
0026 .dbline -1
0026 .dbline 29
0026 ; }
0026 ;
0026 ; // timebase module.
0026 ; void time_mission (void)
0026 ; {
0026 .dbline 33
0026 ; static uchar Cnt100ms;
0026 ; static uchar varcou;
0026 ; static uint cnt500ms;
0026 ; timeBase.bits.b1ms = 0;
0026 80910600 lds R24,_timeBase
002A 8E7F andi R24,254
002C 80930600 sts _timeBase,R24
0030 .dbline 34
0030 ; timeBase.bits.b10ms = 0;
0030 80910600 lds R24,_timeBase
0034 8B7F andi R24,251
0036 80930600 sts _timeBase,R24
003A .dbline 36
003A ;
003A ; if(timeBase.bits.bt1ms)
003A 80910600 lds R24,_timeBase
003E 8695 lsr R24
0040 8170 andi R24,1
0042 09F4 brne X0
0044 44C0 rjmp L10
0046 X0:
0046 .dbline 37
0046 ; {
0046 .dbline 42
0046 ; //--------------------
0046 ; // PORTC ^= 0x02;
0046 ; // subled();
0046 ; //-----------------------
0046 ; timeBase.bits.bt1ms = 0;
0046 80910600 lds R24,_timeBase
004A 8D7F andi R24,253
004C 80930600 sts _timeBase,R24
0050 .dbline 43
0050 ; timeBase.bits.b1ms = 1;
0050 80910600 lds R24,_timeBase
0054 8160 ori R24,1
0056 80930600 sts _timeBase,R24
005A .dbline 44
005A ; if(receTimeOut>0)
005A 2224 clr R2
005C 30900000 lds R3,_receTimeOut
0060 2314 cp R2,R3
0062 70F4 brsh L12
0064 .dbline 45
0064 ; {
0064 .dbline 46
0064 ; receTimeOut--;
0064 832D mov R24,R3
0066 8150 subi R24,1
0068 80930000 sts _receTimeOut,R24
006C .dbline 47
006C ; if(receTimeOut==0 && receCount>0)
006C 8823 tst R24
006E 41F4 brne L14
0070 30900000 lds R3,_receCount
0074 2314 cp R2,R3
0076 20F4 brsh L14
0078 .dbline 48
0078 ; {
0078 .dbline 49
0078 ; receCount = 0;
0078 20920000 sts _receCount,R2
007C .dbline 50
007C ; checkoutError = 0;
007C 20920000 sts _checkoutError,R2
0080 .dbline 51
0080 ; }
0080 L14:
0080 .dbline 52
0080 ; } //if(receTimeOut>0)
0080 L12:
0080 .dbline 54
0080 ;
0080 ; varcou++;
0080 80910100 lds R24,L8
0084 8F5F subi R24,255 ; addi 1
0086 80930100 sts L8,R24
008A .dbline 55
008A ; if(varcou>=5)
008A 8530 cpi R24,5
008C 40F0 brlo L16
008E .dbline 56
008E ; {
008E .dbline 58
008E ;
008E ; ledControl.bits.refurbish = 1;
008E 80910400 lds R24,_ledControl
0092 8260 ori R24,2
0094 80930400 sts _ledControl,R24
0098 .dbline 59
0098 ; varcou = 0;
0098 2224 clr R2
009A 20920100 sts L8,R2
009E .dbline 60
009E ; }
009E L16:
009E .dbline 62
009E ;
009E ; cnt500ms++;
009E 80910200 lds R24,L9
00A2 90910300 lds R25,L9+1
00A6 0196 adiw R24,1
00A8 90930300 sts L9+1,R25
00AC 80930200 sts L9,R24
00B0 .dbline 63
00B0 ; if(cnt500ms>=200)
00B0 883C cpi R24,200
00B2 E0E0 ldi R30,0
00B4 9E07 cpc R25,R30
00B6 58F0 brlo L18
00B8 .dbline 64
00B8 ; {
00B8 .dbline 65
00B8 ; cnt500ms = 0;
00B8 2224 clr R2
00BA 3324 clr R3
00BC 30920300 sts L9+1,R3
00C0 20920200 sts L9,R2
00C4 .dbline 66
00C4 ; ledControl.bits.once128ms = 1;
00C4 80910400 lds R24,_ledControl
00C8 8160 ori R24,1
00CA 80930400 sts _ledControl,R24
00CE .dbline 67
00CE ; }
00CE L18:
00CE .dbline 68
00CE L10:
00CE .dbline -2
00CE L6:
00CE .dbline 0 ; func end
00CE 0895 ret
00D0 .dbend
.area bss(ram, con, rel)
0004 .dbfile D:\ICCTES~1\1128\timer2.c
0004 _ledControl::
0004 .blkb 2
0006 .dbstruct 0 1 .4
0006 .dbfield 0 once128ms F[0:1]
0006 .dbfield 0 refurbish F[1:1]
0006 .dbend
0006 .dbunion 0 2 .3
0006 .dbfield 0 bits S[.4]
0006 .dbfield 0 allbits i
0006 .dbend
0006 .dbsym e ledControl _ledControl S[.3]
0006 _timeBase::
0006 .blkb 2
0008 .dbstruct 0 1 .2
0008 .dbfield 0 b1ms F[0:1]
0008 .dbfield 0 bt1ms F[1:1]
0008 .dbfield 0 b10ms F[2:1]
0008 .dbfield 0 bt10ms F[3:1]
0008 .dbend
0008 .dbunion 0 2 .1
0008 .dbfield 0 bits S[.2]
0008 .dbfield 0 allbits i
0008 .dbend
0008 .dbsym e timeBase _timeBase S[.1]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -