📄 intspassing.c
字号:
#include <reg51.h>
#include "Common.h"
#include "Global.h"
#include "ICControl.h"
#include "Initial.h"
#include "TWICreg.h"
#include "Keypad.h"
#include "VideoDetect.h"
code uCHAR aKeyTable[16]={REMOTE_KEY_POWER,REMOTE_KEY_SOURCE,0,REMOTE_KEY_MENU,0,REMOTE_KEY_CH_INC,0,REMOTE_KEY_CH_DEC,
REMOTE_KEY_LEFT,0,REMOTE_KEY_RIGHT,0,0,0,0,0};
void INT0Passing(void) interrupt 0
{
uCHAR INTRead1=0;
uCHAR INTRead2=0;
EX0 = 0; // Disable Externel Interrup 0
INTRead1=IC_ReadByte(TWIC_P0,INTSTS_REG);
INTRead2=IC_ReadByte(TWIC_P0,INSTS2_REG);
IC_WritByte(TWIC_P0,INTSTS_REG,0xFF); //Clear interrupt
IC_WritByte(TWIC_P0,INSTS2_REG,0x01); //Clear interrupt
//Detect Ir
if(INTRead1&0x80) //INTSTS
{
m_cCurreKey=IC_ReadByte(TWIC_P1,IR_STREAM4);
}
//Detect Keypad
if(INTRead2&0x01) //INTSTS2
{
INTRead2=IC_ReadByte(TWIC_P0,GPIO_OUT_CTRL_REG)&0x0F;
m_cCurreKey=aKeyTable[INTRead2];
}
EX0 = 1; // Enable Externel Interrup 0
}
void PoolingINT(void)
{
uCHAR INTRead1=0;
uCHAR INTRead2=0;
INTRead1=IC_ReadByte(TWIC_P0,INTSTS_REG);
INTRead2=IC_ReadByte(TWIC_P0,INSTS2_REG);
IC_WritByte(TWIC_P0,INTSTS_REG,0xFF); //Clear interrupt
IC_WritByte(TWIC_P0,INSTS2_REG,0x01); //Clear interrupt
//Detect Ir
if(INTRead1&0x80) //INTSTS
{
// IC_WritByte(TWIC_P0,INTSTS_REG,0xFF); //Clear interrupt
//while(IC_ReadByte(TWIC_P0,INTSTS_REG)&0x80);
if((IC_ReadByte(TWIC_P1,IR_STREAM_REG)&0x01)!=0)
m_cCurreKey=0;
else
m_cCurreKey=IC_ReadByte(TWIC_P1,IR_STREAM4);
}
//Detect Keypad
if(INTRead2&0x01) //INTSTS2
{
INTRead2=IC_ReadByte(TWIC_P0,GPIO_OUT_CTRL_REG)&0x0F;
m_cCurreKey=aKeyTable[INTRead2];
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -