打印

求助TIM编码器问题

[复制链接]
2777|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kail77|  楼主 | 2013-7-24 14:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
步进电机上用了一个HEDS-5540编码器,400CPR,也就是每圈400个脉冲,现在遇到的问题是每圈只有24个脉冲,主要程序如下:

        //TIM3, CH1+CH2 -> PA6+7
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;
        GPIO_Init(GPIOA, &GPIO_InitStructure);

        TIM_TimeBaseStructInit(&TIM_Base);
        TIM_Base.TIM_Prescaler = 72-1;
        TIM_Base.TIM_CounterMode = TIM_CounterMode_Up;
        TIM_Base.TIM_Period = 0xffff;
        TIM_TimeBaseInit(TIM3, &TIM_Base);
        TIM_EncoderInterfaceConfig(TIM3, TIM_EncoderMode_TI12, TIM_ICPolarity_Falling, TIM_ICPolarity_Falling);
        TIM_SetCounter(TIM3, 0);
        TIM_Cmd(TIM3, ENABLE);

在串口里返回(TIM3->CNT),用手把电机转一圈,计数才增加24,反转是-24.求解?
沙发
kail77|  楼主 | 2013-7-24 14:09 | 只看该作者
另外:我用逻辑分析仪测了一下,确实是没圈400个脉冲

使用特权

评论回复
板凳
strongyan| | 2013-7-24 15:16 | 只看该作者
  TIM_Base.TIM_Prescaler = 0 不分频吧

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
kail77 + 1 很给力!
地板
wenwenyuanyuan| | 2013-7-24 15:45 | 只看该作者
你好啊,我是利用捕获中断的原理来检测输入的脉冲,基本上是没有问题的,要是需要可以看看我的定时器配置。我最近也是在做相关的实验呢,不知道你有没有关于捕获后M/T法测速的程序呢?

使用特权

评论回复
5
kail77|  楼主 | 2013-7-24 16:32 | 只看该作者
strongyan 发表于 2013-7-24 15:16
TIM_Base.TIM_Prescaler = 0 不分频吧

哦原来如此。改过来成了1600了

使用特权

评论回复
6
feiante| | 2014-6-17 22:45 | 只看该作者
你的编码器搞定了吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

9

帖子

1

粉丝