Cypress技术william hill官网
直播中

李思昊

7年用户 145经验值
私信 关注
[问答]

为什么我的正交解码器(TCPWM)PSOC4不计数?

你好,
我有一个问题,使TCPWM正交检测器工作。算不上!
过去我使用了一个正交检测器,基于UDB的应用程序没有任何问题,只是在用一个更聪明的资源替换它之后,我似乎无法使它正常工作。
在PSoC创建者中自动生成的API看起来不同,但我只需要Stand()和Read Read()调用…
1。基于TCPWM的解决方案不计数,读取结果总是在0…我做错什么了?2。AsMug我可以让它与其他(更多)API调用一起工作……为什么一个简单的检测器实现替换要求我无论如何都改变API?除了读计数器方法(GETAUTHER())的NeMechange之外,它应该是简单的,这是一个好API的承诺,对吧?
附件显示了示意图,输入(P1(0),P1(1))-&GT过滤器(4US)&GTCPWM QD(X1,A+B =水平,无中断)。
四,二,开始();
囊状的;
(;)
{
SaveTFF(UARTHARTXY缓冲器)“%D”,(Uti16)四十进制(2D)读计数器();
TxStand(UARTHARTXY缓冲器);
TXCHAR(‘R’’);
TXCHAR(′n);
CyDelay(100);
在返回到UDB实现之后,它像预期的那样工作,但是在我的PSoC4(4245)上消耗了很多有价值的资源。我使用最新版本的PSoC创建者,所有更新等。有人以前遇到过这个问题吗?任何帮助都非常欢迎!
//是的,我使用UDB实现,可以在内部移动GLIP过滤器…但是,我需要从A输入无故障信号的其他部分(未示出)的设计…;-)
屏幕截图2014-0708在0843.27.PNG
169.3 K

回帖(5)

李思昊

2019-8-1 10:15:59
附件2,修改后的原理图…
简单地用UDB实例替换TCPWM实例,更改Read Road()方法的名称并重新编译…
屏幕截图2014-0708 090.55.PNG
171.8 K
举报

李思昊

2019-8-1 10:34:37
新的测试台,不需要旋转编码器…我已经习惯在A / B时钟输入的正交编码器创造一些活动,所以解码器现在慢慢清点。
软件现在是一个非常小的常规测试结果通过UART。
int()
{
Char UARTHEXTXY缓冲器〔12〕;
UARTHART START();
四方1x启动();
四,二,开始();
(;)
{
sprintf(uart_tx_buffer,“%d”,(uint16)quaddec_1_readcounter());
TxStand(UARTHARTXY缓冲器);
TXCHAR(“:”);
sprintf(uart_tx_buffer,“%d”,(uint16)quaddec_2_getcounter());
TxStand(UARTHARTXY缓冲器);
TXCHAR('r');txChar(′n);
CyDelay(100);
}
UART终端的结果:

0:103
0:104
0:105
0:106
0:107
举报

张琳

2019-8-1 10:51:28
你好,
看你的截图,去毛刺过滤器是不需要的,和时钟频率可以减少从250kHz至200Hz。
看看这个视频教程:
HTTPS://Vimo.COM/639 8653
奥迪赛1
举报

李思昊

2019-8-1 11:10:13
谢谢你的帮助。
但它不能解决QD(TCPWM)不计数的原因,QD(UDB)似乎是可行的,最新的测试台甚至没有任何旋转编码器,所以输入信号是无毛刺的;
仍然希望有人试图让它发挥作用,目前我只是不明白我做错了什么…
屏幕截图2014-0710在0.223.12PNG
45.3 K
举报

更多回帖

发帖
×
20
完善资料,
赚取积分