?? ir.h
字號:
/* Copyright 1996, ESS Technology, Inc. *//* SCCSID @(#)ir.h 1.25 7/17/98 *//* * 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. */#ifdef IRXMTGBLDEF_0(char connect_inout, 0); /* IR input and output are two * * different signals (i.e. 3208 is * * responsible for output the IR signal)*/#endif#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();#ifdef DSC_IRQEXPORT void IR_recv_interrupt_service(unsigned int);#elseEXPORT void IR_recv_interrupt_service(void);#endifEXPORT void IR_xmit_interrupt_service(void);#endif /* IR */#endif /* _IR_H_ */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -