counter - PSoC 5,作为编码器的 Counter UpCnt 和 DwnCnt 模式
问题描述
我是 Stack Overflow 社区的新手,希望您能帮我解决这个问题。我正在尝试在不使用中断的情况下读取编码器。我想到的解决方案是使用一个计数器,使用 PSoC,可以通过 UpCnt 和 DwnCnt 模式进行选择。Pin_encoder_B 和 Pin_encoder_A 是我的两条信号线,根据我的编码器的旋转而上下移动。我使用 Pin_encoder_A 作为时钟,当它出现时,我查看 Pin_encoder_B,如果 Pin_encoder_B 和 Pin_encoder_A 相等或不相等,我知道我的编码器是顺时针还是逆时针旋转,我应该能够正确地减少或增加我的计数器。除了函数 Counter_ReadCounter(); 之外,我几乎尝试了所有方法;(在我的代码 Counter_Logic_ReadCounter();) 中总是返回周期值。我无法理解如何解决它。有人可以告诉我我的代码有什么问题吗?谢谢你们。
int main(void)
{
CyGlobalIntEnable;
UART_Start();
Counter_Logic_Start();
Timer_Start();
isr_sin_StartEx(Custom_ISR_SIN);
Pos_senza_isr=0;
for(;;)
{
}
}
#include "InterruptRoutine.h"
#include "project.h"
CY_ISR(Custom_ISR_SIN){
Timer_ReadStatusRegister();
Pos_senza_isr=Counter_Logic_ReadCounter();
sprintf(DataBuffer, "%ld\r\n", Pos_senza_isr);
UART_PutString(DataBuffer);
}
在这里输入图片描述
解决方案
推荐阅读
- vba - 将数据从多个工作簿复制到单个工作簿工作表明智
- python - 如何使用 nltk 或 python 删除或更正 excel 文件或文本文件中的拼写错误
- business-intelligence - 具有收入排序功能的总部位置彭博终端筛选器
- android - 如何将Web api中的数据填充到android中的自定义listView中
- php - 无法从 Facebook 登录中检索电子邮件
- c++ - 如果类使用虚拟继承,为什么对象大小会增加?
- c# - 我收到 NullReferenceException 错误,但我不知道为什么?
- c++ - C++ 环境/IDE 避免多次读取大数据集
- javascript - 动态填充复选框并动态设置其选中状态
- vagrant - Vagrant 无法在 macOS High Sierra 上的浏览器中访问服务器