打印

ec16旋转编码器正反旋转判断精确问题

[复制链接]
2136|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 cl234583745 于 2015-1-23 11:11 编辑

电路就是ABK引脚分别接上拉10k电阻vcc,接单片机io口。(不知道是否要加电容接地?)
1.程序如下:没有大的问题,但精度不够总是误判(另一个单片机处理的结果要好的多,区别就是另外的单片机总线时钟慢一些)。后来加了旋转后延时500ms才能反向的处理,精确了一些。但结果还不令我满意。怎么做能达到100%精确呢?不用中断没有那么多引脚,就查询。
2.逻辑分析仪截图如下:为啥有时候长时间为低电平呢?还有跳变的地方很多反复跳了多次后才改变的。
3.还有看到论坛有说出加d触发器。有用吗?能达到100%吗
#define BM_A   PTDD_PTDD1#define BM_B   PTDD_PTDD0
#define BM_OK  PTED_PTED7
//按键状态**
uchar BM_A_B;
uchar BM_B_B;
//正向
for(;;)
  {
        if(BM_A)  
                            {
                                    if(BM_A_B)
                                    {
                                            if(BM_B)
                                            {      
                                                  //正向
                                            }        
                                    }
                                    BM_A_B=0;        
                            }
                            else
                                  BM_A_B=1;
//反向
          if(BM_B)
                              {
                                      if(BM_B_B)
                                      {
                                              if(BM_A)
                                              {     
                                                   
                                                    //反向
                                              }        
                                      }
                                      BM_B_B=0;        
                              }
                              else BM_B_B=1;

}

screenshot.JPG (1 MB )

screenshot.JPG

screenshot2.JPG (1.01 MB )

screenshot2.JPG

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

99

主题

644

帖子

1

粉丝