求用普通I/O口驱动EC11编码器的程序。

2019-08-17 04:15发布

求用普通I/O口驱动EC11编码器的程序。用定时器的太复杂了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
rjx007
2019-08-17 22:18
本帖最后由 rjx007 于 2017-7-3 15:41 编辑

试了下面的程序,可以用,但是正反转数值都是加,不能减,不知何故?请求帮助。用定时器的觉得太复杂,新手不完全弄的懂。
#define ROTATE_A  PAin(2)
#define ROTATE_B  PAin(3)
s16 DATA=0;

void EXTI2_IRQHandler(void)
{
  if(EXTI_GetITStatus(EXTI_Line2) != RESET)
  {
   delay_us(500);//消抖
    if(ROTATE_A!=ROTATE_B)
     {
        DATA++;   
     }
        else DATA--;
    EXTI_ClearITPendingBit(EXTI_Line2);
  }
}

一周热门 更多>