📄 nec_ir.lis
字号:
009E 8064 ori R24,64
00A0 8EBD out 0x2e,R24
00A2 .dbline 77
; state = LEADER_ON;
00A2 81E0 ldi R24,1
00A4 80930100 sts L9,R24
00A8 .dbline 78
; break;
00A8 05C1 xjmp L15
00AA L18:
00AA .dbline 82
; case LEADER_ON:
; /* TP0713, timer optimization */
;
; ir_falling();//ir_interrupt_set_edge(FALLING_EDGE);
00AA 8EB5 in R24,0x2e
00AC 8F7B andi R24,191
00AE 8EBD out 0x2e,R24
00B0 .dbline 83
; state = ((t0>time_9000_usl) &&( t0<time_9000_ush)) ? LEADER_OFF:IDLE;
00B0 8CE6 ldi R24,108
00B2 8417 cp R24,R20
00B4 28F4 brsh L19
00B6 4438 cpi R20,132
00B8 18F4 brsh L19
00BA 62E0 ldi R22,2
00BC 70E0 ldi R23,0
00BE 02C0 xjmp L20
00C0 L19:
00C0 6627 clr R22
00C2 7727 clr R23
00C4 L20:
00C4 60930100 sts L9,R22
00C8 .dbline 84
; break;
00C8 F5C0 xjmp L15
00CA L21:
00CA .dbline 86
; case LEADER_OFF:
; if (t0 > time_4500_usl && t0 < time_4500_ush) {
00CA 84E3 ldi R24,52
00CC 8417 cp R24,R20
00CE 80F4 brsh L22
00D0 4434 cpi R20,68
00D2 70F4 brsh L22
00D4 .dbline 86
00D4 .dbline 87
; state = CUSTOM;
00D4 83E0 ldi R24,3
00D6 80930100 sts L9,R24
00DA .dbline 88
; custom = 0;
00DA 2224 clr R2
00DC 3324 clr R3
00DE 30920400 sts L8+1,R3
00E2 20920300 sts L8,R2
00E6 .dbline 89
; count = 0;
00E6 20920500 sts L10,R2
00EA .dbline 90
; repeat_delay = REPEAT_DELAY;
00EA 80930000 sts L7,R24
00EE .dbline 91
; }
00EE E2C0 xjmp L15
00F0 L22:
00F0 .dbline 93
; else
; {
00F0 .dbline 94
; if (t0 > time_2250_usl && t0 < time_2250_ush)
00F0 8AE1 ldi R24,26
00F2 8417 cp R24,R20
00F4 18F5 brsh L24
00F6 4232 cpi R20,34
00F8 08F5 brsh L24
00FA .dbline 95
; {
00FA .dbline 96
; if (repeat_delay)
00FA 20900000 lds R2,L7
00FE 2220 tst R2
0100 29F0 breq L26
0102 .dbline 97
; {
0102 .dbline 99
; // Delay before sendnig the first repeat
; repeat_delay--;
0102 822D mov R24,R2
0104 8150 subi R24,1
0106 80930000 sts L7,R24
010A .dbline 100
; }
010A 18C0 xjmp L27
010C L26:
010C .dbline 102
; else
; { // repeat last key
010C .dbline 103
; if (valid_repeat)
010C 20900200 lds R2,L13
0110 2220 tst R2
0112 A1F0 breq L28
0114 .dbline 104
; {
0114 .dbline 105
; if(is_repeat_ui_key(key))
0114 00910200 lds R16,L6
0118 1127 clr R17
011A 0E940000 xcall _is_repeat_ui_key
011E 1801 movw R2,R16
0120 2220 tst R2
0122 11F4 brne X3
0124 3320 tst R3
0126 51F0 breq L30
0128 X3:
0128 .dbline 106
; {
0128 .dbline 108
; //dvd_key = key;//|0X8000
; key_buff = key;
0128 20900200 lds R2,L6
012C 3324 clr R3
012E 30920100 sts _key_buff+1,R3
0132 20920000 sts _key_buff,R2
0136 .dbline 109
; repeat_delay = REPEAT_DELAY;
0136 83E0 ldi R24,3
0138 80930000 sts L7,R24
013C .dbline 110
; }
013C L30:
013C .dbline 111
; }
013C L28:
013C .dbline 112
; }
013C L27:
013C .dbline 113
; }
013C L24:
013C .dbline 117
; //else
; // valid_repeat = 0;
; //set_falling();//ir_interrupt_set_edge(FALLING_EDGE);
; state = IDLE;
013C 2224 clr R2
013E 20920100 sts L9,R2
0142 .dbline 118
; }
0142 .dbline 119
; break;
0142 B8C0 xjmp L15
0144 L32:
0144 .dbline 122
; case CUSTOM:
; /* TP0713, timer optimization */
; if (t0 > time_1125_usl && t0 < time_1125_ush) {
0144 8DE0 ldi R24,13
0146 8417 cp R24,R20
0148 68F4 brsh L33
014A 4131 cpi R20,17
014C 58F4 brsh L33
014E .dbline 122
014E .dbline 123
; custom <<= 1; /* a zero bit */
014E 30900400 lds R3,L8+1
0152 20900300 lds R2,L8
0156 220C lsl R2
0158 331C rol R3
015A 30920400 sts L8+1,R3
015E 20920300 sts L8,R2
0162 .dbline 124
; }
0162 17C0 xjmp L34
0164 L33:
0164 .dbline 126
; else
; {
0164 .dbline 127
; if (t0 > time_2250_usl && t0 < time_2250_ush) {
0164 8AE1 ldi R24,26
0166 8417 cp R24,R20
0168 70F4 brsh L35
016A 4232 cpi R20,34
016C 60F4 brsh L35
016E .dbline 127
016E .dbline 128
; custom = (custom << 1) | 1; /* a one bit */
016E 90910400 lds R25,L8+1
0172 80910300 lds R24,L8
0176 880F lsl R24
0178 991F rol R25
017A 8160 ori R24,1
017C 90930400 sts L8+1,R25
0180 80930300 sts L8,R24
0184 .dbline 129
; }
0184 06C0 xjmp L36
0186 L35:
0186 .dbline 130
; else {
0186 .dbline 133
; // Garbage ... ignored
; //ir_interrupt_set_edge(FALLING_EDGE);
; state = IDLE;
0186 2224 clr R2
0188 20920100 sts L9,R2
018C .dbline 134
; valid_repeat = 0;
018C 20920200 sts L13,R2
0190 .dbline 135
; break;
0190 91C0 xjmp L15
0192 L36:
0192 .dbline 137
; }
; }
0192 L34:
0192 .dbline 140
;
; /* count 16 'custom' bits */
; if (++count == 16) {
0192 80910500 lds R24,L10
0196 8F5F subi R24,255 ; addi 1
0198 282E mov R2,R24
019A 20920500 sts L10,R2
019E 8031 cpi R24,16
01A0 09F0 breq X4
01A2 88C0 xjmp L15
01A4 X4:
01A4 .dbline 140
01A4 .dbline 141
; if (custom != G_IR_SYSTEM_CODE)
01A4 90910400 lds R25,L8+1
01A8 80910300 lds R24,L8
01AC 8F3F cpi R24,255
01AE E0E0 ldi R30,0
01B0 9E07 cpc R25,R30
01B2 31F0 breq L39
01B4 .dbline 142
; {
01B4 .dbline 151
; // Noise from other remote ... ignore
; //#ifdef TEST_IR_CODE //CT add for test ir key code in release version 1-3-6 10:18
; //printf("custom code = ");
; //debug_out_dwx(custom);
; //printf("\n");
; //#endif
; //key_buff = custom;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -