📄 timer.lis
字号:
.module timer.c
.area text(rom, con, rel)
0000 .dbfile F:\芯生光盘资料\范例代码\TIMER\prj\timer\timer.c
0000 .dbfunc e timer0_init _timer0_init fV
.even
0000 _timer0_init::
0000 .dbline -1
0000 .dbline 16
0000 ;
0000 ; #include <macros.h>
0000 ; #include "stdtypes.h"
0000 ; #include "timer.h"
0000 ;
0000 ;
0000 ;
0000 ; UNS8 time_couter;
0000 ;
0000 ;
0000 ; //TIMER0 initialize - prescale:64
0000 ; // WGM: Normal
0000 ; // desired value: 1mSec
0000 ; // actual value: 0.998mSec (0.2%)
0000 ; void timer0_init(void)
0000 ; {
0000 .dbline 17
0000 ; TCCR0 = 0x00; //stop
0000 2224 clr R2
0002 23BE out 0x33,R2
0004 .dbline 18
0004 ; ASSR = 0x00; //set async mode
0004 20BE out 0x30,R2
0006 .dbline 19
0006 ; TCNT0 = SET_COUNT; //set count
0006 8DE8 ldi R24,141
0008 82BF out 0x32,R24
000A .dbline 20
000A ; TCCR0 = 0x07; //start timer
000A 87E0 ldi R24,7
000C 83BF out 0x33,R24
000E .dbline 21
000E ; TIMSK = TIMSK | (1 << TOIE0);
000E 87B7 in R24,0x37
0010 8160 ori R24,1
0012 87BF out 0x37,R24
0014 .dbline 23
0014 ;
0014 ; time_couter=0;
0014 20920000 sts _time_couter,R2
0018 .dbline -2
0018 L1:
0018 .dbline 0 ; func end
0018 0895 ret
001A .dbend
.area vector(rom, abs)
.org 64
0040 0C940D00 jmp _timer0_ovf_isr
.area text(rom, con, rel)
001A .dbfile F:\芯生光盘资料\范例代码\TIMER\prj\timer\timer.c
001A .dbfunc e timer0_ovf_isr _timer0_ovf_isr fV
.even
001A _timer0_ovf_isr::
001A 2A92 st -y,R2
001C 8A93 st -y,R24
001E 9A93 st -y,R25
0020 2FB6 in R2,0x3f
0022 2A92 st -y,R2
0024 .dbline -1
0024 .dbline 28
0024 ; }
0024 ;
0024 ; #pragma interrupt_handler timer0_ovf_isr:17
0024 ; void timer0_ovf_isr(void)
0024 ; {
0024 .dbline 31
0024 ; //CLI(); //disable all interrupts
0024 ;
0024 ; TCNT0 = SET_COUNT;
0024 8DE8 ldi R24,141
0026 82BF out 0x32,R24
0028 .dbline 35
0028 ; /*read the key value*/
0028 ;
0028 ;
0028 ; if(time_couter>10)
0028 8AE0 ldi R24,10
002A 20900000 lds R2,_time_couter
002E 8215 cp R24,R2
0030 20F4 brsh L3
0032 .dbline 36
0032 ; {
0032 .dbline 37
0032 ; time_couter=0;
0032 2224 clr R2
0034 20920000 sts _time_couter,R2
0038 .dbline 38
0038 ; }
0038 05C0 xjmp L4
003A L3:
003A .dbline 40
003A .dbline 41
003A 80910000 lds R24,_time_couter
003E 8F5F subi R24,255 ; addi 1
0040 80930000 sts _time_couter,R24
0044 .dbline 42
0044 L4:
0044 .dbline -2
0044 L2:
0044 2990 ld R2,y+
0046 2FBE out 0x3f,R2
0048 9991 ld R25,y+
004A 8991 ld R24,y+
004C 2990 ld R2,y+
004E .dbline 0 ; func end
004E 1895 reti
0050 .dbend
.area bss(ram, con, rel)
0000 .dbfile F:\芯生光盘资料\范例代码\TIMER\prj\timer\timer.c
0000 _time_couter::
0000 .blkb 1
0001 .dbsym e time_couter _time_couter c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -