【雅特力开发板 AT32F421 测评】5、研究下EC11编码器
[复制链接]
本帖最后由 ddllxxrr 于 2021-4-17 21:53 编辑
EC11我第一次看到是在淘宝,当时我就呆住了,因为这正是我要找的可以解决掉按键问题的最理想器件。
网上有介绍,在这不多此一举地介绍了:https://blog.csdn.net/maknul/article/details/102489364
而我这个人比较赖,能不编程就不编程,有代码最好。于是我就在渡娘上猛找,也找到了几个。但都不理想,最后我自己搞了。
我觉得靠电平判断是不可靠的。于是我在一个星期的摸索之后,有了精屁的发现。我觉得还是得回到上升沿触发。
原理就下上篇链接中的那个图,别的都不用看:
上图作者已经用红笔画出了。而我碰到了几个钉子后,就是让这个上升沿提醒了。思路也有了,就是A上升沿的同时马上读B如是高电平就是反转同时减一。
如果是低电平就正转同时加一。
这么一个器件就屏这基本就搞订了。
由于本人十分懒,我就直接把A插到了A0管脚,把B接到了A9管脚,利用外部中断例程搞定。
在中断例程中打断点:
void EXTI1_0_IRQHandler(void)
{
if(EXTI_GetIntStatus(EXTI_Line0) != RESET)
{
AT32_LEDn_Toggle(LED3); ///<Toggle LED3
EXTI_ClearIntPendingBit(EXTI_Line0); ///<Clear the EXTI line 0 pending bit
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pins_9)==1)
i++;
else if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pins_9)==0)
i--;
}
}
忙一周的东东,最后就这四行代码搞定。同时也搞定了EC11。
|