标题:
求教,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