⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ir_rc5.h

📁 主要用于液晶电视解码,内置51单片机,全部代码用C编写,编译环境为KEILC
💻 H
字号:
/******************************************************************************
 Copyright (c) 2003 MStar Semiconductor, Inc.
 All rights reserved.

 [Date]:        04-Feb-2004
 [Comment]:
   Remote control header file.
 [Reversion History]:
*******************************************************************************/
#ifdef IR_RC5

#ifndef _IR_H
#define _IR_H

#include "mcu.h"
#include "irfunc.h"

#ifdef _IR_C_
#define _IRDEC_
#else
#define _IRDEC_ extern
#endif

///////////////////////
// IR Option
///////////////////////
//#define IR_DEBUG_EN

#ifdef IR_DEBUG_EN
#define IR_PUTSTR(str)      putstr(str)
#define IR_PRINTF(str,para) printf(str,para)
#else
#define IR_PUTSTR(str)
#define IR_PRINTF(str,para)
#endif

// IR user timer
#define IR_USE_TIMER1    0
#define IR_USE_TIMER2    1
#define IR_TIMER_SEL     IR_USE_TIMER2

#define IR_DELAY_TIME  (3000 / ISR_TIMER0_INTERVAL) // IR command start in INT1 to IR command end time
#define IR_DELAY_TIME0 (300 / ISR_TIMER0_INTERVAL)  // IR 1st command to repeat command delay time
#define IR_DELAY_TIME1 (300 / ISR_TIMER0_INTERVAL)  // IR command hold time after last repeat command
#define IR_DELAY_TIME2 (200 / ISR_TIMER0_INTERVAL)  // IR command hold time after last repeat command
#define IR_DELAY_TIME3 (300 / ISR_TIMER0_INTERVAL)  // IR command hold time after last repeat command

#define IR_REPEAT_START_TIME    (500 / ISR_TIMER0_INTERVAL)
#define IR_REPEAT_END_TIME      (550 / ISR_TIMER0_INTERVAL)

//---------------------------------------------------------------------------
typedef enum _IrStatusType
{
	IR_LEADER,
	IR_CODE,
	IR_IDLE,
	IR_PREEND
} IrStatusType;

// IR recieve action
_IRDEC_ bit g_bIrRepeatStatus;      // IR command repeat status
_IRDEC_ bit g_bIrDetect;                // IR command detect flag
_IRDEC_ bit g_bIrCommand;           // IR command input hold flag
_IRDEC_ bit g_bIrRepeat;                // IR command repeat flag

_IRDEC_  BYTE g_ucIrBitsCnt;        // IR bits counter
_IRDEC_  BYTE g_ucDataCode;      //
_IRDEC_  BYTE g_ucSYSCode;        //
_IRDEC_  BYTE g_ucPreSYSCode;   //
_IRDEC_  BYTE g_wIrCycleTimer; // IR total cycle timer
_IRDEC_  DWORD g_ucCode;        // IR data code
_IRDEC_  WORD g_wIrTimer;   // IR timer
_IRDEC_ XDATA BYTE g_ucIrCode; // IR code
_IRDEC_ XDATA BYTE g_ucIrStatus;

// IR key
_IRDEC_ XDATA WORD g_wIrNumKeyTimer; // IR number key timer

// Subroutines
_IRDEC_ void irInterruptProcess(void);
_IRDEC_ void irDetectTimer0(void);
_IRDEC_ void IrReceiveEnd(void);
_IRDEC_ BOOL ReformatIRdata(void);
_IRDEC_ void irDecodeRepaeat(WORD wRepeatTime);
_IRDEC_ void irDecodeEnd(void);
_IRDEC_ void CheckIrdetected(void);
_IRDEC_ void irDetectTimer1( void );
_IRDEC_ void Timer2InitForIr(void);
#endif

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -