📄 common.lis
字号:
0090 2826 eor R2,R24
0092 22BA out 0x12,R2
0094 .dbline 47
0094 84E0 ldi R24,4
0096 2BB2 in R2,0x1b
0098 2826 eor R2,R24
009A 2BBA out 0x1b,R2
009C .dbline 48
009C 2224 clr R2
009E 20920000 sts _timerCounter,R2
00A2 .dbline 49
00A2 L25:
00A2 .dbline -2
00A2 L24:
00A2 2990 ld R2,y+
00A4 2FBE out 0x3f,R2
00A6 9991 ld R25,y+
00A8 8991 ld R24,y+
00AA 4990 ld R4,y+
00AC 3990 ld R3,y+
00AE 2990 ld R2,y+
00B0 .dbline 0 ; func end
00B0 1895 reti
00B2 .dbend
00B2 .dbfunc e initTimer2 _initTimer2 fV
.even
00B2 _initTimer2::
00B2 .dbline -1
00B2 .dbline 53
00B2 ; }
00B2 ; #pragma interrupt_handler SIG_OVERFLOW0:18
00B2 ;
00B2 ; void SIG_OVERFLOW0(void)//timer0
00B2 ; {
00B2 ; if(timerCounter++ > timepoint){
00B2 ; PORTD ^= BIT(STA);
00B2 ; PORTD ^= BIT(STC);
00B2 ; PORTA ^= BIT(SPEAKER);//alarm
00B2 ; timerCounter = 0;
00B2 ; }
00B2 ;
00B2 ; }
00B2 ; void initTimer2()
00B2 ; {
00B2 .dbline 54
00B2 ; TCCR2= 5; //prescale 1/1024
00B2 85E0 ldi R24,5
00B4 87BD out 0x27,R24
00B6 .dbline 56
00B6 ;
00B6 ; timerCounter2 = 20;
00B6 84E1 ldi R24,20
00B8 80930200 sts _timerCounter2,R24
00BC .dbline -2
00BC L27:
00BC .dbline 0 ; func end
00BC 0895 ret
00BE .dbend
.area vector(rom, abs)
.org 44
002C 0C945F00 jmp _timer2_ovf_isr
.area text(rom, con, rel)
00BE .dbfile F:\mydoc\avrproject\icc\big162\gpseep\common.c
00BE .dbfunc e timer2_ovf_isr _timer2_ovf_isr fV
.even
00BE _timer2_ovf_isr::
00BE 2A92 st -y,R2
00C0 3A92 st -y,R3
00C2 4A92 st -y,R4
00C4 8A93 st -y,R24
00C6 9A93 st -y,R25
00C8 2FB6 in R2,0x3f
00CA 2A92 st -y,R2
00CC .dbline -1
00CC .dbline 60
00CC .dbline 61
00CC 20900200 lds R2,_timerCounter2
00D0 3324 clr R3
00D2 822D mov R24,R2
00D4 8F5F subi R24,255 ; addi 1
00D6 80930200 sts _timerCounter2,R24
00DA 40900100 lds R4,_timepoint2
00DE 4214 cp R4,R2
00E0 38F4 brsh L29
00E2 .dbline 61
00E2 .dbline 63
00E2 89B7 in R24,0x39
00E4 8B7F andi R24,251
00E6 89BF out 0x39,R24
00E8 .dbline 64
00E8 2224 clr R2
00EA 20920200 sts _timerCounter2,R2
00EE .dbline 65
00EE DA9A sbi 0x1b,2
00F0 .dbline 66
00F0 L29:
00F0 .dbline -2
00F0 L28:
00F0 2990 ld R2,y+
00F2 2FBE out 0x3f,R2
00F4 9991 ld R25,y+
00F6 8991 ld R24,y+
00F8 4990 ld R4,y+
00FA 3990 ld R3,y+
00FC 2990 ld R2,y+
00FE .dbline 0 ; func end
00FE 1895 reti
0100 .dbend
0100 .dbfunc e timer1_init _timer1_init fV
.even
0100 _timer1_init::
0100 .dbline -1
0100 .dbline 70
0100 ; }
0100 ; #pragma interrupt_handler timer2_ovf_isr:12
0100 ; void timer2_ovf_isr(void)//timer2
0100 ; {
0100 ; if(timerCounter2++ > timepoint2){
0100 ;
0100 ; cbi( TIMSK, TOIE2 );
0100 ; timerCounter2 = 0;
0100 ; PORTA |= BIT(SPEAKER);
0100 ; }
0100 ; }
0100 ;
0100 ; void timer1_init(void)
0100 ; {
0100 .dbline 71
0100 ; TCCR1B= 0x00; //stop18s
0100 2224 clr R2
0102 2EBC out 0x2e,R2
0104 .dbline 72
0104 ; TCCR1A= 0x00;
0104 2FBC out 0x2f,R2
0106 .dbline 73
0106 ; TCCR1B= 0x05; //start Timer
0106 85E0 ldi R24,5
0108 8EBD out 0x2e,R24
010A .dbline 74
010A ; timepoint1=3;
010A 83E0 ldi R24,3
010C 80930000 sts _timepoint1,R24
0110 .dbline -2
0110 L31:
0110 .dbline 0 ; func end
0110 0895 ret
0112 .dbend
.area vector(rom, abs)
.org 60
003C 0C948900 jmp _timer1_ovf_isr
.area text(rom, con, rel)
0112 .dbfile F:\mydoc\avrproject\icc\big162\gpseep\common.c
0112 .dbfunc e timer1_ovf_isr _timer1_ovf_isr fV
.even
0112 _timer1_ovf_isr::
0112 0E940000 xcall push_lset
0116 .dbline -1
0116 .dbline 78
0116 .dbline 82
0116 20900100 lds R2,_timerCounter1
011A 3324 clr R3
011C 822D mov R24,R2
011E 8F5F subi R24,255 ; addi 1
0120 80930100 sts _timerCounter1,R24
0124 40900000 lds R4,_timepoint1
0128 4214 cp R4,R2
012A 08F4 brsh L33
012C .dbline 82
012C .dbline 83
012C 03D0 xcall _watchdog_init
012E .dbline 84
012E L33:
012E .dbline -2
012E L32:
012E 0E940000 xcall pop_lset
0132 .dbline 0 ; func end
0132 1895 reti
0134 .dbend
0134 .dbfunc e watchdog_init _watchdog_init fV
.even
0134 _watchdog_init::
0134 .dbline -1
0134 .dbline 91
0134 ; }
0134 ; #pragma interrupt_handler timer1_ovf_isr:16
0134 ; void timer1_ovf_isr(void)
0134 ; {
0134 ;
0134 ; //TCNT1H= 0x02; //reload counter high value
0134 ; //TCNT1L= 0xE1; //reload counter low value
0134 ; if(timerCounter1++ > timepoint1){
0134 ; watchdog_init();//reset
0134 ; }
0134 ; //PORTA ^= BIT(SPEAKER);
0134 ; }
0134 ;
0134 ;
0134 ;
0134 ; void watchdog_init()
0134 ; {
0134 .dbline 92
0134 ; WDR();
0134 A895 wdr
0136 .dbline 93
0136 ; WDTCR=0x18;
0136 88E1 ldi R24,24
0138 81BD out 0x21,R24
013A .dbline 94
013A ; WDTCR=0x08;//最快复位8,最慢f
013A 88E0 ldi R24,8
013C 81BD out 0x21,R24
013E .dbline -2
013E L35:
013E .dbline 0 ; func end
013E 0895 ret
0140 .dbend
.area bss(ram, con, rel)
0000 .dbfile F:\mydoc\avrproject\icc\big162\gpseep\common.c
0000 _timepoint1::
0000 .blkb 1
0001 .dbsym e timepoint1 _timepoint1 c
0001 _timepoint2::
0001 .blkb 1
0002 .dbsym e timepoint2 _timepoint2 c
0002 _timepoint::
0002 .blkb 1
0003 .dbsym e timepoint _timepoint c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -