📄 ir.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 + -