分享增量编码器程序

2019-07-21 04:48发布

本帖最后由 lx911gt 于 2016-5-31 13:55 编辑


昨天下班前看到几个小伙伴在搞正交编码器??

之前我也摆弄过,但是没咋用过,正常识别没问题,原理就不讲了,坛子里有,百度也能搜

如果是音响编码器的话不要直接接入单片机,要么加个正交识别模块,要么自己随便整个整形的电路,因为音响编码器那玩是开关量,抖动太严重,如果靠软件滤波的话做起来其实挺逗比的,而且效果很可能并不理想

音响编码器我就用了两个三极管,电容电阻啥的整了下形就OK了

程序分两种,一个是用定时器的编码器模式,另一个是外部中断方式的

其实不建议用中断方式,原因我想大家都知道的,如果非要用外部中断的方式的话,还是建议看看能不能利用上DMA来减少中断次数,这个我没做,但是应该不是那么难吧




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
46条回答
bruellyyang
1楼-- · 2019-07-23 14:29
lx911gt 发表于 2016-5-31 10:12
唉?附件怎么没上传上去????

楼主您好,关于外部中断的方式有几个疑问想请教下。
第一个是:外部中断实现的时候,是在一个脚上检测有没有中断信号,但是只在下降沿的时候触发中断,那么上升沿的时候就没有中断,导致旋转编码器在旋转的时候总会出现间隔的情况?
第二个是:只有一路检测怎么确定是向上计数还是向下计数?
第三个是外部中断不需要中断函数吗。
谢谢
lx911gt
2楼-- · 2019-07-23 14:45
bruellyyang 发表于 2016-8-6 20:34
楼主您好,关于外部中断的方式有几个疑问想请教下。
第一个是:外部中断实现的时候,是在一个脚上检测有 ...

1,没太看明白,大概意思理解了,边沿触发外部中断看你怎么设置了,可以选择上升沿触发也可以下降沿触发,记得是不是还有种上升下降都触发来着...总之一个边沿触发正常来说足够了,不会出现间隔的问题,如果出现检查下代码
2、编码器有AB相,相位差90度,用这个判断,比如A来触发中断,A上升沿时进入中断这时候检测B的状态,B为高定为一个方向,B为低为另一个方向
3、所有中断都有自己的中断函数
JueSe
3楼-- · 2019-07-23 20:41
lx911gt 发表于 2016-6-1 13:18
哎呀呀,为啥我发帖总沉...一定是我的姿势不对,只有下载没有顶贴的..............

      顶
沉寂之森
4楼-- · 2019-07-23 23:15
顶顶顶
kepuple
5楼-- · 2019-07-24 04:52
 精彩回答 2  元偷偷看……
kepuple
6楼-- · 2019-07-24 09:01
谢谢楼主,正在学编码器这块1

一周热门 更多>