📄 time_master.lis
字号:
.module time_master.c
.area text(rom, con, rel)
0000 .dbfile F:\IccAvr_Pro\time_master.c
0000 .dbfunc e timer0_init _timer0_init fV
.even
0000 _timer0_init::
0000 .dbline -1
0000 .dbline 12
0000 ; #include "time_master.h"
0000 ;
0000 ; unsigned char timeflag;
0000 ; unsigned char dispflag;
0000 ; unsigned char disp_cnt;
0000 ;
0000 ; //TIMER0 initialize - prescale:256
0000 ; // WGM: Normal
0000 ; // desired value: 5mSec
0000 ; // actual value: 4.965mSec (0.7%)
0000 ; void timer0_init(void)
0000 ; {
0000 .dbline 13
0000 ; TCCR0 = 0x00; //stop
0000 2224 clr R2
0002 23BE out 0x33,R2
0004 .dbline 14
0004 ; TCNT0 = 0x71; //set count
0004 81E7 ldi R24,113
0006 82BF out 0x32,R24
0008 .dbline 15
0008 ; OCR0 = 0x8F; //set compare
0008 8FE8 ldi R24,143
000A 8CBF out 0x3c,R24
000C .dbline 16
000C ; TCCR0 = 0x04; //start timer
000C 84E0 ldi R24,4
000E 83BF out 0x33,R24
0010 .dbline 17
0010 ; timeflag=1;
0010 81E0 ldi R24,1
0012 80930200 sts _timeflag,R24
0016 .dbline -2
0016 L1:
0016 .dbline 0 ; func end
0016 0895 ret
0018 .dbend
.area vector(rom, abs)
.org 36
0024 0C940C00 jmp _timer0_ovf_isr
.area text(rom, con, rel)
0018 .dbfile F:\IccAvr_Pro\time_master.c
0018 .dbfunc e timer0_ovf_isr _timer0_ovf_isr fV
.even
0018 _timer0_ovf_isr::
0018 8A93 st -y,R24
001A 8FB7 in R24,0x3f
001C 8A93 st -y,R24
001E .dbline -1
001E .dbline 22
001E ; }
001E ;
001E ; #pragma interrupt_handler timer0_ovf_isr:10
001E ; void timer0_ovf_isr(void)
001E ; {
001E .dbline 23
001E ; TCNT0 = 0x71; //reload counter value
001E 81E7 ldi R24,113
0020 82BF out 0x32,R24
0022 .dbline 24
0022 ; timeflag=1;
0022 81E0 ldi R24,1
0024 80930200 sts _timeflag,R24
0028 .dbline -2
0028 L2:
0028 8991 ld R24,y+
002A 8FBF out 0x3f,R24
002C 8991 ld R24,y+
002E .dbline 0 ; func end
002E 1895 reti
0030 .dbend
0030 .dbfunc e timer2_init _timer2_init fV
.even
0030 _timer2_init::
0030 .dbline -1
0030 .dbline 32
0030 ; }
0030 ;
0030 ; //TIMER2 initialize - prescale:256
0030 ; // WGM: Normal
0030 ; // desired value: 5mSec
0030 ; // actual value: 4.965mSec (0.7%)
0030 ; void timer2_init(void)
0030 ; {
0030 .dbline 33
0030 ; TCCR2 = 0x00; //stop
0030 2224 clr R2
0032 25BC out 0x25,R2
0034 .dbline 34
0034 ; ASSR = 0x00; //set async mode
0034 22BC out 0x22,R2
0036 .dbline 35
0036 ; TCNT2 = 0x00; //setup
0036 24BC out 0x24,R2
0038 .dbline 36
0038 ; OCR2 = 0xD7;
0038 87ED ldi R24,215
003A 83BD out 0x23,R24
003C .dbline 37
003C ; TCCR2 = 0x07; //start
003C 87E0 ldi R24,7
003E 85BD out 0x25,R24
0040 .dbline 38
0040 ; dispflag=0;
0040 20920100 sts _dispflag,R2
0044 .dbline 39
0044 ; disp_cnt=0;
0044 20920000 sts _disp_cnt,R2
0048 .dbline -2
0048 L3:
0048 .dbline 0 ; func end
0048 0895 ret
004A .dbend
.area vector(rom, abs)
.org 16
0010 0C942500 jmp _timer2_ovf_isr
.area text(rom, con, rel)
004A .dbfile F:\IccAvr_Pro\time_master.c
004A .dbfunc e timer2_ovf_isr _timer2_ovf_isr fV
.even
004A _timer2_ovf_isr::
004A 2A92 st -y,R2
004C 3A92 st -y,R3
004E 8A93 st -y,R24
0050 9A93 st -y,R25
0052 2FB6 in R2,0x3f
0054 2A92 st -y,R2
0056 .dbline -1
0056 .dbline 44
0056 .dbline 45
0056 2224 clr R2
0058 24BC out 0x24,R2
005A .dbline 46
005A 20900000 lds R2,_disp_cnt
005E 3324 clr R3
0060 822D mov R24,R2
0062 8F5F subi R24,255 ; addi 1
0064 80930000 sts _disp_cnt,R24
0068 84E6 ldi R24,100
006A 8215 cp R24,R2
006C 30F4 brsh L5
006E .dbline 47
006E .dbline 48
006E 2224 clr R2
0070 20920000 sts _disp_cnt,R2
0074 .dbline 49
0074 81E0 ldi R24,1
0076 80930100 sts _dispflag,R24
007A .dbline 50
007A L5:
007A .dbline -2
007A L4:
007A 2990 ld R2,y+
007C 2FBE out 0x3f,R2
007E 9991 ld R25,y+
0080 8991 ld R24,y+
0082 3990 ld R3,y+
0084 2990 ld R2,y+
0086 .dbline 0 ; func end
0086 1895 reti
0088 .dbend
.area bss(ram, con, rel)
0000 .dbfile F:\IccAvr_Pro\time_master.c
0000 _disp_cnt::
0000 .blkb 1
0001 .dbsym e disp_cnt _disp_cnt c
0001 _dispflag::
0001 .blkb 1
0002 .dbsym e dispflag _dispflag c
0002 _timeflag::
0002 .blkb 1
0003 .dbsym e timeflag _timeflag c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -