📄 nec_ir.lis
字号:
; //ir_interrupt_set_edge(FALLING_EDGE);
; state = IDLE;
01B4 2224 clr R2
01B6 20920100 sts L9,R2
01BA .dbline 152
; valid_repeat = 0;
01BA 20920200 sts L13,R2
01BE .dbline 153
; break;
01BE 7AC0 xjmp L15
01C0 L39:
01C0 .dbline 155
; }
; state = DATA1;
01C0 84E0 ldi R24,4
01C2 80930100 sts L9,R24
01C6 .dbline 157
; /* TP0713, timer optimization */
; count = 0;
01C6 2224 clr R2
01C8 20920500 sts L10,R2
01CC .dbline 158
; data1 = 0;
01CC 20920600 sts L11,R2
01D0 .dbline 159
; }
01D0 .dbline 160
; break;
01D0 71C0 xjmp L15
01D2 L41:
01D2 .dbline 163
; case DATA1:
; /* TP0713, timer optimization */
; count++;
01D2 80910500 lds R24,L10
01D6 8F5F subi R24,255 ; addi 1
01D8 80930500 sts L10,R24
01DC .dbline 164
; if (t0 > time_1125_usl&& t0 < time_1125_ush)
01DC 8DE0 ldi R24,13
01DE 8417 cp R24,R20
01E0 40F4 brsh L42
01E2 4131 cpi R20,17
01E4 30F4 brsh L42
01E6 .dbline 165
; {
01E6 .dbline 166
; data1 <<= 1; /* a zero bit */
01E6 20900600 lds R2,L11
01EA 220C lsl R2
01EC 20920600 sts L11,R2
01F0 .dbline 167
; }
01F0 15C0 xjmp L43
01F2 L42:
01F2 .dbline 169
; else
; {
01F2 .dbline 170
; if (t0 > time_2250_usl && t0 < time_2250_ush)
01F2 8AE1 ldi R24,26
01F4 8417 cp R24,R20
01F6 60F4 brsh L44
01F8 4232 cpi R20,34
01FA 50F4 brsh L44
01FC .dbline 171
; {
01FC .dbline 172
; data1 = (data1 << 1) ;
01FC 20900600 lds R2,L11
0200 220C lsl R2
0202 20920600 sts L11,R2
0206 .dbline 173
; data1++; //| 1; /* a one bit */
0206 822D mov R24,R2
0208 8F5F subi R24,255 ; addi 1
020A 80930600 sts L11,R24
020E .dbline 174
; }
020E 06C0 xjmp L45
0210 L44:
0210 .dbline 176
; else
; {
0210 .dbline 178
; //ir_interrupt_set_edge(FALLING_EDGE);
; state = IDLE;
0210 2224 clr R2
0212 20920100 sts L9,R2
0216 .dbline 179
; valid_repeat = 0;
0216 20920200 sts L13,R2
021A .dbline 180
; break;
021A 4CC0 xjmp L15
021C L45:
021C .dbline 182
; }
; }
021C L43:
021C .dbline 183
; if (count == 8) {
021C 80910500 lds R24,L10
0220 8830 cpi R24,8
0222 09F0 breq X5
0224 47C0 xjmp L15
0226 X5:
0226 .dbline 183
0226 .dbline 184
; state = DATA2;
0226 85E0 ldi R24,5
0228 80930100 sts L9,R24
022C .dbline 185
; count = 0;
022C 2224 clr R2
022E 20920500 sts L10,R2
0232 .dbline 186
; data2 = 0;
0232 20920700 sts L12,R2
0236 .dbline 187
; }
0236 .dbline 188
; break;
0236 3EC0 xjmp L15
0238 L48:
0238 .dbline 191
; case DATA2:
; /* TP0713, timer optimization */
; count++;
0238 80910500 lds R24,L10
023C 8F5F subi R24,255 ; addi 1
023E 80930500 sts L10,R24
0242 .dbline 192
; if (t0 > time_1125_usl && t0 < time_1125_ush)
0242 8DE0 ldi R24,13
0244 8417 cp R24,R20
0246 40F4 brsh L49
0248 4131 cpi R20,17
024A 30F4 brsh L49
024C .dbline 193
; {
024C .dbline 194
; data2 <<= 1; /* a zero bit */
024C 20900700 lds R2,L12
0250 220C lsl R2
0252 20920700 sts L12,R2
0256 .dbline 195
; }
0256 15C0 xjmp L50
0258 L49:
0258 .dbline 197
; else
; {
0258 .dbline 198
; if (t0 > time_2250_usl && t0 < time_2250_ush)
0258 8AE1 ldi R24,26
025A 8417 cp R24,R20
025C 60F4 brsh L51
025E 4232 cpi R20,34
0260 50F4 brsh L51
0262 .dbline 199
; {
0262 .dbline 200
; data2 = (data2 << 1);
0262 20900700 lds R2,L12
0266 220C lsl R2
0268 20920700 sts L12,R2
026C .dbline 201
; data2++;// | 1; /* a one bit */
026C 822D mov R24,R2
026E 8F5F subi R24,255 ; addi 1
0270 80930700 sts L12,R24
0274 .dbline 202
; }
0274 06C0 xjmp L52
0276 L51:
0276 .dbline 204
; else
; {
0276 .dbline 206
; //ir_interrupt_set_edge(FALLING_EDGE);
; state = IDLE;
0276 2224 clr R2
0278 20920100 sts L9,R2
027C .dbline 207
; valid_repeat = 0;
027C 20920200 sts L13,R2
0280 .dbline 208
; break;
0280 19C0 xjmp L15
0282 L52:
0282 .dbline 210
; }
; }
0282 L50:
0282 .dbline 211
; if (count == 8)
0282 80910500 lds R24,L10
0286 8830 cpi R24,8
0288 A9F4 brne L15
028A .dbline 212
; {
028A .dbline 214
; //ir_interrupt_set_edge(FALLING_EDGE);
; state = IDLE;
028A 2224 clr R2
028C 20920100 sts L9,R2
0290 .dbline 215
; if (data1 == (~data2 ))
0290 20900700 lds R2,L12
0294 2094 com R2
0296 30900600 lds R3,L11
029A 3214 cp R3,R2
029C 59F4 brne L15
029E .dbline 216
; { // Check if data is valid
029E .dbline 217
; key = data1;
029E 232C mov R2,R3
02A0 20920200 sts L6,R2
02A4 .dbline 219
; //dvd_key = data1;
; key_buff = data1;
02A4 3324 clr R3
02A6 30920100 sts _key_buff+1,R3
02AA 20920000 sts _key_buff,R2
02AE .dbline 220
; valid_repeat = 1;
02AE 81E0 ldi R24,1
02B0 80930200 sts L13,R24
02B4 .dbline 222
;
; }
02B4 .dbline 223
; }
02B4 .dbline 224
; break;
02B4 L14:
02B4 L15:
02B4 .dbline -2
02B4 .dbline 226
; }
; }
02B4 L5:
02B4 0E940000 xcall pop_gset2
02B8 0E940000 xcall pop_lset
02BC .dbline 0 ; func end
02BC 1895 reti
02BE .dbsym r t0 20 c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -