📄 ir.lst
字号:
187 2 LeadCode=0;
188 2 }
189 1 else
190 1 {
191 2 if(MxicIr.Bits.b1GetIrFlame==1)
192 2 MxicIr.Bits.b1GetIrFlame = 0;
193 2 MxicIr.Bits.b1GetIrRepeatCode=0;
194 2 MxicIr.Bits.b1GetIrCommand=0;
195 2 TR1=0;
196 2 }
197 1
198 1 FirstEdge=0; //start wait next cycle
199 1 // TR1=0; //stop counting
200 1 TH1=0;TL1=0;
201 1 }
202 //------------------------------------
203 // check timer_1 counter in EX_1 interrupt
204 //------------------------------------
205 void Ex1_int( void ) interrupt 2
206 {
207 1 union Counter
208 1 {
209 1 struct Int1Cnt
210 1 {
211 1 BYTE HiCnt;
212 1 BYTE LoCnt;
213 1 }Cnt;
214 1
215 1 UINT Timer;
216 1 }T1;
217 1
218 1 if ( FirstEdge == 0 )
219 1 {
220 2 FirstEdge=1;
221 2 TH1=0;TL1=0;
222 2 TR1=1; //start counting
223 2 }
224 1 else
225 1 {
226 2 T1.Cnt.HiCnt=TH1;
227 2 T1.Cnt.LoCnt=TL1;
228 2 if ( LeadCode == 0)
229 2 {
230 3 if ( (MxicIr.Bits.b1GetIrFlame == 0)&&(T1.Timer < _LEAD_UPPER) && (T1.Timer > _LEAD_LOWER))
231 3 // ((MxicIr.Bits.b1GetIrFlame == 1)&&(T1.Timer > _REPEAT_LOWER)&&( T1.Timer < _REPEAT_UPPER)) )
232 3 {
233 4 LeadCode=1;
234 4 IrCount=0;
235 4 }
236 3 }
237 2 else //LeadCode ==1
238 2 {
239 3 if(( T1.Timer > _IR_0_LOWER ) && ( T1.Timer < _IR_0_UPPER ))
240 3 {
241 4 Ir.Code=(Ir.Code << 1)|0x01;
C51 COMPILER V7.01 IR 12/01/2005 09:38:54 PAGE 5
242 4 IrCount++;
243 4 }
244 3 else
245 3 if(( T1.Timer > _IR_1_LOWER ) && ( T1.Timer < _IR_1_UPPER ))
246 3 { //got IR logical "1" signal
247 4 Ir.Code = Ir.Code << 1;
248 4 IrCount++;
249 4 }
250 3 else
251 3 { //Ir Receive fail condition
252 4 IrCount=IrCount; //for debug only
253 4 }
254 3
255 3 if ( IrCount >=32 )
256 3 {
257 4 MxicIr.Bits.b1GetIrFlame=1;
258 4 MxicIr.Bits.b1GetIrCommand=1;
259 4 FirstEdge=0; //start wait next cycle
260 4 TR1=1; //starting counting
261 4 LeadCode=0;
262 4 }
263 3 }
264 2 }
265 1 TH1=0;TL1=0;
266 1
267 1 }
268
269
270
271
272 /*BYTE IrFunction(void)
273 {
274 BYTE i;
275
276 bit IrRepeat;
277 BYTE GetIr,backupir;//,BakIr
278 //BYTE val_str[3];
279
280
281
282 // IrVaild=CheckIrFlame();
283 // Value_ASCII(GetIrCodeData(), val_str, 0);
284 // OSD_ShowTitle(val_str, 3);
285
286 switch(GetIrCodeData())
287 {
288 case 0x5f:
289 // SHDN_L5V=1;
290 GetIr=MENU;
291 break;
292 case 0xb7:
293 GetIr=MODE_DEC;
294 // SHDN_L5V=1;
295 break;
296 case 0x9F:
297 GetIr=UP;
298 break;
299 case 0xDF:
300 GetIr=DOWN;
301 break;
302 case 0xef:
303 GetIr=MODE_DEC;
C51 COMPILER V7.01 IR 12/01/2005 09:38:54 PAGE 6
304 break;
305 case 0x8f:
306 GetIr=ENTER;
307 break;
308 case 0x87:
309 GetIr=POWER;
310 break;
311 case 0xA7:
312 GetIr=IRMUTE;
313 break;
314 case 0xBF:
315 GetIr=IRUP;
316 break;
317 case 0x1F:
318 GetIr=VOLUMADD;
319 break;
320 case 0xAF:
321 GetIr=VOLUMSUB;
322 break;
323 case 0x6F:
324 GetIr=UPDOWN;
325 break;
326 case 0x07:
327 GetIr=LEFTRIGHT;
328 break;
329 case 0xCF:
330 GetIr=CALL;
331 break;
332 case 0x4F:
333 GetIr=DISPLAYSIZE;
334 break;
335 default:
336 GetIr=0x00;
337 break;
338
339 }
340 if(GetIr!=0x00)
341 for (i=0; i!=0x0f; i++)
342 {
343 T0_0Interval = 500; //reset the Timer interval 10sec.
344 }
345 IrRepeat=CheckIrRepeatCode();
346 if(IrRepeat)
347 {
348
349 GetIr=backupir;
350 }
351
352 backupir=GetIr;
353 // MxicIr.Bits.b1GetIrFlame = 0;
354 for(i=0;i<125;i++)
355 DELAY(20);
356
357 return(GetIr);
358 }
359 */
360 //------------------------------------
361 //------------------------------------
362
363
364
365
C51 COMPILER V7.01 IR 12/01/2005 09:38:54 PAGE 7
366
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 460 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 8 2
IDATA SIZE = ---- ----
BIT SIZE = 2 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -