打印

【求助】关于红外~~

[复制链接]
1351|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
larryliuhao|  楼主 | 2012-4-13 13:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问下为什么我一用红外遥控器控制单片机结果我的其他按键功能都没了?连LCD,18B20也没反应了,只能按复位。。。
我想过是计算时间的那个while出问题,可是我加个i上去给了个while的循环上限,可还是出问题,求各位帮帮忙看看。。。
/*************************************
          红外线触发的外中断处理函数
**************************************/
void Int0(void) interrupt 0
{
        unsigned int i;

        EX0 = 0;      //关闭外中断0,不再接收二次红外信号的中断
       
        TH0 = 0;      //定时器T0清0
        TL0 = 0;
        i = 0;      
        TR0 = 1;            //开启定时器T0         
        while(IR==0 && i<10000)
                i++;          //低电平计时
        TR0 = 0;                //关闭定时器T0     
        LowTime = TH0*256+TL0;  //保存低电平时间

        TH0 = 0;              //定时器T0清0
        TL0 = 0;
        i = 0;      
        TR0 = 1;                    //开启定时器T0
        while(IR==1 && i<6000)
                i++;        //高电平计时
        TR0 = 0;                //关闭定时器T0
        HighTime = TH0*256+TL0;             //保存引导码的高电平长度

    if((LowTime>7800) && (LowTime<8800) && (HighTime>3600) && (HighTime<=4700))
        {
                 if(DeCode() == 1)        //解码
                {
                        if(a[2] == 0x45)
                        {
                                jdq2 = ~jdq2;
                        }
                }
        }
        EX0 = 1;   //开启外中断
}

相关帖子

沙发
liang7143| | 2012-4-13 16:21 | 只看该作者
LZ 能不能用了一个状态机实现啊

使用特权

评论回复
板凳
liang7143| | 2012-4-13 16:23 | 只看该作者
状态机实现 可以参考写XWJ的博客

http://blog.21ic.com/user1/2240/archives/2006/10268.html

使用特权

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

本版积分规则

0

主题

13

帖子

1

粉丝