📄 fp_lut.lis
字号:
.module fp_lut.c
.area data(ram, con, rel)
0000 _repeat::
0000 .blkb 1
.area idata
0000 00 .byte 0
.area data(ram, con, rel)
0001 .dbfile D:\avrmcu\AT980\fp_lut.c
0001 .dbsym s repeat _repeat c
.area lit(rom, con, rel)
0000 _repeat_key::
0000 0200 .word 2
0002 0000 .word 0
0004 .dbsym s repeat_key _repeat_key A[4:2]i
.area text(rom, con, rel)
0000 .dbfile D:\avrmcu\AT980\fp_lut.c
0000 .dbfunc s is_repeat_ui_key _is_repeat_ui_key fI
; i -> R20
; value -> R16,R17
.even
0000 _is_repeat_ui_key::
0000 0E940000 xcall push_gset1
0004 .dbline -1
0004 .dbline 15
; #include "nec_fp.h"
; #include "key.h"
; #include "main.h"
; extern unsigned char work_mode;
; extern unsigned char p_keycode[BYTES_USED_TO_SCANKEY];
; extern unsigned int key_buff,dvd_key;
; unsigned char repeat=0;
; #define REPEAT_DELAY 3
; #define REPEAT_KEY_CNT 2
; const unsigned int repeat_key[REPEAT_KEY_CNT]=
; {
; IRKC_VOLUME_UP,IRKC_VOLUME_DOWN
; };
; unsigned char is_repeat_ui_key(unsigned int value)
; {
0004 .dbline 17
; unsigned char i;
; for(i=0;i<REPEAT_KEY_CNT;i++)
0004 4427 clr R20
0006 12C0 xjmp L5
0008 L2:
0008 .dbline 18
; {
0008 .dbline 19
; if(value==repeat_key[i])
0008 80E0 ldi R24,<_repeat_key
000A 90E0 ldi R25,>_repeat_key
000C E42F mov R30,R20
000E FF27 clr R31
0010 EE0F lsl R30
0012 FF1F rol R31
0014 E80F add R30,R24
0016 F91F adc R31,R25
0018 0590 lpm R0,Z+
001A 1490 lpm R1,Z
001C F001 movw R30,R0
001E 0E17 cp R16,R30
0020 1F07 cpc R17,R31
0022 19F4 brne L6
0024 .dbline 20
; return 1;
0024 01E0 ldi R16,1
0026 10E0 ldi R17,0
0028 05C0 xjmp L1
002A L6:
002A .dbline 21
002A L3:
002A .dbline 17
002A 4395 inc R20
002C L5:
002C .dbline 17
002C 4230 cpi R20,2
002E 60F3 brlo L2
0030 .dbline 22
; }
; return 0;
0030 0027 clr R16
0032 1127 clr R17
0034 .dbline -2
0034 L1:
0034 0E940000 xcall pop_gset1
0038 .dbline 0 ; func end
0038 0895 ret
003A .dbsym r i 20 c
003A .dbsym r value 16 i
.area data(ram, con, rel)
0001 .dbfile D:\avrmcu\AT980\fp_lut.c
0001 L9:
0001 .blkb 2
.area idata
0001 0000 .word 0
.area data(ram, con, rel)
0003 .dbfile D:\avrmcu\AT980\fp_lut.c
0003 L10:
0003 .blkb 1
.area idata
0003 00 .byte 0
.area data(ram, con, rel)
0004 .dbfile D:\avrmcu\AT980\fp_lut.c
0004 L11:
0004 .blkb 1
.area idata
0004 00 .byte 0
.area data(ram, con, rel)
0005 .dbfile D:\avrmcu\AT980\fp_lut.c
.area text(rom, con, rel)
003A .dbfile D:\avrmcu\AT980\fp_lut.c
003A .dbfunc s fp_key_scan2 _fp_key_scan2 fI
003A .dbsym s longkeyflag L11 c
003A .dbsym s key_time L10 c
003A .dbsym s LastFPKey L9 i
; Fp_KeyCode -> R20,R21
; i -> R22,R23
.even
003A _fp_key_scan2::
003A 0E940000 xcall push_gset2
003E .dbline -1
003E .dbline 26
; }
;
; void fp_key_scan2(void)
; {
003E .dbline 29
; unsigned int i;
; static unsigned int LastFPKey= 0;
; unsigned int Fp_KeyCode = 0;
003E 4427 clr R20
0040 5527 clr R21
0042 .dbline 33
; static unsigned char key_time=0,longkeyflag=0;
;
;
; VFD_LL_ReadKeyScan();
0042 0E940000 xcall _VFD_LL_ReadKeyScan
0046 .dbline 34
; Fp_KeyCode = 0;
0046 .dbline 35
; for (i=0; i<BYTES_USED_TO_SCANKEY; i++)
0046 6627 clr R22
0048 7727 clr R23
004A 15C0 xjmp L15
004C L12:
004C .dbline 36
; if (p_keycode[i])
004C 80E0 ldi R24,<_p_keycode
004E 90E0 ldi R25,>_p_keycode
0050 FB01 movw R30,R22
0052 E80F add R30,R24
0054 F91F adc R31,R25
0056 2080 ldd R2,z+0
0058 2220 tst R2
005A 59F0 breq L16
005C .dbline 37
; Fp_KeyCode = ((unsigned int)p_keycode[i] |(i+1)<<8);
005C FB01 movw R30,R22
005E E80F add R30,R24
0060 F91F adc R31,R25
0062 4081 ldd R20,z+0
0064 5527 clr R21
0066 CB01 movw R24,R22
0068 0196 adiw R24,1
006A 982F mov R25,R24
006C 8827 clr R24
006E 482B or R20,R24
0070 592B or R21,R25
0072 L16:
0072 L13:
0072 .dbline 35
0072 6F5F subi R22,255 ; offset = 1
0074 7F4F sbci R23,255
0076 L15:
0076 .dbline 35
0076 6430 cpi R22,4
0078 E0E0 ldi R30,0
007A 7E07 cpc R23,R30
007C 38F3 brlo L12
007E .dbline 39
;
; if(Fp_KeyCode==272) Fp_KeyCode = 0;
007E 4031 cpi R20,16
0080 E1E0 ldi R30,1
0082 5E07 cpc R21,R30
0084 11F4 brne L18
0086 .dbline 39
0086 4427 clr R20
0088 5527 clr R21
008A L18:
008A .dbline 40
; if(Fp_KeyCode ==0)
008A 4030 cpi R20,0
008C 4507 cpc R20,R21
008E 61F5 brne L20
0090 .dbline 41
; {
0090 .dbline 42
; repeat = 0;
0090 2224 clr R2
0092 20920000 sts _repeat,R2
0096 .dbline 45
; //Fp_KeyCode =LastFPKey;//temp_FpKey;
; //LastFPKey = 0;
; if(work_mode<2)
0096 80910000 lds R24,_work_mode
009A 8230 cpi R24,2
009C F0F4 brsh L22
009E .dbline 46
; {
009E .dbline 47
; if((LastFPKey == FPKC_NEXT)||(LastFPKey == FPKC_PREV))
009E 90910200 lds R25,L9+1
00A2 80910100 lds R24,L9
00A6 8032 cpi R24,32
00A8 E1E0 ldi R30,1
00AA 9E07 cpc R25,R30
00AC 21F0 breq L26
00AE 8033 cpi R24,48
00B0 E1E0 ldi R30,1
00B2 9E07 cpc R25,R30
00B4 91F4 brne L24
00B6 L26:
00B6 .dbline 48
; {
00B6 .dbline 49
; if(longkeyflag)
00B6 20900400 lds R2,L11
00BA 2220 tst R2
00BC 51F0 breq L27
00BE .dbline 50
; {
00BE .dbline 51
; longkeyflag = 0;
00BE 2224 clr R2
00C0 20920400 sts L11,R2
00C4 .dbline 52
; if(work_mode==DVD_MODE)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -