这几天再学习EC11编码器,我买到的是一圈20脉冲,5个引脚的,
刚开始用的普通IO连接的旋转编码器,感觉反应太慢了,还会丢步,
网上看到说用中断可以解决这个问题,就写了下面这段程序(只有按键处理部分),用的stc单片机,EC11_A连接外部中断INT0,EC11_B连接普通IO,中断设置成下降沿触发,现在是反转一切正常,正转的时候,程序有时候也会判断为反转,导致正转的时候,num的值一会加1,一会减1,整体下来基本没变化。只有慢慢的正转,才能正常,请问玩过这个编码器的坛友,这是怎么回事呢?编码器AB相硬件接了消痘电路。
void int0() interrupt 0 using 0
{
EX0=0;
if(EC11_A==0)
{
if(EC11_B==0)
{
if(num==20)
num=0;
num++;
}
if(EC11_B==1)
{
if(num ==0)
num=20;
num--;
}
}
EX0=1;
}