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

📄 ir.h

📁 MST720-DEMO程序
💻 H
字号:
/******************************************************************************
 Copyright (c) 2005 MStar Semiconductor, Inc.
 All rights reserved.

 [Module Name]: IR.h
 [Date]:	1-Jun-2005
 [Comment]:
   Header file for IR.c module..
 [Reversion History]:
*******************************************************************************/
#ifndef _IR_H_
#define _IR_H_

#if IR_ENABLE

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

/********************
* INCLUDE FILES 	 *
*********************/
#include "TypeDef.h"
	
/********************
* LOCAL MACROS	       *
*********************/
// IR recive pin define
#define IR_PIN				P3_3

// IR customer Code
#define IR_HEADER_CODE0		0x00
#define IR_HEADER_CODE1		0xFF

// IR command delay time
#define IR_CYCLE_TIME			108+8	// ms(total ir cycle time)

#define IR_1ST_LEAD_TIME		13500	// us(9+4.5 ms)
#define IR_REPAEAT_LEAD_TIME		11500	// us(9+2.5 ms)

#define IR_LOGIC0_TIME			1120	// us(0.56+0.56 ms)
#define IR_LOGIC1_TIME			2240	// us(0.56+1.68 ms)

#define IR_TOLERANCE_TIME		((IR_LOGIC1_TIME-IR_LOGIC0_TIME)/2)

// MCU timer for IR using
#define IR_1ST_LEAD_CNT		(((MCU_XTAL_CLK_MHZ*(IR_1ST_LEAD_TIME))+(MCU_MACHINE_CYCLE/2))/MCU_MACHINE_CYCLE)
#define IR_REPAEAT_LEAD_CNT		(((MCU_XTAL_CLK_MHZ*(IR_REPAEAT_LEAD_TIME))+(MCU_MACHINE_CYCLE/2))/MCU_MACHINE_CYCLE)
#define IR_LOGIC0_CNT			(((MCU_XTAL_CLK_MHZ*(IR_LOGIC0_TIME))+(MCU_MACHINE_CYCLE/2))/MCU_MACHINE_CYCLE)
#define IR_LOGIC1_CNT			(((MCU_XTAL_CLK_MHZ*(IR_LOGIC1_TIME))+(MCU_MACHINE_CYCLE/2))/MCU_MACHINE_CYCLE)

#define IR_TOLERANCE_CNT		(((MCU_XTAL_CLK_MHZ*(IR_TOLERANCE_TIME))+(MCU_MACHINE_CYCLE/2))/MCU_MACHINE_CYCLE)

#define IR_TIMER_INTERVAL		20000	// unit: 1us (20ms)
#define IR_TIMER_COUNTER		(65536-(((MCU_XTAL_CLK_MHZ*IR_TIMER_INTERVAL)+(MCU_MACHINE_CYCLE/2))/MCU_MACHINE_CYCLE))


// IR command start in INT1 to IR command end time
#define IR_DELAY_TIME			3000	// unit: 1ms
// IR 1st command to repeat command delay time
#define IR_DELAY_TIME0			500	// unit: 1ms
// IR command hold time after last repeat command
#define IR_DELAY_TIME1			100	// unit: 1ms

#define IR_REPEAT_START_TIME		500	// unit: 1ms
#define IR_REPEAT_END_TIME		550	// unit: 1ms

/********************
* VARIABLEV DEFINE    *
*********************/
// IR recieve action
_IRDEC_ bit g_bIrError;			// IR command receive error flag
_IRDEC_ bit g_bIrDetect;			// IR command detect flag
_IRDEC_ bit g_bIrCommand;		// IR command input hold flag
_IRDEC_ bit g_bIrExecute;			// IR command 1st execute busy flag
_IRDEC_ bit g_bIrTime;			// IR command end & start delay timer
_IRDEC_ bit g_bIrRepeatStatus;		// IR command repeat status
_IRDEC_ bit g_bIrRepeat;			// IR command repeat flag
_IRDEC_ bit g_bIrCheckRepeat;		// check repeat

_IRDEC_ BYTE g_ucIrBitsCnt;		// IR bits counter
_IRDEC_ WORD g_uwIrPeriodCnt;		// IR single period counter
_IRDEC_ BYTE g_ucIrDataFifo;		// IR data FIFO

_IRDEC_ XDATA WORD g_uwIrCycleTimer;	// IR total cycle timer
_IRDEC_ XDATA BYTE g_ucDataCode;	// IR data code

_IRDEC_ XDATA BYTE g_ucIrCode;		// IR code
_IRDEC_ XDATA WORD g_uwIrTimer;		// IR timer

// IR key
//_IRDEC_ bit g_bIrNumKeyStart;		// IR 0-9 key pressed start flag
//_IRDEC_ bit g_bIrKeyNumEnd;		// IR 0-9 key pressed end flag
//_IRDEC_ bit g_bIr100Key;			// pressed +100 key
//_IRDEC_ XDATA BYTE g_ucIrNumKey;	// IR number key
//_IRDEC_ XDATA WORD g_wIrNumKeyTimer;	// IR number key timer

/**********************
* FUNCTION PROTOTYPES *
***********************/
_IRDEC_ void sysIRDetectTimer0( void );
_IRDEC_ void sysIRDecodeRepaeat(WORD wRepeatTime);
_IRDEC_ void sysIRDecodeEnd(void);
_IRDEC_ void sysIRInitial(void);
#endif	// IR_ENABLE
#endif	// _IR_H_

⌨️ 快捷键说明

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