设为首页收藏本站

arduino 单片机机器人爱好者之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: aosini

编码器速度和方向检测,371电机方向与速度检测,stm32编码器接口模式

  [复制链接]

签到天数: 63 天

[LV.6]常住居民II

 楼主| 发表于 2015-9-16 13:52:43 | 显示全部楼层
wodezpy 发表于 2015-9-16 10:14
手册有,不过还有个问题就是CNT重装值设置为0XFFFF,那它表示的数值是0-65535,还是32768~32767,因为-1的 ...

请仔细看25楼哟
回复 支持 反对

使用道具 举报

签到天数: 5 天

[LV.2]偶尔看看I

发表于 2015-9-24 11:19:55 | 显示全部楼层

还是不太懂,我就是搞不懂如何判断补码为1111到底表示的为-1还是15?既然是补码我可以认为1111为正数的补码啊?为什么要认为它是-1的补码呢?
回复 支持 反对

使用道具 举报

签到天数: 63 天

[LV.6]常住居民II

 楼主| 发表于 2015-9-25 07:55:05 | 显示全部楼层
wodezpy 发表于 2015-9-24 11:19
还是不太懂,我就是搞不懂如何判断补码为1111到底表示的为-1还是15?既然是补码我可以认为1111为正数的补 ...

((s16)(TIM2->CNT))强制类型转换,转换成有符型的,那么最高位就是符号位。
回复 支持 反对

使用道具 举报

签到天数: 5 天

[LV.2]偶尔看看I

发表于 2015-10-7 09:22:26 | 显示全部楼层
  TIM2->CCER |= 0<<1;                  //IC1不反向
  TIM2->CCER |= 0<<5;           //IC2不反向

为什么这两句代码只设置上升沿捕获,但没有对CH1、CH2的进行捕获使能?就是对CCxE位进行置1.
回复 支持 反对

使用道具 举报

签到天数: 5 天

[LV.2]偶尔看看I

发表于 2015-10-7 09:24:38 | 显示全部楼层
  TIM2->CCER |= 0<<1;                  //IC1不反向
        TIM2->CCER |= 0<<5;           //IC2不反向
为什么这两句只设置上升沿捕获,但没有对CH1、CH2进行捕获使能?也就是对CCxE位进行置1。
回复 支持 反对

使用道具 举报

签到天数: 5 天

[LV.2]偶尔看看I

发表于 2015-10-7 09:25:42 | 显示全部楼层
aosini 发表于 2015-9-25 07:55
((s16)(TIM2->CNT))强制类型转换,转换成有符型的,那么最高位就是符号位。

TIM2->CCER |= 0<<1;                  //IC1不反向
        TIM2->CCER |= 0<<5;           //IC2不反向
为什么这两句只设置上升沿捕获,但没有对CH1、CH2进行捕获使能?也就是对CCxE位进行置1。
回复 支持 反对

使用道具 举报

签到天数: 5 天

[LV.2]偶尔看看I

发表于 2015-10-7 11:29:18 | 显示全部楼层
请问如果是普通的码盘测速,就是只有一个输出信号的不带方向检测的可以使用编码器接口模式吗?配置上和这个例程有什么区别呢?
回复 支持 反对

使用道具 举报

签到天数: 63 天

[LV.6]常住居民II

 楼主| 发表于 2015-10-7 13:47:49 | 显示全部楼层
wodezpy 发表于 2015-10-7 11:29
请问如果是普通的码盘测速,就是只有一个输出信号的不带方向检测的可以使用编码器接口模式吗?配置上和这个 ...

不可以使用的。那个只要用外部中断计数就可以了
回复 支持 反对

使用道具 举报

签到天数: 5 天

[LV.2]偶尔看看I

发表于 2015-10-8 10:29:36 | 显示全部楼层
aosini 发表于 2015-10-7 13:47
不可以使用的。那个只要用外部中断计数就可以了

我有个疑问:我能不能通过人为的给某个通道用导线接个高或低电平(因为下图有个相对电平为高或者低),然后采用SMS[2:0]的001或者010呢?
11111.png
2222.png
回复 支持 反对

使用道具 举报

签到天数: 63 天

[LV.6]常住居民II

 楼主| 发表于 2015-10-9 08:21:53 | 显示全部楼层
wodezpy 发表于 2015-10-8 10:29
我有个疑问:我能不能通过人为的给某个通道用导线接个高或低电平(因为下图有个相对电平为高或者低),然 ...
14.3.12 编码器接口模式(P273)
选择编码器接口模式的方法是:如果计数器只在TI2的边沿计数,则置TIMx_SMCR寄存器中的SMS=001;如果只在TI1边沿计数,则置SMS=010;如果计数器同时在TI1和TI2边沿计数,则置SMS=011。
按照手册来说,是可以的 您可以试一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|联系我们|YFRobot ( 苏ICP备13017135  

GMT+8, 2018-10-17 05:09 , Processed in 0.097154 second(s), 23 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表