|

楼主 |
发表于 2012-8-3 09:59:38
|
显示全部楼层
liuviking 发表于 2012-8-2 21:27 
今天专门把代码发给了驱动组的兄弟,他们分析后说是这样的:原来的代码,如果在50cm厘米范围内,那么getD ...
谢谢liuviking的关注!看了你的反馈,基本理解原代码的设计思路,我再把我的情况说一下。
我一开始是没有修改代码,直接使用你在论坛上提供的固件,把驱动板通过TTL2USB小板连接到电脑上进行测试,串口助手接收到的信息一直是ff 03 00 00 ff。
后来获得了右手谈情提供的固件,据他说超声波测距代码部分没有修改过,但修改过其他地方。拿他的固件刷上去之后进行测试,结果情况还是一样,一直返回ff 03 00 00 ff。
再之后,我自己尝试修改代码:
主要就是把 Get_Distance(void)函数中的
while(TH1<250 && Echo!= 1);
if(TH1 <= 250)
这两句中的常量250修改为2000(根据你的说明,这个常量应该就是用来规避计时器中断服务程序的吧?)
另外把timer.c中的Timer_1(void) interrupt 3函数内部的代码注释掉了。
如此,我测试中可以得到准确稳定的返回值。
按照你们的设计思路,按说应该没有问题,但不知为什么会这样? |
|