原创 两位增量式旋转编码器的C语言实现(一)

2020-1-26 11:48 3385 12 3 分类: MCU/ 嵌入式 文集: C语言
uint16_t g_RotateEncoderOutput;
/***************************************************************************
*函数描述:两位增量式相对旋转编码器状态处理函数
*输入变量:uint8_t state,滤波后的编码器信号
*输出变量:g_RtoteEncoderOutput
***************************************************************************/
void RotateEncoder_StateProcess(uint8_t state)
{
static uint8_t prev_state = 0;
if(prev_state == 0)
{
if(state == 1)
{
g_RotateEncoderOutput++;
}
else if(state == 2)
{
g_RotateEncoderOutput--;
}
}
else  if(prev_state == 1)
{
if(state == 3)
{
g_RotateEncoderOutput++;
}
else if(state == 0)
{
g_RotateEncoderOutput--;
}
}
else  if(prev_state == 3)
{
if(state == 2)
{
g_RotateEncoderOutput++;
}
else if(state == 1)
{
g_RotateEncoderOutput--;
}
}
else  if(prev_state == 2)
{
if(state == 0)
{
g_RotateEncoderOutput++;
}
else if(state == 3)
{
g_RotateEncoderOutput--;
}
}
prev_state = state;
}

作者: Qeecoda, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-1099225.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
12
关闭 站长推荐上一条 /3 下一条