|
本帖最后由 caosix2 于 2014-3-27 13:01 编辑
其实 超声波 本身就存在一定的 随机误差,因为你不可能
保证 发射超声波 与地面 垂直,且地面也会有不平、杂物。
使用 A0 模拟量 接口,应该说:能满足“精确度”要求了,
*****************************************
俺:1无精力、2无时间、3无水平去修改 APM 的原代码。
所以:这年头用硬件去适配人家现成的软件,是高效率的。
做硬件其实还容易些,而且也便宜。 。
*****************************************
顺便:给做新版 超声波 适配模块,单片机 50毫秒 中断程序
提个建议:别老是 走 俗套 —— 应该这样设计这个 中断程序
为了确保:50毫秒尽可能的 准确:
进入中断程序(堆栈操作结束)之后,第一条用户指令应该是:
1、给50毫秒计时器:重新装载:规定的数值,
2、打开50毫秒计时器,让它开始计时,
3、打开50毫秒计时器的“中断允许”,
4、才是:给 HC-SR04 输出 100uS 脉冲,
5、才是:把 输出寄存器 的数据 换算成 电压去输出。
******************************************
换句话说:只要你的 步骤 4、5 所消耗的时间 小于 48毫秒,
就说明该单片机的运算能力满足要求,否则需要换更Fast的单片机。
走俗套——是把 1、2、3 放到 中断程序的 尾部=不科学。
Fast 的 中文 被 该死的网络过滤 改变成 “***”:岂他妈的 网络过滤死狗。。。
******************************************
如果单片机有 CCP 捕捉模块,那么 主程序 也将更简单,
直接使用 CCP 捕捉模块 去测量 Echo 的时间宽度、就更Easy
使用 捕捉模块 的中断,更科学合理。。。
|
|