欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

求大神啊(超声波测距有关问题)

更新时间: 2014-01-05 03:15:23 责任编辑: Author_N1

 

求大神啊(超声波测距问题)
我编写的超声波模块有问题啊,模块肯定是没有坏的,这是我的程序,求大神帮我看看哪有问题?
//超声波定时器
void initialize()
{
TMOD=0x01;//定时器0方式1
TH0=(65536-290)/256;//15us
TL0=(65536-290)%256;//15us
EA=1;
ET0=1;
PT0=1;
//TR0=1;
}
void send() interrupt 1   //超声波的定时器
{
TH0=(65536-400)/256;//588us
TL0=(65536-400)%256;//
//距离大概为10cm
if(Echo==0)
{
 LED=0;
light=1;//标志,表示到达警告值,需要弹出警告
}
while(Echo==1);//保证出定时器的时候是低电平
TR0=0;
}

void main()

uint sum=0;
uint num=0;
Trig=0;
Echo=0;
    light=0;

 //SerialInit();//串口初始化
 NRF24L01Int();//NRF初始化
  initialize();
 Trig=1;
 DelayUs2x(5);
 Trig=0;
 TR0=1;//启动
 while(1)
 {
 if(num>4)
 {
 Trig=1;
 DelayUs2x(5);
 Trig=0;
 TR0=1;//启动

 }
 if(light==1)
 {
  DisplayLattice();
LED=1;
 } 
 if(k1==160)//这里说明一下,160是DisplayLattice()运行完成的标志
 {
  light=k1=0;
// LED=1;
 }

 NRFSetRXMode();//设置为接收模式
 GetDate();//已添加数据处理转存
 Display();
 num++;//这个累计到4大概为70ms,当大于70ms时发送超声波
 }

--参考方法--
while(Echo==1);//保证出定时器的时候是低电平

没有细看,看了大概流程

LZ最好仿真跟踪一下看是不是卡死在了这些死循环里
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:15:23
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/20198/
本文WWW.DOC100.NET DOC100.NET版权所有。