7398|11

117

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

SFR05超声波测距,用外部中断方式,测距不准而且有抖动变化大,希望大家看看 [复制链接]

 
本帖最后由 赵怡彬 于 2017-4-18 18:19 编辑

我没有用输入捕获,也不是在while循环里判断,而是用外部中断我定时器配置1us计数频率,然后再中断函数里计算距离,但是有点问题,首先数据不准确,而且数据抖动很大,不知道啥原因,但从原理上来说我这样检测应该是没问题的呀,而且反而比while循环检测好。网上好多要么是定时器输入捕获,要么是while循环判断,没有用外部引脚中断的,我觉得这也是一种好方法,希望大家帮我看看,哪里有问题
此帖出自stm32/stm8论坛

最新回复

本帖最后由 ljmf5 于 2017-6-4 14:08 编辑 请问楼主问题解决了吗 我现在也是数据不稳定,模块在振动时,数据完全不对,不知道是不是模块整体的震动导致接收头角度发生变化,或者收到了多次反射的回波   详情 回复 发表于 2017-6-4 14:07
点赞 关注(1)
 

回复
举报

4005

帖子

0

TA的资源

版主

沙发
 
这么干看很难看出问题,感觉你time的计数会溢吧,大于65535us就测不对了。

原理上说还是用定时器捕获的比较合理,管脚中断到中断处理有时间差,捕获方法没有这个问题。

你这样用一个信号源实验一下看对不对
此帖出自stm32/stm8论坛

点评

而且用51也是靠定时器计数来得到的,我在51上可以的,而且感觉还是比较准确的测距,就是想用51这种思维方式移植到32上  详情 回复 发表于 2017-4-19 12:50
0.065毫秒*声速340差不多22米肯定是够了,这个有效检测距离也才4.5米,而且我试验的时候差不多10cm左右,也还是会跳动。  详情 回复 发表于 2017-4-19 12:48
 
 

回复

1万

帖子

140

TA的资源

版主

板凳
 
中断法可用,但定时器编程要注意。回波时间如果大于定时器周期,必须借助寄存器用累加法扩展计时时间。另外,距离计算程序不宜全部放在中断中进行,中断程序应尽量精简。
此帖出自stm32/stm8论坛

点评

我试了一下,如果只是把定时器数据传出来,在串口上看也会有波动,有时候个位数跳变到百位数,这样可以看出,我定时器应该配置的没有问题了,只是不知道外部中断有问题,还是程序处理那里有问题  详情 回复 发表于 2017-4-19 12:53
 
个人签名上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
 

回复

117

帖子

0

TA的资源

一粒金砂(中级)

4
 
huo_hu 发表于 2017-4-18 19:35
这么干看很难看出问题,感觉你time的计数会溢吧,大于65535us就测不对了。

原理上说还是用定时器捕获的 ...

0.065毫秒*声速340差不多22米肯定是够了,这个有效检测距离也才4.5米,而且我试验的时候差不多10cm左右,也还是会跳动。
此帖出自stm32/stm8论坛
 
 
 

回复

117

帖子

0

TA的资源

一粒金砂(中级)

5
 
huo_hu 发表于 2017-4-18 19:35
这么干看很难看出问题,感觉你time的计数会溢吧,大于65535us就测不对了。

原理上说还是用定时器捕获的 ...

而且用51也是靠定时器计数来得到的,我在51上可以的,而且感觉还是比较准确的测距,就是想用51这种思维方式移植到32上
此帖出自stm32/stm8论坛
 
 
 

回复

117

帖子

0

TA的资源

一粒金砂(中级)

6
 
chunyang 发表于 2017-4-18 20:48
中断法可用,但定时器编程要注意。回波时间如果大于定时器周期,必须借助寄存器用累加法扩展计时时间。另外 ...

我试了一下,如果只是把定时器数据传出来,在串口上看也会有波动,有时候个位数跳变到百位数,这样可以看出,我定时器应该配置的没有问题了,只是不知道外部中断有问题,还是程序处理那里有问题
此帖出自stm32/stm8论坛

点评

用示波器看看输入信号即可获知,软件问题的可能性大。  详情 回复 发表于 2017-4-19 14:10
 
 
 

回复

1万

帖子

140

TA的资源

版主

7
 
赵怡彬 发表于 2017-4-19 12:53
我试了一下,如果只是把定时器数据传出来,在串口上看也会有波动,有时候个位数跳变到百位数,这样可以看 ...

用示波器看看输入信号即可获知,软件问题的可能性大。
此帖出自stm32/stm8论坛
 
个人签名上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
 
 

回复

4005

帖子

0

TA的资源

版主

8
 
也可能是信号抖动
此帖出自stm32/stm8论坛

点评

但是用51就很稳定,能不能帮我看看是不是程序框架有问题还是配置有问题  详情 回复 发表于 2017-4-20 15:32
 
 
 

回复

305

帖子

0

TA的资源

一粒金砂(高级)

9
 
程序进入定时器中断需要一定时间,中断处理也需要时间。信号是不是有抖动?这都是可能的问题。用单片机中断做超声信号捕获要求单片机主频够高,测距不能太短。
此帖出自stm32/stm8论坛

点评

我没有用定时器中断  详情 回复 发表于 2017-4-20 15:31
 
 
 

回复

117

帖子

0

TA的资源

一粒金砂(中级)

10
 
dlcnight 发表于 2017-4-20 11:45
程序进入定时器中断需要一定时间,中断处理也需要时间。信号是不是有抖动?这都是可能的问题。用单片机中断 ...

我没有用定时器中断
此帖出自stm32/stm8论坛
 
 
 

回复

117

帖子

0

TA的资源

一粒金砂(中级)

11
 
huo_hu 发表于 2017-4-19 14:34
也可能是信号抖动

但是用51就很稳定,能不能帮我看看是不是程序框架有问题还是配置有问题
此帖出自stm32/stm8论坛
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

12
 
本帖最后由 ljmf5 于 2017-6-4 14:08 编辑

请问楼主问题解决了吗
我现在也是数据不稳定,模块在振动时,数据完全不对,不知道是不是模块整体的震动导致接收头角度发生变化,或者收到了多次反射的回波
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表