请教:STM32有没有正交编码器计数值有变化就产生中断的设...

2020-01-01 17:35发布

我用定时器中断读STM32正交编码器值来获取电机码盘的当前位置,但是觉得用定时器中断读取编码器计数值不太方便。
请教各位,有没有编码器计数值一有变化就能产生中断的设置?


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
亽亼
1楼-- · 2020-01-01 23:29
 精彩回答 2  元偷偷看……
zaldy30
2楼-- · 2020-01-02 01:01
亽亼 发表于 2017-1-20 20:42
这样你倒不如直接使用外部中断实现就好

这是个办法,我没有想到,去试试。谢谢!
NJ8888
3楼-- · 2020-01-02 05:53
本帖最后由 NJ8888 于 2017-1-20 21:56 编辑

我一直想找32位计数宽度的正交编码器,好像还是没有。以前(当前我想还是)做的时候只有16位,为了查溢出,开了定时器,定时间隔设置原则是按最快正交计数频率计数到20000个数字需要的时间,这样查找能知道数据有没溢出以及加数溢出还是减数溢出。没必要对每个脉冲中断读取,里面计数自动的,如果想设定计数数值(旋转定位)可以预置差值(注意考虑溢出的问题)这样到了计数值会中断,但一般会有过冲,可以这样处理:到点开启定时比较短的中断,动态控制双极性pwm在定位点附近震荡若干停下了关闭定时中断。
huangqi412
4楼-- · 2020-01-02 07:16
zaldy30 发表于 2017-1-20 21:43
这是个办法,我没有想到,去试试。谢谢!

跟速度有关  速度低当然外中断  速度快 别的事情又多估计得fpga
Error.Dan
5楼-- · 2020-01-02 12:01
STM32可以用TIM的比较器做,编码器模式本质上是外部时钟,其他模块也是一样工作的,中断里面设置比较器的值,比如设置两个比较器的值分别为当前值正负1并使能比较器中断,那么往任何方向来一个脉冲都会进一次中断。
实际上,本来这种用法就是用来做行程控制的,类似于软极限的功能,到点进中断处理。

一周热门 更多>