📄 fp_vol.s
字号:
.module fp_vol.c
.area data(ram, con, rel)
_fp_vol_0_cnt:
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\avrmcu\AT980\fpvol\fp_vol.c
.dbsym s fp_vol_0_cnt _fp_vol_0_cnt c
_fp_vol_1_cnt:
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile D:\avrmcu\AT980\fpvol\fp_vol.c
.dbsym s fp_vol_1_cnt _fp_vol_1_cnt c
.area vector(rom, abs)
.org 4
jmp _int0_isr
.area data(ram, con, rel)
.dbfile D:\avrmcu\AT980\fpvol\fp_vol.c
.area text(rom, con, rel)
.dbfile D:\avrmcu\AT980\fpvol\fp_vol.c
.dbfunc s int0_isr _int0_isr fI
.even
_int0_isr::
st -y,R24
st -y,R25
in R24,0x3f
st -y,R24
.dbline -1
.dbline 11
; #include <iom163.h>
; #include "..\uicc_def.h"
; #include "..\key.h"
; #include "..\io.h"
; extern unsigned int dvd_key;
; static unsigned char fp_vol_0_cnt = 0;
; static unsigned char fp_vol_1_cnt = 0;
; extern unsigned char uicc_code;
; #pragma interrupt_handler int0_isr:2
; void int0_isr(void) // fp_vol_key_input
; {
.dbline 12
; if(get_vol_input())
sbis 0x13,4
rjmp L2
.dbline 13
; {
.dbline 14
; fp_vol_0_cnt++;
lds R24,_fp_vol_0_cnt
subi R24,255 ; addi 1
sts _fp_vol_0_cnt,R24
.dbline 15
; }
xjmp L3
L2:
.dbline 17
.dbline 18
lds R24,_fp_vol_1_cnt
subi R24,255 ; addi 1
sts _fp_vol_1_cnt,R24
.dbline 19
L3:
.dbline -2
.dbline 20
; else
; {
; fp_vol_1_cnt++;
; }
; }
L1:
ld R24,y+
out 0x3f,R24
ld R25,y+
ld R24,y+
.dbline 0 ; func end
reti
.dbfunc s clear_vol_cnt _clear_vol_cnt fI
.even
_clear_vol_cnt::
.dbline -1
.dbline 22
; void clear_vol_cnt(void)
; {
.dbline 23
; fp_vol_0_cnt = 0;
clr R2
sts _fp_vol_0_cnt,R2
.dbline 24
; fp_vol_1_cnt = 0;
sts _fp_vol_1_cnt,R2
.dbline -2
.dbline 25
; }
L4:
.dbline 0 ; func end
ret
.dbfunc s fp_vol_scan _fp_vol_scan fI
.even
_fp_vol_scan::
.dbline -1
.dbline 28
;
; void fp_vol_scan(void)
; {
.dbline 49
; /*if(g_ui_key_cnt)
; g_ui_key_cnt--;
; if (fp_next_cnt >fp_prev_cnt)
; {
; if((fp_next_cnt-fp_prev_cnt)>2)
; {
; ui_input_handler(UICC_SKIPF);
; fp_next_cnt = 0;
; fp_prev_cnt = 0;
; g_ui_key_cnt = 5;
; };
; }
; else if((fp_prev_cnt-fp_next_cnt)>1)
; {
; ui_input_handler(UICC_SKIPB);
; fp_next_cnt = 0;
; fp_prev_cnt = 0;
; g_ui_key_cnt = 5;
; };
; */
; if (fp_vol_0_cnt >fp_vol_1_cnt)
lds R2,_fp_vol_1_cnt
lds R3,_fp_vol_0_cnt
cp R2,R3
brsh L6
.dbline 50
; {
.dbline 51
; if((fp_vol_0_cnt-fp_vol_1_cnt)>1)
sub R3,R2
ldi R24,1
cp R24,R3
brsh L7
.dbline 52
; {
.dbline 53
; uicc_code = UICC_VOLUME_DOWN;
ldi R24,158
sts _uicc_code,R24
.dbline 54
; ui_input_handler();
xcall _ui_input_handler
.dbline 56
; //dvd_key = IRKC_VOLUME_DOWN;
; fp_vol_0_cnt = 0;
clr R2
sts _fp_vol_0_cnt,R2
.dbline 57
; fp_vol_1_cnt = 0;
sts _fp_vol_1_cnt,R2
.dbline 58
; };
.dbline 58
.dbline 59
; }
xjmp L7
L6:
.dbline 60
; else if((fp_vol_1_cnt-fp_vol_0_cnt)>2)
lds R2,_fp_vol_0_cnt
lds R3,_fp_vol_1_cnt
sub R3,R2
ldi R24,2
cp R24,R3
brsh L10
.dbline 61
; {
.dbline 62
; uicc_code = UICC_VOLUME_UP;
ldi R24,157
sts _uicc_code,R24
.dbline 63
; ui_input_handler();
xcall _ui_input_handler
.dbline 65
; //dvd_key = IRKC_VOLUME_UP;
; fp_vol_0_cnt = 0;
clr R2
sts _fp_vol_0_cnt,R2
.dbline 66
; fp_vol_1_cnt = 0;
sts _fp_vol_1_cnt,R2
.dbline 67
; }
L10:
L7:
.dbline -2
.dbline 68
; }
L5:
.dbline 0 ; func end
ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -