📄 qep.lis
字号:
.module qep.c
.area data(ram, con, rel)
0000 _qep_cnt::
0000 .blkb 2
.area idata
0000 0000 .word 0
.area data(ram, con, rel)
0002 .blkb 2
.area idata
0002 0000 .word 0
.area data(ram, con, rel)
0004 .dbfile F:\IccAvr_Pro\qep.c
0004 .dbsym e qep_cnt _qep_cnt A[4:2]I
.area vector(rom, abs)
.org 4
0004 0C940000 jmp _int0_isr
.area data(ram, con, rel)
0004 .dbfile F:\IccAvr_Pro\qep.c
.area text(rom, con, rel)
0000 .dbfile F:\IccAvr_Pro\qep.c
0000 .dbfunc e int0_isr _int0_isr fV
.even
0000 _int0_isr::
0000 8A93 st -y,R24
0002 9A93 st -y,R25
0004 8FB7 in R24,0x3f
0006 8A93 st -y,R24
0008 .dbline -1
0008 .dbline 5
0008 ; #include "qep.h"
0008 ; int qep_cnt[QEP_size]={0x0000,0x0000};
0008 ; #pragma interrupt_handler int0_isr:2
0008 ; void int0_isr(void)
0008 ; {
0008 .dbline 7
0008 ; //external interupt on INT0
0008 ; if(PINC&BIT(QEP_B1))
0008 9F9B sbis 0x13,7
000A 0AC0 rjmp L2
000C .dbline 8
000C ; qep_cnt[0]++;
000C 80910000 lds R24,_qep_cnt
0010 90910100 lds R25,_qep_cnt+1
0014 0196 adiw R24,1
0016 90930100 sts _qep_cnt+1,R25
001A 80930000 sts _qep_cnt,R24
001E 09C0 xjmp L3
0020 L2:
0020 .dbline 10
0020 80910000 lds R24,_qep_cnt
0024 90910100 lds R25,_qep_cnt+1
0028 0197 sbiw R24,1
002A 90930100 sts _qep_cnt+1,R25
002E 80930000 sts _qep_cnt,R24
0032 L3:
0032 .dbline -2
0032 .dbline 11
0032 ; else
0032 ; qep_cnt[0]--;
0032 ; }
0032 L1:
0032 8991 ld R24,y+
0034 8FBF out 0x3f,R24
0036 9991 ld R25,y+
0038 8991 ld R24,y+
003A .dbline 0 ; func end
003A 1895 reti
003C .dbend
.area vector(rom, abs)
.org 8
0008 0C941E00 jmp _int1_isr
.area text(rom, con, rel)
003C .dbfile F:\IccAvr_Pro\qep.c
003C .dbfunc e int1_isr _int1_isr fV
.even
003C _int1_isr::
003C 8A93 st -y,R24
003E 9A93 st -y,R25
0040 8FB7 in R24,0x3f
0042 8A93 st -y,R24
0044 .dbline -1
0044 .dbline 14
0044 ; #pragma interrupt_handler int1_isr:3
0044 ; void int1_isr(void)
0044 ; {
0044 .dbline 16
0044 ; //external interupt on INT1
0044 ; if(PINC&BIT(QEP_B2))
0044 9E9B sbis 0x13,6
0046 0AC0 rjmp L5
0048 .dbline 17
0048 ; qep_cnt[1]--;
0048 80910200 lds R24,_qep_cnt+2
004C 90910300 lds R25,_qep_cnt+2+1
0050 0197 sbiw R24,1
0052 90930300 sts _qep_cnt+2+1,R25
0056 80930200 sts _qep_cnt+2,R24
005A 09C0 xjmp L6
005C L5:
005C .dbline 19
005C 80910200 lds R24,_qep_cnt+2
0060 90910300 lds R25,_qep_cnt+2+1
0064 0196 adiw R24,1
0066 90930300 sts _qep_cnt+2+1,R25
006A 80930200 sts _qep_cnt+2,R24
006E L6:
006E .dbline -2
006E .dbline 20
006E ; else
006E ; qep_cnt[1]++;
006E ; }
006E L4:
006E 8991 ld R24,y+
0070 8FBF out 0x3f,R24
0072 9991 ld R25,y+
0074 8991 ld R24,y+
0076 .dbline 0 ; func end
0076 1895 reti
0078 .dbend
0078 .dbfunc e qep_set _qep_set fV
.even
0078 _qep_set::
0078 .dbline -1
0078 .dbline 22
0078 ; void qep_set(void)
0078 ; {
0078 .dbline 23
0078 ; qep_cnt[0]=0;
0078 2224 clr R2
007A 3324 clr R3
007C 30920100 sts _qep_cnt+1,R3
0080 20920000 sts _qep_cnt,R2
0084 .dbline 24
0084 ; qep_cnt[1]=0;
0084 30920300 sts _qep_cnt+2+1,R3
0088 20920200 sts _qep_cnt+2,R2
008C .dbline -2
008C .dbline 25
008C ; }
008C L9:
008C .dbline 0 ; func end
008C 0895 ret
008E .dbend
008E .dbfunc e qep_init _qep_init fV
.even
008E _qep_init::
008E .dbline -1
008E .dbline 27
008E ; void qep_init(void)
008E ; {
008E .dbline 28
008E ; DDRC&=~BIT(QEP_B1);
008E A798 cbi 0x14,7
0090 .dbline 29
0090 ; DDRC&=~BIT(QEP_B2);
0090 A698 cbi 0x14,6
0092 .dbline -2
0092 .dbline 31
0092 ;
0092 ; }
0092 L11:
0092 .dbline 0 ; func end
0092 0895 ret
0094 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -