📄 timer.lis
字号:
.module timer.c
.area data(ram, con, rel)
0000 _i::
0000 .blkb 2
.area idata
0000 0000 .word 0
.area data(ram, con, rel)
0002 .dbfile E:\公司用\atmega8l\final\nrf905_send1\timer.c
0002 .dbsym e i _i i
0002 _count::
0002 .blkb 2
.area idata
0002 0000 .word 0
.area data(ram, con, rel)
0004 .dbfile E:\公司用\atmega8l\final\nrf905_send1\timer.c
0004 .dbsym e count _count i
0004 _flag::
0004 .blkb 2
.area idata
0004 0000 .word 0
.area data(ram, con, rel)
0006 .dbfile E:\公司用\atmega8l\final\nrf905_send1\timer.c
0006 .dbsym e flag _flag i
.area text(rom, con, rel)
0000 .dbfile E:\公司用\atmega8l\final\nrf905_send1\timer.c
0000 .dbfunc e timer0_init _timer0_init fV
.even
0000 _timer0_init::
0000 .dbline -1
0000 .dbline 14
0000 ; //ICC-AVR application builder : 2008-7-29 14:35:46
0000 ; // Target : M8
0000 ; // Crystal: 4.0000Mhz
0000 ; #include "confg.h"
0000 ;
0000 ; unsigned int i=0,count=0,flag=0;
0000 ; int number;
0000 ;
0000 ; //TIMER0 initialisation - prescale:1024
0000 ; // WGM: Normal
0000 ; // desired value: 10mSec
0000 ; // actual value: 9.984mSec (0.2%)
0000 ; void timer0_init(void)
0000 ; {
0000 .dbline 16
0000 ;
0000 ; TCCR0 = 0x00; //stop
0000 2224 clr R2
0002 23BE out 0x33,R2
0004 .dbline 17
0004 ; TCNT0 = 0x64; //set count
0004 84E6 ldi R24,100
0006 82BF out 0x32,R24
0008 .dbline 18
0008 ; TCCR0 = 0x04; //start timer
0008 84E0 ldi R24,4
000A 83BF out 0x33,R24
000C .dbline -2
000C .dbline 19
000C ; }
000C L1:
000C .dbline 0 ; func end
000C 0895 ret
000E .dbend
.area vector(rom, abs)
.org 18
0012 07C0 rjmp _time0
.area text(rom, con, rel)
000E .dbfile E:\公司用\atmega8l\final\nrf905_send1\timer.c
000E .dbfunc e time0 _time0 fV
.even
000E _time0::
000E 2A92 st -y,R2
0010 3A92 st -y,R3
0012 8A93 st -y,R24
0014 9A93 st -y,R25
0016 2FB6 in R2,0x3f
0018 2A92 st -y,R2
001A .dbline -1
001A .dbline 24
001A .dbline 25
001A 84E6 ldi R24,100
001C 82BF out 0x32,R24
001E .dbline 26
001E 80910200 lds R24,_count
0022 90910300 lds R25,_count+1
0026 0196 adiw R24,1
0028 90930300 sts _count+1,R25
002C 80930200 sts _count,R24
0030 .dbline 27
0030 20900000 lds R2,_number
0034 30900100 lds R3,_number+1
0038 8215 cp R24,R2
003A 9305 cpc R25,R3
003C 41F4 brne L3
003E .dbline 28
003E .dbline 29
003E 2224 clr R2
0040 29BE out 0x39,R2
0042 .dbline 30
0042 81E0 ldi R24,1
0044 90E0 ldi R25,0
0046 90930500 sts _flag+1,R25
004A 80930400 sts _flag,R24
004E .dbline 31
004E L3:
004E .dbline -2
004E .dbline 32
004E ;
004E ;
004E ; #pragma interrupt_handler time0:10
004E ; void time0(void)
004E ; {
004E ; TCNT0 = 0x64; //set count
004E ; count++;
004E ; if(count==number)
004E ; {
004E ; TIMSK=0x00;
004E ; flag=1;
004E ; }
004E ; }
004E L2:
004E 2990 ld R2,y+
0050 2FBE out 0x3f,R2
0052 9991 ld R25,y+
0054 8991 ld R24,y+
0056 3990 ld R3,y+
0058 2990 ld R2,y+
005A .dbline 0 ; func end
005A 1895 reti
005C .dbend
005C .dbfunc e init_devices1 _init_devices1 fV
.even
005C _init_devices1::
005C .dbline -1
005C .dbline 35
005C ; //call this routine to initialise all peripherals
005C ; void init_devices1(void)
005C ; {
005C .dbline 38
005C ;
005C ; //stop errant interrupts until set up
005C ; CLI(); //disable all interrupts
005C F894 cli
005E .dbline 39
005E ; timer0_init();
005E D0DF rcall _timer0_init
0060 .dbline 40
0060 ; count=0;
0060 2224 clr R2
0062 3324 clr R3
0064 30920300 sts _count+1,R3
0068 20920200 sts _count,R2
006C .dbline 41
006C ; flag=0;
006C 30920500 sts _flag+1,R3
0070 20920400 sts _flag,R2
0074 .dbline 43
0074 ;
0074 ; TIMSK = 0x01; //timer interrupt sources
0074 81E0 ldi R24,1
0076 89BF out 0x39,R24
0078 .dbline 44
0078 ; SEI(); //re-enable interrupts
0078 7894 sei
007A .dbline -2
007A .dbline 46
007A ; //all peripherals are now initialised
007A ; }
007A L5:
007A .dbline 0 ; func end
007A 0895 ret
007C .dbend
007C .dbfunc e delay_10ms _delay_10ms fI
007C ; no -> R16,R17
.even
007C _delay_10ms::
007C .dbline -1
007C .dbline 63
007C ;
007C ; /*
007C ; int delay_10ms(int no)
007C ; {
007C ; number=no;
007C ; init_devices1();
007C ; while(1)
007C ; {
007C ; if(flag==1)
007C ; break;
007C ; }
007C ; return 0;
007C ; }
007C ; */
007C ;
007C ; int delay_10ms(int no)
007C ; {
007C .dbline 64
007C ; for(;no>0;no--)
007C 1AC0 rjmp L10
007E L7:
007E .dbline 65
007E 2224 clr R2
0080 3324 clr R3
0082 30920100 sts _i+1,R3
0086 20920000 sts _i,R2
008A 09C0 rjmp L14
008C L11:
008C .dbline 65
008C L12:
008C .dbline 65
008C 80910000 lds R24,_i
0090 90910100 lds R25,_i+1
0094 0196 adiw R24,1
0096 90930100 sts _i+1,R25
009A 80930000 sts _i,R24
009E L14:
009E .dbline 65
009E 80910000 lds R24,_i
00A2 90910100 lds R25,_i+1
00A6 8C3B cpi R24,188
00A8 E2E0 ldi R30,2
00AA 9E07 cpc R25,R30
00AC 78F3 brlo L11
00AE L8:
00AE .dbline 64
00AE 0150 subi R16,1
00B0 1040 sbci R17,0
00B2 L10:
00B2 .dbline 64
00B2 2224 clr R2
00B4 3324 clr R3
00B6 2016 cp R2,R16
00B8 3106 cpc R3,R17
00BA 0CF3 brlt L7
00BC .dbline 67
00BC ; for (i=0;i<700;i++) ;
00BC ;
00BC ; return 0;
00BC 0027 clr R16
00BE 1127 clr R17
00C0 .dbline -2
00C0 L6:
00C0 .dbline 0 ; func end
00C0 0895 ret
00C2 .dbsym r no 16 I
00C2 .dbend
00C2 .dbfunc e delay_us _delay_us fV
00C2 ; m -> R20,R21
00C2 ; us -> R16,R17
.even
00C2 _delay_us::
00C2 00D0 rcall push_gset1
00C4 .dbline -1
00C4 .dbline 71
00C4 ; }
00C4 ;
00C4 ; void delay_us(uint us)
00C4 ; {
00C4 .dbline 73
00C4 ; uint m;
00C4 ; for (m=0;m<us;m++)
00C4 4427 clr R20
00C6 5527 clr R21
00C8 08C0 rjmp L19
00CA L16:
00CA .dbline 74
00CA .dbline 74
00CA 0000 nop
00CC .dbline 74
00CC 0000 nop
00CE .dbline 74
00CE 0000 nop
00D0 .dbline 74
00D0 0000 nop
00D2 .dbline 74
00D2 0000 nop
00D4 .dbline 74
00D4 0000 nop
00D6 .dbline 75
00D6 L17:
00D6 .dbline 73
00D6 4F5F subi R20,255 ; offset = 1
00D8 5F4F sbci R21,255
00DA L19:
00DA .dbline 73
00DA 4017 cp R20,R16
00DC 5107 cpc R21,R17
00DE A8F3 brlo L16
00E0 .dbline -2
00E0 .dbline 76
00E0 ; {NOP();NOP();NOP();NOP();NOP();NOP();
00E0 ; }
00E0 ; }
00E0 L15:
00E0 00D0 rcall pop_gset1
00E2 .dbline 0 ; func end
00E2 0895 ret
00E4 .dbsym r m 20 i
00E4 .dbsym r us 16 i
00E4 .dbend
.area bss(ram, con, rel)
0000 .dbfile E:\公司用\atmega8l\final\nrf905_send1\timer.c
0000 _number::
0000 .blkb 2
0002 .dbsym e number _number I
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -