📄 ir.c
字号:
#include "ir.h"
unsigned char irtime = 0;
unsigned char irdata[33] = ""; //缓存,存储“时间”
unsigned char ircode[4] = "";
bit irok = 0;
void ir_init()
{
EX0 = 1;
IT0 = 1;
TMOD = 0x02;
TH0 = 0;
TL0 = 0;
ET0 = 1;
TR0 = 1;
EA = 1;
}
void it0_isr() interrupt 0
{
static char i = 0; //数据
int temp = irtime;
irtime = 0;
if((temp>30) && (temp < 35))
i = 0;
irdata[i] = temp;
i++;
if(i == 33)
{
irok = 1;
}
}
void timer0_isr() interrupt 1
{
irtime++;
}
void ir_pro()
{
char i = 0;
char j = 0;
char k = 1;
for(i=0; i<4; i++)
{
char temp_code = 0;
for(j=0; j<8; j++) //irtime = 4 (0)
{ //irtime = 8 (1)
temp_code >>= 1;
if(irdata[k] >= 7)
{
temp_code = temp_code | 0x80;
}
k++;
}
ircode[i] = temp_code;
}
}
/*
temp_code
byte7 byte6 ... byte0
1 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -