200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 解决旋转编码抖动的方案

解决旋转编码抖动的方案

时间:2021-06-05 19:44:51

相关推荐

解决旋转编码抖动的方案

编程过程中发现抖动问题很难消除,按论坛上方法折腾了好久,但效果都不是很理想,昨天一个朋友发给我一个方案,试了一下,果然十分有效,所以发上来,供大家参考。

其实这个方案原作者在就已经在别的论坛上发出了,不过原作者用的是单片机,所以大家在网上找的时候可能容易忽略,原程序如下:

void interrupt main_int(void){if(RBIF) {if(int_nu==0 && KEY_A==0) //第一次中断,并且A相是下降沿 {flag=0; if(KEY_B) flag=1;//根据B相,设定标志 int_nu=1;//中断计数 } if(int_nu && KEY_A) //第二次中断,并且A相是上升沿 {if(KEY_B==0 && flag==1) --power_m; if(KEY_B && flag==0) ++power_m; int_nu=0;//中断计数复位,准备下一次 }RBIF=0; }仔细学习了一下,发现作者的方法真的很巧妙,大家用旋转编码器判断方向的时候,经常只用了一个触发沿,作者同时使用了两个,一个下降沿,然后在上升沿再检查一遍,如果两次结果一样,则输出数据,否则放弃。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。