完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在研制一种开源的超声波风速计(风速传感器),并试图尽可能精确地测量输入超声波的相位。为此,我使用PIC18与内部模拟比较器,我需要读取timer1 TMR1值,只要比较器位设置。为了控制计时,我在汇编程序中做。我所有的最精确的算法是这样的:#definedCOUTCM1CON0,6ZCD:BTFSS COUT;在循环到ZCD时花费一个周期;在TMR1L,W...movf TMR1H中花费2个周期,WI发现这个循环方法比使用中断更快,然而,测量的精度仍然是3个指令cyc。女同性恋。示例:对于16MHz晶体,1周期=250ns,并且测量的时间是这些数字之一:1000ns、1750ns、2500ns、3250ns、4000ns……)。我没有找到任何更快的方法来读取TMR1值,只要设置了CUT位。“滞后”并不重要(我可以从结果中减去已知数量的周期),只是精度是关键的。我的另一个想法是使用Timer1门并将其连接到比较器,这是我的PIC的一个很好的特性。由于测量是由硬件完成的,所以这样会给我甚至小于1个周期的精度,但是它还有其他的缺点(一旦Timer1停止,我就不能测量下一个过零点)。您认为可以将精度从三个周期提高到1-2个周期吗?
|
|
相关推荐
6个回答
|
|
使用完全适合这种任务的输入捕获模块。如果你的PIC没有一个-首先选择合适的PIC。
|
|
|
|
嗨,安迪,对于这种应用程序,我不会花时间在汇编程序中完成它。你用给出的数字得到的分辨率是34厘米……。标记上有非常好的芯片,可以用更高的分辨率为你做计数工作:TDC502(MSC)、MAX35101(Maxim)、TDC1000(TI)、TDC-GP2x(Acam)……。这些芯片中的大多数还有超声波驱动器芯片。
|
|
|
|
谢谢,我记不起我为什么不使用捕捉模式,我必须尝试一下。)我想我需要两个更多的引脚物理连接比较器输出引脚到CPCX引脚。
|
|
|
|
我的风速计已经用PIC18和汇编程序工作得很好,我只是想提高精度。超声波波长为25微秒。250ns的一个指令周期等于波长的1/100。如果我的测量精度低于一个周期(波长的1/100),它将可比高端的商业模型,只是便宜很多。所以我想知道,我能否用同样的硬件,只是一个更智能的代码。
|
|
|
|
TDC1000不做任何计数工作。TDC7200就行了。
|
|
|
|
嗨,MBedder,没错,你说得对!TDC100是TDC7200的前端,错误地从TDC/TOF芯片列表中复制。
|
|
|
|
只有小组成员才能发言,加入小组>>
4779 浏览 9 评论
1815 浏览 8 评论
1734 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
2941 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2043 浏览 5 评论
423浏览 1评论
1101浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
345浏览 0评论
253浏览 0评论
LAN9252使用SQI通信,进行数字复位后读BYTE_TEST异常
1751浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-3-29 18:33 , Processed in 1.302265 second(s), Total 80, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 深圳华秋电子有限公司
电子发烧友 (电路图) 粤公网安备 44030402000349 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号