完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
您好,我正在尝试创建一个精确的毫秒秒表,它记录外部触发器的时序。我希望能够记录长达数小时的样品,但准确地将秒表计时到毫秒。
目前,我觉得我的柜台(见附件)没有准确记录。 为了测试,我的项目有一个内部的1S PWM,当在一个范围内测量是相当准确的。 这个PWM触发一个中断,它读取我的计数器(在1kHz时钟上计数)。主循环然后将这个计数号打印到我的LCD,以及与先前的读取的差异。我尽可能少地在中断火和反读之间工作。 问题是,当我把每一秒的读数打印到屏幕上时,我总是得到993个数的差值,而不是我预期的1000个数。 有谁能提供一些关于如何提高秒表计数器准确度的建议? CyrPjJava.CaseVo1.0Zip 668.2 K |
|
相关推荐
9个回答
|
|
使用计数器的捕获特性。它允许硬件信号在FIFO 8-捕获寄存器中存储当前计数器值。然后,当你在计数器上配置计数器重置时,你就完成了:
|
|
|
|
谢谢您。
我现在已经尝试了捕获寄存器部分,但是差异仍然是993。 不过,现在我还有一个问题。我使用1KHz的信号到我的PWM,它产生一个1s信号,但是根据这个模块,它需要992个周期来创建1s。这不应该是1s周期的1000吗?我误解了PWM还是时钟本身? |
|
|
|
|
|
|
|
这就是问题所在。谢谢您。
|
|
|
|
|
|
|
|
好的,我有一个新的问题。
我使用比较器上的外部信号(模拟高阻抗引脚)作为输入到我的计数器捕获,它被设置为捕捉在任何一个边缘。 我知道一个事实,我的模拟信号分别需要28800毫秒和10分钟,以切换高/低的边缘应该在那些时间间隔。然而,目前我的LCD仍然显示两个信号的505ms(从我的CyTrice(500))。 我的LCD应该只显示从AutoNnCopScices()API读取的数字,所以这似乎表明我的捕获FIFO一直在燃烧,但是我可以看到信号保持稳定。还有什么能让我抓到的东西,或者我能用错东西吗? 我的项目是附加的,我感谢任何建议。 秒表,Cyrkk.Soviv02y0.Zip 1.8兆字节 |
|
|
|
|
|
|
|
谢谢您。但是,这并不能解释为什么捕获寄存器中的实际值似乎不断更新。
我已经尝试了由捕获引起的ISR中的反Oracle 1RealStaseRealSub()进行清理,并且根本没有改变数字。我仍然看到来自CyDelay的505ms,而不是我知道的信号2880毫秒。 我已经把我的捕获集设置为两个边沿,比较器每2880毫秒只需要上下移动,所以,我无法理解为什么我从以前的捕获到当前捕获的差异只有505,除非它由于某种原因不断捕获。 谢谢你的帮助。 |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
754个成员聚集在这个小组
加入小组2103 浏览 1 评论
1849 浏览 1 评论
3667 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1784 浏览 6 评论
1534 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
566浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
420浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
435浏览 2评论
381浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
913浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 19:07 , Processed in 1.050430 second(s), Total 62, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号