注册 登录
查看: 1237|回复: 10

K60正交解码问题

[复制链接]
发表于 2014-1-18 10:26:51 | 显示全部楼层 |阅读模式
给位前辈们,我使用新的K60库,使用正交解码时发现FTM1只能检测一个方向的转速,相反的方向它读不出速度来怎么回事啊?
void PIT0_IRQHandler(void)
{       int16 val2;
        val2 = FTM_QUAD_get(FTM1);          //获取FTM 正交解码 的脉冲数(负数表示反方向)
        FTM_QUAD_clean(FTM1);

        if(val2>=0)
        {
          printf("\n1正转:%d",val2);
        }
        else
        {
          printf("\n1反转:%d",-val2);
        }
          PIT_Flag_Clear(PIT0);       //清中断标志位
}

void main(void)
{
  int i,j,k,l;
    uart_init(UART3, 19200);             //初始化uartx模块
    printf("\n*****FTM 正交解码 测试*****\n");
    FTM_QUAD_Init(FTM2);                        //FTM1 正交解码初始化
    FTM_QUAD_Init(FTM1);                        //FTM1 正交解码初始化
    FTM_PWM_init(FTM0, FTM_CH0, 4000, 600);
    FTM_PWM_init(FTM0, FTM_CH1, 4000, 600);
    FTM_PWM_init(FTM0, FTM_CH2, 4000, 600);
    FTM_PWM_init(FTM0, FTM_CH3, 4000, 600);
    FTM_PWM_init(FTM0, FTM_CH4, 4000, 600);
    FTM_PWM_init(FTM0, FTM_CH5, 4000, 600);
    FTM_PWM_init(FTM0, FTM_CH6, 4000, 600);
    FTM_PWM_init(FTM0, FTM_CH7, 4000, 600);
    pit_init_ms(PIT0, 500);
    led_init(LED0);            //初始化LED端口
    led_init(LED1);            //初始化LED端口
    led_init(LED2);            //初始化LED端口
    led_init(LED3);            //初始化LED端口
    gpio_init (PTE5, GPO,0);
    enable_irq (PIT0_IRQn);                                 //使能PIT0中断参数参照common.h的定义
    while(1)
    {
        printf("\n*****FTM 正交解码 测试*****\n");
            led_turn(LED0);            //设置LED灯亮灭反转
        DELAY_MS(100);
            led_turn(LED1);            //设置LED灯亮灭反转
    }
}

回复

使用道具 举报

发表于 2014-1-18 10:38:25 | 显示全部楼层
【一天攻破K60】 BUG 汇总
http://www.vcan123.com/forum.php?mod=viewthread&tid=1294

FTM2 的正交解码代码是有bug 的。
回复 支持 反对

使用道具 举报

发表于 2014-1-18 10:39:12 | 显示全部楼层
FTM1 的 B相管脚,用示波器测一下是否正常。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-18 11:05:54 | 显示全部楼层
山外メ雲ジ 发表于 2014-1-18 10:39
FTM1 的 B相管脚,用示波器测一下是否正常。

那个bug我已经更改了,FTM1还是存在只测一个方向,用FTM2测试编码器很正常,但是只要换到FTM1就不行了,单独把FTM1的B相分别接地和接高电平这样也能正常测速,但是把引脚一接到编码器上就不能测速了,,纠结中,求前辈指点啊
回复 支持 反对

使用道具 举报

发表于 2014-1-18 11:09:21 | 显示全部楼层
巨无霸 发表于 2014-1-18 11:05
那个bug我已经更改了,FTM1还是存在只测一个方向,用FTM2测试编码器很正常,但是只要换到FTM1就不行了,单 ...

B相 接上拉电阻
回复 支持 反对

使用道具 举报

发表于 2014-1-18 11:09:32 | 显示全部楼层
巨无霸 发表于 2014-1-18 11:05
那个bug我已经更改了,FTM1还是存在只测一个方向,用FTM2测试编码器很正常,但是只要换到FTM1就不行了,单 ...

B相 接上拉电阻
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-18 11:26:16 | 显示全部楼层
公孙璇娟 发表于 2014-1-18 11:09
B相 接上拉电阻

接了,硬件应该没有问题,因为同样的硬件我用FTM2的正交解码发现一切正常,但是在FTM1就出现错误不能双向测速
回复 支持 反对

使用道具 举报

发表于 2014-1-18 11:29:15 | 显示全部楼层
巨无霸 发表于 2014-1-18 11:26
接了,硬件应该没有问题,因为同样的硬件我用FTM2的正交解码发现一切正常,但是在FTM1就出现错误不能双向 ...

单独把FTM1的B相分别接地和接高电平这样也能正常测速,但是把引脚一接到编码器上就不能测速了


这个明显是 硬件问题嘛,直接B接地和高电平就行,接编码器就不行。用示波器测一下 B 的信号,接入编码器的时候。
回复 支持 反对

使用道具 举报

发表于 2014-6-5 20:23:03 | 显示全部楼层
请问k60有哪些管脚有正交解码的功能
回复 支持 反对

使用道具 举报

发表于 2014-6-5 20:34:36 | 显示全部楼层
六月季 发表于 2014-6-5 20:23
请问k60有哪些管脚有正交解码的功能

这个需要看 管脚复用在工程根目录下\Board\inc\FIRE_PORT_cfg.h  (打开看看,很容易知道如何配置的)
回复 支持 反对

使用道具 举报

发表于 2014-11-28 11:03:11 | 显示全部楼层
危隽洁 发表于 2014-6-5 20:34
这个需要看 管脚复用在工程根目录下\Board\inc\FIRE_PORT_cfg.h  (打开看看,很容易知道如何配置的)

谢谢啦  回去看看去
回复 支持 反对

使用道具 举报

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

本版积分规则

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