标题: 求教,315M无线学习型遥控问题 [打印本页]

作者: mhx321    时间: 2015-10-29 01:39
标题: 求教,315M无线学习型遥控问题
最近在做一个315M的无线学习型遥控,功能是能学习无线遥控器的按键功能,学习好后,发射出去可以实现所学遥控器的功能控制设备。无线接收我用的是外部中断来接收,但是程序写入单片机,运行时,一按学习键,马上就中断,我把超外差接收模块去掉按学习键时不会立即运行中断,接上就不正常,马上就中断,怀疑是不是干扰问题,请大神给看看如何解决?

/*********无线数据接收程序**************************/
void intt0(void) interrupt 0   //外部中断0服务程序
{
        EX0=0;
//        IT0=0;
        EA=0;

if(R_315M==0)
{
Delay1ms(100);    //延时程序
if(R_315M==1)
{
clear_buf();  //数据缓存清0
goto receive_end;
}

        receive_cnt=0;
        F_dat[receive_cnt]=0x0011; //315M标志  自定
        while(receive_cnt<250)
        {
                receive_cnt++;
                TR0=1;//启动定时器0
                while(R_315M==0);  //低电平
                TR0=0;
                F_dat[receive_cnt]=TH0*256+TL0;  //脉宽宽度测量
                receive_cnt++;
                TH0=0;
                TL0=0;
                TF0=0;
                TR0=1;
                while(R_315M==1)
                {
                        if(TF0==1)
                        {
                                goto receive_end;
                        }
                }
                TR0=0;
                F_dat[receive_cnt]=TH0*256+TL0;  //脉宽宽度测量
                TH0=0;
                TL0=0;
                TF0=0;
        }
}
        receive_end:
            if(F_dat[5]>=50)         //消除干扰
                {
                    TR0=0;
                    receive_OK=1;  //接收完毕标志
                        F_dat[receive_cnt]=0x0000;
                        receive_cnt=0;
                        TH0=0;
                        TL0=0;
                        TF0=0;
                }
                else
                {
                        clear_buf();  //数据缓存清0
                        receive_cnt=0;
                        TR0=0;
                        TH0=0;
                        TL0=0;
                        TF0=0;
                        EX0=1;
        //                IT0=1;
                        EA=1;
                }               
}
/*******************************************************/



作者: wlq19911021a    时间: 2015-10-30 12:50
本帖最后由 wlq19911021a 于 2015-10-30 12:54 编辑

太多不看,

一般是中断问题

或进入死胡同了(内部卡死,或纠结了)

楼主写的太多,太乱了,不看
不知楼主的红外通信过了没

没过去过一下,有现成的教程

手把手教程--比我们讲的好多了

那个过了,这个自然过

作者: mhx321    时间: 2016-1-7 02:16
wlq19911021a 发表于 2015-10-30 12:50
太多不看,

一般是中断问题

无线比红外处理起来困难多了,主要是外部干扰比较多,现在问题我已经解决了!
作者: userdwg    时间: 2016-5-19 19:49
贴出来分享一下,老大
作者: jiban1994    时间: 2016-5-19 20:34
有汇编语言的吗
作者: 凉拌见手青    时间: 2017-12-1 19:49
还不懂无线的数据解构,先来学习一下




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