完善资料让更多小伙伴认识你,还能领取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芯片列表中复制。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
454 浏览 0 评论
5793 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3529 浏览 3 评论
1121浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1094浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
872浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
457浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 15:53 , Processed in 0.833198 second(s), Total 82, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
4944