标题: 分享一个鼠标旋转编码器的代码,EC11应该是一样的 [打印本页]

作者: 罗文杰    时间: 2021-1-25 22:19
标题: 分享一个鼠标旋转编码器的代码,EC11应该是一样的
#define WHEEL_DATA_A_GPIO        P10             //输入上拉
#define WHEEL_DATA_B_GPIO        P11             //输入上拉
u8 Wheel;                              //旋转的脉冲数,读取后清0
void mouse_Wheel_Check(void)             //放在主循环即可
{
        static u8 wheelStateLast = 0;
        static u8 wheelStateBefore = 0;
        static u8 wheelStateNow = 0;
        u8 result = 0;
        u8 tempState = (WHEEL_DATA_A_GPIO << 1)|WHEEL_DATA_B_GPIO;
        if(wheelStateNow == tempState)
        {
                return;
        }
        wheelStateLast = wheelStateBefore;
        wheelStateBefore = wheelStateNow;
        wheelStateNow = tempState;
        result = (wheelStateNow << 4) |(wheelStateBefore << 2) |wheelStateLast;
        switch(result)
        {
                case 0x38:
                case 0x07:
                        Wheel--;
                break;
                case 0x34:
                case 0x0b:
                        Wheel++;
                break;
                default:
                break;
        }
}



作者: qw2229    时间: 2021-1-26 08:58
学习了。正想利用鼠标。
作者: chaoge131    时间: 2021-3-11 11:29
这样写,有做抖动处理吗




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1