编码器怎么调校?

2019-08-14 05:02发布

   key3flag=key3;key4flag=key4; //key3,key4为编码器两个开关,key3flag和key4flag为存储上一状态

        if(key3!=key3flag||key4!=key4flag)  //发现编码器转动,
{
        if(key3==0&&key4flag==1||key4==1&&key4flag==0)    //向右旋转电平变化的规律
                {
                num++;
                }
else
        {
                num--;         
        }
}
key3flag=key3;key4flag=key4;  //记住旋转之后状态

现在是情况是,向左或向右转动一下,都是走3个数,回一个数,
相当于每次加了2或减了2,
请问要怎么优化一下呢?
要达到每次只走一个数。。。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
旺仔奶豆
1楼-- · 2019-08-14 07:51
额  你是通过IO口状态来判断编码器动没动?不是应该用外部中断吗?编码器一个脉冲应该是一个完整的周期,所以判断电平肯定会抓到两次变化,直接判断边沿不行吗?没用过编码器,只是根据理解说一下,说错勿怪

一周热门 更多>