📄 ir_remote.h
字号:
/*void ir_887()
{
uchar s,q,k,count;
if(remote==0)
{
for(k=85;k>0;k--) //100us重复85次,测得时间8.926ms
{
delay100us();
if(remote==1){return;} //再来判断ir是否为低电平,如果是低电平就执行下面的语句
}
while(!remote); //等待4.5ms的高电平
for(k=23;k>0;k--) //100us重复23次,测得时间2.416ms
{
delay100us();
if(remote==0){return;}
}
for(k=15;k>0;k--) //100us重复16次,测得时间1.681ms
{ //100us重复15次,测得时间1.561ms
delay100us();
if(remote==0){return;} //再判断ir是不是等于0,是就跳出。如果不是就进入while(ir)处进行等待用户码的到了
}
while(remote); //等待0
//===================================开始读32个码======================
for(s=0;s<4;s++) //循环4次读完客户码,客户反吗;数据码,数据反码。
{
for(q=0;q<8;q++) //8位为一个字节
{
while(!remote); //等待4.5ms的高电平
for(k=8;k>0;k--) //100us重复9次,测得时间928us
{ //100us重复8次,测得时间825us
delay100us();
}
if(remote==1) //判断ir是不是为高电平
{
for(k=9;k>0;k--) //100us重复10次,测得时间1.031ms
{ //100us重复11次,测得时间1.134ms
delay100us();
}
count=count>>1;
count=count|0x80;
}
else count=count>>1;
}
irtab[s]=count;
count=0;
} //========================读完了32个码=================================
if(irtab[2] !=(~irtab[3])) {return;} //判断数组irtab[2]与数组irtab[3]的数是否相反,
if(irtab[1] == 0xf7) //核对用户误码是不是0xf7,如果是就执行下面语句
{
ir=irtab[2]; //把irtab[2]数组里面的数付给ir
ir_irs(); //调用遥控器功能程序
}
}
} */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -