OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2755|回复: 1

多任务的ucosii使用超声波hc-sr04测距的问题

[复制链接]

16

主题

45

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2016-9-9
在线时间
91 小时
发表于 2016-12-7 16:44:33 | 显示全部楼层 |阅读模式
5金钱
本帖最后由 xmlhttp 于 2016-12-7 16:54 编辑

使用超声波测距,只有一个任务是没有问题的,但是有多个任务时运行一段时间程序会卡死。请问是什么原因?

测距原理网上一大堆:向TRIG脚输入至少10us的触发信号,该模块内部将发出 8 个 40kHz 周期电平并检测回波。一旦检测到有回波信号则ECHO输出高电平回响信号。回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收到的回响信号时间间隔可以计算得到距离。

我个人觉得是因为ucos中断引起的,例如发出声波后回波没回来的情况下被中断,中断时间内测距完成了,后面的死循环就没办法执行了。
[mw_shl_code=applescript,true]Trgger=1;
delay_us(20);
Trgger=0;               
while(ECHO == 0);
TIM_Cmd(TIM5, ENABLE);
while(ECHO == 1);
TIM_Cmd(TIM5, DISABLE);[/mw_shl_code]

所以我在里面加了个禁止中断,但是里面又有一个定时器会导致计时不准确,这个要怎么弄? 下面是项目
UCOSII.zip (4.93 MB, 下载次数: 396)

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165226
金钱
165226
注册时间
2010-12-1
在线时间
2107 小时
发表于 2016-12-8 21:44:25 | 显示全部楼层
估计是打断了你测距任务的计算过程。。。尤其是时间统计什么的,自己分析下代码吧。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-1 22:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表