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

📄 ir.h

📁 一个不错的硬盘播放器程序,包含VFD显示程序,红外线遥控程序,硬盘读写程序,及解码程序等.
💻 H
字号:
/* Copyright 1996, ESS Technology, Inc. *//* SCCSID @(#)ir.h	1.23 10/24/97 *//* * This is modified from version 1.17 of ir.h */#ifndef _IR_H_#define _IR_H_#ifdef IR/* State for receiving IR signals */#ifdef IR_PHILIPS/* Philips format */#define IR_IDLE 		0#define IR_LEADER		1#define IR_CUSTOM		2#endif /* IR_PHILIPS */#if (IR_NEC || IR_SANYO)/* For NEC and SANYO formats */#define IR_IDLE 		0#define IR_LEADER_LOW 		1#define IR_LEADER_HIGH 		2#define IR_CUSTOM 		3#define IR_REPEAT		4#endif /* IR_NEC || IR_SANYO *//*  * States for trasmitting IR signals. Since we do table lookup later * on, don't change any state assignment here. */#define	IR_XMIT_IDLE		0	/* Not trasmitting anything	*/#define	IR_XMIT_LEADER_LOW	1	/* Leader low  (9.0ms)		*/#define	IR_XMIT_LEADER_HIGH	2	/* Leader high (4.5ms)		*/#define	IR_XMIT_DATA		3	/* Actual data			*/#define	IR_XMIT_GAP		4	/* Gap         (0.56ms)		*//* Jiang Hai loader requires a trailer (a repeat!) */#define	IR_XMIT_REP_HIGH1	5	/* Repeat high1 (40.1ms)	*/#define	IR_XMIT_REP_LOW1	6	/* Repeat low1  (9.1 ms)	*/#define	IR_XMIT_REP_HIGH2	7	/* Repeat high2 (2.2 ms)	*/#define	IR_XMIT_REP_LOW2	8	/* Repeat low2  (0.6 ms)	*//* The following timer values were set based on 33.9MHZ CPU clock, * * to fit different CPU frequencies, I use CLK_FACTOR to adjust    */#define CLK_FACTOR      CPUCLK/* * Use 8.533 us (16.67ns * 512) clock to send IR. Assume IR has 100us * error tolerance, I'll trigger time 40us before it should. As a result, * even if an interrupt sneaks in while we are sending IR code, we should * still be OK. */#define IRW_LEADER_LOW  ((596-5)*CLK_FACTOR/339) /* 9    ms = 596 * .0151 */#define IRW_LEADER_HIGH ((298-5)*CLK_FACTOR/339) /* 4.5  ms = 298 * .0151 */#define IRW_GAP_LOW     ((37 -5)*CLK_FACTOR/339) /*  .56 ms =  37 * .0151 */#define IRW_DATA_ZERO   ((37 -5)*CLK_FACTOR/339) /*  .565ms =  37 * .0151 */#define IRW_DATA_ONE    ((112-5)*CLK_FACTOR/339) /* 1.69 ms = 112 * .0151 *//* * Use 8.533 us (16.67ns * 512) clock to send IR. Assume IR has 100us  * error tolerance, I'll trigger time 40us before it should. As a result,  * even if an interrupt sneaks in while we are sending IR code, we should  * still be OK. */#define	IRW_LEADER_LOW	((596-5)*CLK_FACTOR/339) /* 9    ms = 596 * .0151 */#define	IRW_LEADER_HIGH	((298-5)*CLK_FACTOR/339) /* 4.5  ms = 298 * .0151 */#define	IRW_GAP_LOW	((37 -5)*CLK_FACTOR/339) /*  .56 ms =  37 * .0151 */#define	IRW_DATA_ZERO	((37 -5)*CLK_FACTOR/339) /*  .565ms =  37 * .0151 */#define	IRW_DATA_ONE	((112-5)*CLK_FACTOR/339) /* 1.69 ms = 112 * .0151 *//* * For JiangHai loader, there is always a "trailer" signal. If this * trail is missing, then the loader will not properly receive the * signal! */#define	IRW_REP_HIGH1 ((2656)*CLK_FACTOR/339)	/* 40.1  ms =2656 * .0151 */#define	IRW_REP_LOW1  ((603) *CLK_FACTOR/339)	/*  9.1  ms = 603 * .0151 */#define	IRW_REP_HIGH2 ((146) *CLK_FACTOR/339)	/*  2.2  ms = 146 * .0151 */#define	IRW_REP_LOW2  ((40)  *CLK_FACTOR/339)	/*  0.6  ms =  40 * .0151 */#ifdef IRXMT#ifdef	P1O/* * Internal XOR gate will be used in the future * #define	SET_IRXOR			SET_AUX3 * #define	CLEAR_IRXOR			CLEAR_AUX3 * #define	IS_IRXOR_HIGH			AUX3_HIGH */#define	OUTIR_LOW			CLEAR_AUX4#define	OUTIR_HIGH			SET_AUX4#define	TRISTATE_IR			TRISTATE_AUX4#else#ifdef	P2O/* * Internal XOR gate will be used in the future * #define	SET_IRXOR			SET_AUX3 * #define	CLEAR_IRXOR			CLEAR_AUX3 * #define	IS_IRXOR_HIGH			AUX3_HIGH */#define	OUTIR_LOW			CLEAR_AUX4#define	OUTIR_HIGH			SET_AUX4#define	TRISTATE_IR			TRISTATE_AUX4#else#ifdef	P3O/* * Internal XOR gate will be used in the future * #define	SET_IRXOR			SET_AUX5 * #define	CLEAR_IRXOR			CLEAR_AUX5 * #define	IS_IRXOR_HIGH			AUX5_HIGH */#define	OUTIR_LOW			CLEAR_AUX2#define	OUTIR_HIGH			SET_AUX2#define	TRISTATE_IR			TRISTATE_AUX2#else#ifdef	P4O#define	OUTIR_LOW			CLEAR_AUX7#define	OUTIR_HIGH			SET_AUX7#define	TRISTATE_IR			TRISTATE_AUX7#endif	/* P4O */#endif	/* P3O  */#endif	/* P2O */#endif	/* P1O */#endif	/* IRXMT */EXPORT	char			tblKillIR[];EXPORT	unsigned int		resend_delay;GBLDEF_0(unsigned short codeIR, 0); /* Final IR code (OR with 0x100)	*/GBLDEF_0(unsigned short sysIRcode, 0); /* IR's system code.		*/GBLDEF_0(char connect_inout, 0);	/* IR input and output are two		*				 * different signals (i.e. 3208 is	*				 * responsible for output the IR signal)*/#ifdef IR_PHILIPSGBLDEF(unsigned char IR_ctlbit, 2);	/* Control bit (flip everytime)	*				 * Set at power up/down; 2 means match	*				 * any control bit.			*/GBLDEF_0(unsigned int IR_int_time, 0); /* Timer value when key is received*/GBLDEF_0(unsigned short IR_rep_cnt, 0);	/* Repeat count for 3010	*/#endif /* IR_PHILIPS *//************************************************************ * global functions to be exported ************************************************************/EXPORT	void			IR_init();EXPORT	void			IR_send_FB();EXPORT	void			IR_send_FF();EXPORT	void			IR_send_Next();EXPORT	void			IR_send_Pause();EXPORT	void			IR_send_Play();EXPORT	void			IR_send_data(unsigned char, int);EXPORT	void			processKeycode();EXPORT	void			IR_recv_interrupt_service(void);EXPORT	void			IR_xmit_interrupt_service(void);#endif	/* IR */#endif	/* _IR_H_	*/

⌨️ 快捷键说明

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