📄 ir.c
字号:
#include <linux/kernel.h>#include <linux/module.h>#include "iop.h"void init_ir(void);#define UINT32 u32#define UINT16 u16UINT32 *iop_data=(UINT32 *)0xbffe8720;#define IR_PHILIPS#define IR_IDcode 0x0007#ifdef IR_PHILIPS #define IOP_IR_DATA() ((iop_data[6]>>6)&0x5f) //((iop_data[6]>>6)&0x5f)#define TRANS_IR_CODE(rx) (rx&0x003f)#else#define IOP_IR_DATA() (iop_data[6])#define TRANS_IR_CODE(rx) reverse_fun(rx)#endifint ir_flag = 0;void reset_ir(void){ iop_data[IR_PORT]|=IrRepeatRate(4);}void init_ir(){ reset_ir();}int read_ir(void){ UINT16 rx; UINT16 unCustId; rx = iop_data[IR_PORT]; if (!(rx & IR_RDY)) { return /*IRC_NULL*/-1; } else { unCustId = IOP_IR_DATA(); iop_data[IR_PORT] = rx & (~IR_RDY); rx = rx & 0x0ff; if(unCustId==IR_IDcode) { //printk("unCustId=%x\n",unCustId); ir_flag = 0; return rx; } else if(unCustId == 0x0003) { ir_flag = 1; return rx; } else { rx=0x007f; // return none huang return rx; } /* printk("unCustId=%x\n",unCustId); printk("rx = %x\n",rx); return rx; */ }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -