红外解码程序
时间:10-02
整理:3721RD
点击:
void IR_IN() interrupt 0 using 0 //外部中断INT0函数
{unsigned char j,k,n=0; EX0=0; //暂时先关中断
delay(20); //延时0.10ms*20=2ms
if(IRIN==1) //如果IRIN出现高电平,是干扰信号
{EX0=1; // 允许外部中断INT0中断
return; //返回
}
......
为什么一开始要判断2ms。2ms是争对什么设置的,为什么?
{unsigned char j,k,n=0; EX0=0; //暂时先关中断
delay(20); //延时0.10ms*20=2ms
if(IRIN==1) //如果IRIN出现高电平,是干扰信号
{EX0=1; // 允许外部中断INT0中断
return; //返回
}
......
为什么一开始要判断2ms。2ms是争对什么设置的,为什么?
检测引导码,如果超过了2ms还能检测到低电平,就说明检测到了引导码,可以进行解码操作!
检测的引导码有9ms低电平和4.5ms高电平。那可以将2ms增加到小于9ms的吗?
用来判断是否存在干扰信号,最后返回一个信号来表明
我之前做这个解码的时候,把延时定在了8ms,我认为延时时间应该大于4.5ms但一定要小于9ms。这样解码正确率会高一点!