【嵌入式】编码器计数倍频,机械一格与电气计数

EC11K1525413-EC11K1525413编码器

看到的是:

  • 顺时针拧一下
  • encoder_cnt 不是 +1
  • 而是经常 +2

已经 碰到"编码器计数倍频"这个知识点了。


一、为什么不是加 1,而是加 2

编码器"拧一下"的机械手感一格,不一定等于定时器计数器只加 1。

因为这里有两个概念,容易混:

1. 机械一格

  • "咔哒"一下
  • "卡点"一下

这是机械刻度

2. 电气计数

这是 A/B 相在这一格过程中,产生了多少次有效边沿,被 TIM3 记了多少次数。

这是电气分辨率

这两个不一定一一对应。


二、为什么会出现 +2

编码器有两路信号:

  • A 相
  • B 相

拧一格时,A/B 相会经历状态变化。

比如某种方向可能是:

  • 00 -> 01 -> 11 -> 10 -> 00

这里面其实发生了多个边沿变化

而定时器编码器模式会根据配置,按边沿来计数。

所以:

  • 有的编码器一格可能记 1
  • 有的可能记 2
  • 有的可能记 4

三、为什么这次是 +2

如果代码里配置的是:

c 复制代码
sConfig.IC1Polarity  = TIM_ICPOLARITY_RISING;
sConfig.IC2Polarity  = TIM_ICPOLARITY_RISING;
sConfig.EncoderMode = TIM_ENCODERMODE_TI12;

这个组合可以这样理解:

  • CH1、CH2 两路都参与方向判断
  • 但你当前是按上升沿在计

所以最终你看到的有效计数,可能是每机械一格对应 2 个有效计数

如果换一种采样方式、换别的芯片实现细节、或者编码器本体触点结构不同,有时会看到 1、2、4 都不奇怪。


四、怎么理解

定时器 CNT 的单位,不一定是"机械一格",而是"编码器接口配置下的有效计数单位"。

所以:

  • 顺时针一格 ≈ +2
  • 逆时针一格 ≈ -2

后面写功能时,可以直接拿这个参数用:【目前环境下】

  • 一格 = 2 count
相关推荐
FreakStudio1 天前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
通信小呆呆6 天前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
H__Rick6 天前
自动对焦学习-3
人工智能·学习·计算机视觉
✎ ﹏梦醒͜ღ҉繁华落℘6 天前
单片机基础知识---stm32单片机的优先级
stm32·单片机·mongodb
Daisy Lee6 天前
量化学习-第1章-什么是量化金融
学习·金融·datawhale
Alsn866 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
YM52e6 天前
买菜计算器小应用 - HarmonyOS ArkUI 开发实战-PC版本
学习·华为·harmonyos·鸿蒙·鸿蒙系统
小雨下雨的雨6 天前
HarmonyOS ArkUI训练营入门-组件掌握系列-Animation 动画效果实现-PC版本
学习·华为·harmonyos·鸿蒙
u152109648496 天前
S.S.Audio PRO A2音频隔离器
嵌入式硬件·音视频·实时音视频·视频编解码·视频
zd8451015006 天前
RS485 总线详解
单片机·嵌入式硬件