注册 登录
查看: 755|回复: 8

[平衡组] PTM正交解码

[复制链接]
发表于 2014-1-10 19:44:54 | 显示全部楼层 |阅读模式
void PIT0_IRQHandler(void)
{

    int16 val,i;
    val = FTM_QUAD_get(FTM1);          //获取FTM 正交解码 的脉冲数(负数表示反方向)
   
    FTM_QUAD_clean(FTM1);

    if(val>=0)
    {
        printf("\n正转:%d",val);
    }
    else
    {
        printf("\n反转:%d",-val);
    }


    PIT_Flag_Clear(PIT0);       //清中断标志位
}


这个里面的计脉冲怎么知道那个是A相,那个是B相脉冲呢》??只是说返回一个脉冲
回复

使用道具 举报

发表于 2014-1-10 21:02:22 | 显示全部楼层
FTM 的正交解码,A相 决定 速度 、B相 决定方向。
明明 有 A相和 B相 ,不明白你为什么问:“计脉冲怎么知道那个是A相,那个是B相脉冲呢》”?

KL26 没有 正交解码功能
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-10 22:29:18 | 显示全部楼层
山外メ雲ジ 发表于 2014-1-10 21:02
FTM 的正交解码,A相 决定 速度 、B相 决定方向。
明明 有 A相和 B相 ,不明白你为什么问:“计脉冲怎么知 ...

FTM_QUAD_get(FTM1);这个函数返回的只有一个数啊,,
int16 FTM_QUAD_get(FTMn_e ftmn)
{
    int16 val;
    ASSERT( (ftmn == FTM1) || (ftmn == FTM2 ) );        //检查传递进来的通道是否正确
    val = FTM_CNT_REG(FTMN[ftmn]);

    return val;
}

就是能不能把A相和B相的计数都返回。
回复 支持 反对

使用道具 举报

发表于 2014-1-10 22:44:31 | 显示全部楼层
叫我娄月半子 发表于 2014-1-10 22:29
FTM_QUAD_get(FTM1);这个函数返回的只有一个数啊,,
int16 FTM_QUAD_get(FTMn_e ftmn)
{

你 没 搞定 正交解码吧 ……

正交解码,是 一个 编码器 同时接 A/B 相,当然 只有 一个速度啦
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-10 23:10:57 | 显示全部楼层
隗英秀 发表于 2014-1-10 22:44
你 没 搞定 正交解码吧 ……

正交解码,是 一个 编码器 同时接 A/B 相,当然 只有 一个速度啦

不知道为什么,,我只是测试一下 500ms周期下  读出来的速度只有10不到 感觉有时候正反转还不对,,
不过没加上拉电阻。
回复 支持 反对

使用道具 举报

发表于 2014-3-9 00:12:09 | 显示全部楼层
叫我娄月半子 发表于 2014-1-10 23:10
不知道为什么,,我只是测试一下 500ms周期下  读出来的速度只有10不到 感觉有时候正反转还不对,,
不过 ...

同样的问题啊...现在你解决了么???求解啊
回复 支持 反对

使用道具 举报

发表于 2014-3-9 01:28:12 | 显示全部楼层
hymwgk 发表于 2014-3-9 00:12
同样的问题啊...现在你解决了么???求解啊

上拉电阻是必须要加的啊
回复 支持 反对

使用道具 举报

发表于 2014-3-9 18:34:14 | 显示全部楼层
缑萱彤 发表于 2014-3-9 01:28
上拉电阻是必须要加的啊

嘿嘿,我试了,加上上拉电阻完美解决问题~
回复 支持 反对

使用道具 举报

发表于 2014-3-9 19:17:35 | 显示全部楼层
hymwgk 发表于 2014-3-9 18:34
嘿嘿,我试了,加上上拉电阻完美解决问题~

编码器是开漏输出,所以必须加上拉电阻的
回复 支持 反对

使用道具 举报

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

本版积分规则

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