打印

红外NEC

[复制链接]
897|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一路奔跑|  楼主 | 2014-8-25 20:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
IRD是和红外接收连在一起的,是NEC协议
uint Get_Lowtime()
{
        TH1=0;
        TL1=0;
        TR1=1;
        while(!IRD)
        {
                if(TH1>0x40)
                {
                        break;
                }
        }
        TR1=0;
        return (TH1*256+TL1);       
}
uint Get_Hightime()
{
        TH1=0;
        TL1=0;
        TR1=1;
        while(IRD)
        {
                if(TH1>0x40)
                {
                        break;
                }
        }
        TR1=0;
        return(TH1*256+TL1);
}
void out0() interrupt 0
{
       
        int i,j;
        uchar byt;
        tim=Get_Lowtime();
        if(tim<7833||tim>8755)//9ms
        {       
                IE1=0;
                return;
        }
        tim=Get_Hightime();
        if(tim<3686||tim>4608)//4.5ms
        {
                IE1=0;
                return;
        }
        for(i=0;i<4;i++)
        {
                for(j=0;j<8;j++)
                {
                        tim=Get_Lowtime();
                        if(tim<313||tim>718)//340——780us为什么程序执行到这就不往下执行了呢??
                        {
                                IE1=0;
                                return;
                        }
                        tim=Get_Hightime();
                        if(tim>313&&tim<718)
                        {
                                byt>>=1;
                        }
                        if(tim>1345&&tim<1751)
                        {
                                byt>>=1;
                                byt|=0x80;
                        }   
                }                                                  
                tem_sbuf[i]=byt;                               
        }                 
}

相关帖子

沙发
coody| | 2014-8-25 20:12 | 只看该作者
这句if(tim<313||tim>718)
改为if((tim<313) || (tim>718))看看,不解释。。。

使用特权

评论回复
板凳
一路奔跑|  楼主 | 2014-8-26 15:35 | 只看该作者
试过了,为什么还是不行啊?

使用特权

评论回复
地板
一路奔跑|  楼主 | 2014-8-26 15:35 | 只看该作者
coody 发表于 2014-8-25 20:12
这句if(tim718)
改为if((tim718))看看,不解释。。。


试过了,为什么还是不行啊?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

30

帖子

0

粉丝