[开发工具] 【华大测评】八、正交编码

[复制链接]
4348|15
 楼主| lisingch 发表于 2020-7-7 16:49 | 显示全部楼层 |阅读模式
      之前在另外一品牌微控制器上实现了EC11旋转编码器的正交解码,这次实验依然使用的EC11旋转编码器模块利用HC32F460PETB的TIMERA模块实现对其解码,同时利用串口将EC11旋转的正、反计数值送至PC端通过串口助手软件进行显示。

一、实验资源
1、HC32F460-EVB;
2、Keil V5.28;
3、ST-LINK调试器;
4、EC11模块;
5、串口调试助手

二、资源简介

      HC32F460PETB的TIMERA是一个通用16位计数宽度、8路PWM输出的计时器。支持向上、向上向下计数模式,支持2相、3相编码计数。本次试验即使用其2相编码计数功能。
2020-07-07_161418.png
2020-07-07_161509.png
2020-07-07_161525.png

      正交编码计数只是TIMERA众多功能中的一个小功能,当然在高级定时器TIMER6中也具有此功能。这里使用了2相正交编码计数功能。
2020-07-07_162157.png


      正交编码计数属于相位差计数,根据AIN和BIN的相位关系进行计数,可以实现1倍、2倍及4倍计数:
2020-07-07_162924.png
2020-07-07_162949.png

      下面是EC11模块资料中的截图,从中不难看出对于它的解码使用2相相位差计数非常匹配,根据一般的使用需求计数模式采用单倍计数即可。
2020-07-07_163656.png

三、代码实现
      实验代码参考了DEMO,通过阅读手册并结合DEMO对于正交编码的理解非常有益。AIN与BIN的配置使用了DEMO中的原代码,在中断回调函数中增加了计数判断:
  1. static void TimeraUnit1Over_IrqCallback(void)
  2. {
  3.     TIMERA_ClearFlag(TIMERA_UNIT1, TimeraFlagOverflow);
  4.        
  5.         coding_value++;
  6.         if(coding_value > 99)
  7.                 coding_value = 0;
  8.         printf("\r\nCW = %d",coding_value);
  9. }


  10. static void TimeraUnit1Under_IrqCallback(void)
  11. {
  12.     TIMERA_ClearFlag(TIMERA_UNIT1, TimeraFlagUnderflow);
  13.        
  14.         coding_value--;
  15.         if(coding_value < 0)
  16.                 coding_value = 99;
  17.         printf("\r\nCCW = %d",coding_value);
  18. }


四、实验结果
2020-07-07_141154.png

五、实验总结
      TIMERA虽然只是一个通用定时器模块但其功能非常强大,正交编码只是其中的功能之一,下来还要对TIMERA的功能进行深入学习。
2020-07-07_162430.png
chunxulele 发表于 2021-10-12 22:03 | 显示全部楼层
好帖子
chunxulele 发表于 2021-10-12 22:07 | 显示全部楼层
有没有谁用过HC32L136的正交编码器的
豌豆爹 发表于 2021-10-18 16:53 来自手机 | 显示全部楼层
好帖,赞
mickit 发表于 2021-10-18 20:04 | 显示全部楼层
这个用定时器吗?   
mikewalpole 发表于 2021-10-18 20:04 | 显示全部楼层
相位是怎么检测的呢   
robincotton 发表于 2021-10-18 20:05 | 显示全部楼层
这个方向是怎么实现的?         
jackcat 发表于 2021-10-18 20:05 | 显示全部楼层
用普通单片机怎么实现的  
hearstnorman323 发表于 2021-10-18 20:05 | 显示全部楼层
EC11旋转编码器怎么样   
tifmill 发表于 2021-10-18 20:05 | 显示全部楼层
使用中断就可以实现的。   
nomomy 发表于 2021-10-18 20:06 | 显示全部楼层
HC32F460这个板子怎样  
elsaflower 发表于 2021-10-18 20:06 | 显示全部楼层
TIMERA模块解析两路信号吗  
ulystronglll 发表于 2021-10-18 20:06 | 显示全部楼层
这个资料时在哪里下载的   
abotomson 发表于 2021-10-18 20:07 | 显示全部楼层
是官网的资料吗?   
chenqianqian 发表于 2021-10-18 20:20 来自手机 | 显示全部楼层
看看去,谢谢分享。
chunxulele 发表于 2021-10-19 08:25 | 显示全部楼层
有没有136的,例程居然没有
您需要登录后才可以回帖 登录 | 注册

本版积分规则

99

主题

15005

帖子

19

粉丝
快速回复 在线客服 返回列表 返回顶部