标题: 求解一段红外遥控程序的含义 [打印本页]

作者: 咻咻修    时间: 2018-7-21 13:18
标题: 求解一段红外遥控程序的含义
void EX0_ISR (void) interrupt 0 //外部中断0服务函数
{
        static unsigned char  i;             //接收红外信号处理
        static bit startflag;                //是否开始处理标志位

        if(startflag)                        
        {
                if(irtime<63&&irtime>=33)//引导码 TC9012的头码,9ms+4.5ms
            i=0;
                    irdata[i]=irtime;//存储每个电平的持续时间,用于以后判断是0还是1
                    irtime=0;
                    i++;
                           if(i==33)
                      {
                                  irok=1;
                                i=0;
                          }
        }
        else
        {
                irtime=0;
                startflag=1;
        }
}





这是什么意思?????他的哪个大于33小于63哪个什么意思、、????这段程序是红外进入开始的提示,那他是检测什么??确定红外遥控开始进入中断的


作者: 咻咻修    时间: 2018-7-21 13:19
就是哪个9ms+4.5ms是怎么转换的,转换为什么去检测的
作者: woshige    时间: 2018-7-21 14:54
去找一个红外NEC协议学一下就知道了,9ms低电平+4.5ms高电平的引导码相当于一个起始信号,判断到这个引导码以后,后面传输的才是数据
作者: 咻咻修    时间: 2018-7-21 17:50
woshige 发表于 2018-7-21 14:54
去找一个红外NEC协议学一下就知道了,9ms低电平+4.5ms高电平的引导码相当于一个起始信号,判断到这个引导码 ...

我看过协议了,远离我懂,就是程序不知道怎么写,不知道大于33小于63。为什么这样写??
作者: 咻咻修    时间: 2018-7-21 17:51
woshige 发表于 2018-7-21 14:54
去找一个红外NEC协议学一下就知道了,9ms低电平+4.5ms高电平的引导码相当于一个起始信号,判断到这个引导码 ...

看多协议了,原理我懂,就是不知道那个63,33怎么得来的
作者: qw11111111    时间: 2018-7-21 18:50
红外遥控程序就是一个解码,再没什么,33小于63应该是脉宽吧
作者: 咻咻修    时间: 2018-7-21 20:25
qw11111111 发表于 2018-7-21 18:50
红外遥控程序就是一个解码,再没什么,33小于63应该是脉宽吧

irtiime是每个电平的持续时间,用于判断是0还是1。我就是不明白为什么是33到63...
作者: woshige    时间: 2018-7-24 16:12
咻咻修 发表于 2018-7-21 20:25
irtiime是每个电平的持续时间,用于判断是0还是1。我就是不明白为什么是33到63...

注释说是引导码的头码 也就是说你拿来就可以用 至于说为什么是33-63 我的理解是 在接收红外信号的时候 引导码之前会有一段空的数据 如果引导码加上这个空的时间在33-63范围内 就代表这是一个新的红外信号 i=0开始接收一个完整数据 反正我在做红外接收的时候是没有用到判断时间这部分的




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1