完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
您好,我正在寻找帮助或建议为特定的计数任务编程PSoC4。我的当前项目是通过捕获在音频信号的一个或多个周期期间出现的1MHz时钟脉冲的数量来建立精确的音频计数器。在低频段,一个周期就足够了,但是在较高的频率下,我需要在许多周期内测量以获得准确的结果(计数为50000或更多)。我使用的是PSOC4的外部晶体以确保精度。因此,我需要两个计数器,一个捕获总计数,一个保持输入周期数的计数。不幸的是,PSoC4没有足够的逻辑资源来实现两个足够长的计数器,加上需要将计数发送给处理器的状态寄存器。因此,我想知道我是否可以利用处理器中的SyBoT定时器和/或嵌套向量中断控制器(NVIC)来直接计算周期数。它实际上需要以最大50kHz的速率捕获脉冲,并且我不确定它是否能够以这种速率处理中断。那么,可以告诉我这是否可行?如果是,我需要一些帮助来编写代码来处理中断,因为这是一个我没有经验的领域。我总是发现,执行类似任务的代码示例是最好的起点,所以如果有人指向我现有的代码示例,这将是理想的。我意识到我总是可以使用一个更大的PSoC部分,但是PSoC4就是我所拥有的,如果可能的话,我愿意坚持下去。非常感谢任何人提供的帮助。
|
|
相关推荐
24个回答
|
|
“但我很困惑为什么2是偏移,”
您已经将SysTykBasic的值作为指向32位值的指针。每次增加它(或加上一个),它将指向下一个32位的值,比前一个地址多四个字节。如果你要取第二个32位值超过你的指针(32位值),那么2是正确的偏移量。编译器将乘以它所指向的数据的大小来生成8。 有道理? |
|
|
|
你好,
我刚刚通过“HLI”下载了FRIQ计数器。这是我项目的一个很好的起点。此外,我不知道LogISIM,所以也下载了。这似乎是一个有用的和易于使用的模拟器。直到现在,我已经使用了Mutor的免费版本MODESIM,但这实际上是为FPGA设计而设计的,因此不太适合通用逻辑模拟。 非常感谢你为我张贴这些链接。 问候,肯。 |
|
|
|
|
|
|
|
作为上述作者,我应该补充一些修正:
该文章中的PSoC5/PSoC3实现不是互惠计数器,而是一个简单的门控计数器(为此,早先的文章显示了PSoC4实现,所以OP可能想看看)介绍Otoh是关于一个倒数计数器,这是我在CPLD中实现的。我在PSOC5的某个地方实现了一个倒数频率计,因为这是我PSOC系列中的下一个步骤。但我从来没有来写那部分: 此外,在PSOC4中很难适应这种情况。只有两个16位计数器的UDB足够。我们可以使用固定的功能块,但我怀疑它们可以很容易地链接到两个32位计数器。也许我可以在未来的某个地方… |
|
|
|
再次问好,Thanks HLi为您的校正说明,但没有问题,我现在回到我的频率计项目轨道。
顺便说一下,LogiSIM是简单和易于使用的,但有一个主要缺点——没有内置波形查看器。现在剩下的回答是一个稍微不同的话题,但仍然与脉宽/频率测量有关。所以我想知道我是否应该开始一个新的线程?我将把我的问题放在这里,如下:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------将蜱的数量设置为最大值,例如蜱虫=0x00 FFFFFF。在上升的信号边缘,使用中断来启用带有API SysTykSyFig(TIKS)的SyTalm计时器。在下一个上升信号边缘,使用另一个中断来读取SyCUL电流值寄存器。与最大值的区别将是一个信号脉冲长度的精确测量。(假设一个精确的外部XTAL)但是,我的问题是:如何读取SyCurt电流值寄存器?我已经阅读了知识库文章“使用PSoC®4中的SyTalm计时器-KBA91374”。它列出了SyTalm计时器寄存器,包括当前值寄存器,并说“……在PSoC 4族中,这些寄存器可以使用指向COREYCMO.H文件中定义的结构的指针来访问。”这意味着我建议可以做什么,但是我如何着手编写代码呢?我已经看过了CaleE.CM0.H文件,但它远远超出了我对C代码的理解。我也曾在Oracle M0用户指南中查看过,但这对代码新手同样没有帮助。你能提供建议吗?多谢。 |
|
|
|
只有小组成员才能发言,加入小组>>
754个成员聚集在这个小组
加入小组2110 浏览 1 评论
1858 浏览 1 评论
3673 浏览 1 评论
请问可以直接使用来自FX2LP固件的端点向主机FIFO写入数据吗?
1791 浏览 6 评论
1540 浏览 1 评论
CY8C4025LQI在程序中调用函数,通过示波器观察SCL引脚波形,无法将pin0.4(SCL)下拉是什么原因导致?
576浏览 2评论
CYUSB3065焊接到USB3.0 TYPE-B口的焊接触点就无法使用是什么原因导致的?
430浏览 2评论
CX3连接Camera修改分辨率之后,播放器无法播出camera的画面怎么解决?
440浏览 2评论
390浏览 2评论
使用stm32+cyw43438 wifi驱动whd,WHD驱动固件加载失败的原因?
956浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-28 13:54 , Processed in 1.059394 second(s), Total 82, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号