智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 4844|回复: 16
打印 上一主题 下一主题

【脉冲计数】lptmr+FTM_QUAD分享+我遇到的问题orz

[复制链接]

18

主题

301

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4946
威望
2641
贡献
1439
兑换币
1337
注册时间
2014-8-31
在线时间
433 小时
毕业学校
河海大学
跳转到指定楼层
1#
发表于 2015-4-19 14:07:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我是平衡组。。用的是500线的欧姆龙编码器。。程序用的是野火的旧库。。脉冲计数左轮用正交解码计数,,右轮用低功耗lptmr计数。。现在用50%占空比采集脉冲数。遇到了些问题orz
下面上图。。
红色是正交解码。。蓝色是lptmr。。lptmr会间歇性的跳变到零。。请问这是为啥涅。。

第二个问题就是。。换个方向转轮子。。lptmr的数值顿时变低了。。。

PS:我采集时间为5ms,,

下面分享我计数的子函数吧
lptmr:呃。。这个在野火例程里有。。放上来有些过于复杂orz
正交解码:参考论坛里大神的代码稍做了些修改
void FTM_QUAD_init()
{
    /*开启端口时钟*/
    SIM_SCGC5 |= SIM_SCGC5_PORTA_MASK;//A端口
    SIM_SCGC5 |= SIM_SCGC5_PORTB_MASK;//B端口

    /*选择管脚复用功能*/
    PORTA_PCR12 = PORT_PCR_MUX(7);//A12
    PORTA_PCR13 = PORT_PCR_MUX(7);//A13
    PORTB_PCR18 = PORT_PCR_MUX(6);//B18
    PORTB_PCR19 = PORT_PCR_MUX(6);//B19

    /*使能FTM1、FTM2时钟*/
    SIM_SCGC6|=SIM_SCGC6_FTM1_MASK;
    SIM_SCGC3|=SIM_SCGC3_FTM2_MASK;

    FTM1_MOD = 65525; //结束值,可根据需要设置
    FTM2_MOD = 65525;

    FTM1_CNTIN = 0;
    FTM2_CNTIN = 0;

    FTM1_MODE |= FTM_MODE_WPDIS_MASK; //禁止写保护
    FTM2_MODE |= FTM_MODE_WPDIS_MASK; //禁止写保护
    FTM1_MODE |= FTM_MODE_FTMEN_MASK; //FTMEN=1,关闭TPM兼容模式,开启FTM所有功能
    FTM2_MODE |= FTM_MODE_FTMEN_MASK; //FTMEN=1,关闭TPM兼容模式,开启FTM所有功能

    FTM1_QDCTRL &= ~FTM_QDCTRL_QUADMODE_MASK; //选定编码模式为A相与B相编码模式
    FTM1_QDCTRL |= FTM_QDCTRL_QUADEN_MASK; //使能正交解码模式
    FTM2_QDCTRL &= ~FTM_QDCTRL_QUADMODE_MASK; //选定编码模式为A相与B相编码模式
    FTM2_QDCTRL |= FTM_QDCTRL_QUADEN_MASK; //使能正交解码模式

    FTM1_SC |= FTM_SC_CLKS(3);  //选择外部时钟
//   FTM1_CONF |=FTM_CONF_BDMMODE(3); //可根据需要选择
    FTM2_SC |= FTM_SC_CLKS(3);
//   FTM2_CONF |=FTM_CONF_BDMMODE(3);
}

int16 FTM_QUAD_get()  //读取脉冲数值
{
    int16 QD_Value;
    QD_Value = (int16_t)(FTM1_CNT);
    //g_nRQD_Value = (int16_t)(FTM2_CNT);
    FTM1_CNT = 0;
    FTM2_CNT = 0;

    return QD_Value;
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

18

主题

301

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4946
威望
2641
贡献
1439
兑换币
1337
注册时间
2014-8-31
在线时间
433 小时
毕业学校
河海大学
2#
 楼主| 发表于 2015-4-19 14:21:34 | 只看该作者
orz自己顶起
回复 支持 反对

使用道具 举报

14

主题

133

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1227
威望
621
贡献
340
兑换币
393
注册时间
2014-11-16
在线时间
133 小时
毕业学校
江苏大学
3#
发表于 2015-4-19 15:13:34 | 只看该作者
楼主 既然是平衡组为什么不两路正交解码
回复 支持 反对

使用道具 举报

18

主题

301

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4946
威望
2641
贡献
1439
兑换币
1337
注册时间
2014-8-31
在线时间
433 小时
毕业学校
河海大学
4#
 楼主| 发表于 2015-4-19 15:42:08 | 只看该作者
咳。。因为主板很干脆的没有预留FTM2的口╮(╯▽╰)╭
回复 支持 反对

使用道具 举报

14

主题

133

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1227
威望
621
贡献
340
兑换币
393
注册时间
2014-11-16
在线时间
133 小时
毕业学校
江苏大学
5#
发表于 2015-4-19 15:59:34 | 只看该作者
有没有口 不要紧 大不了不要用底层库 我倒是很奇怪lptmr是如何测正负的
回复 支持 反对

使用道具 举报

18

主题

301

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4946
威望
2641
贡献
1439
兑换币
1337
注册时间
2014-8-31
在线时间
433 小时
毕业学校
河海大学
6#
 楼主| 发表于 2015-4-19 16:09:41 | 只看该作者
hi希特勒 发表于 2015-4-19 15:59
有没有口 不要紧 大不了不要用底层库 我倒是很奇怪lptmr是如何测正负的

加了D触发器咯
回复 支持 反对

使用道具 举报

18

主题

339

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4010
威望
1832
贡献
1022
兑换币
1206
注册时间
2013-2-20
在线时间
579 小时
毕业学校
SEU
7#
发表于 2015-4-19 16:16:08 | 只看该作者
不要使用内部上拉,还有LPTMR的口不要用A19(晶振)
回复 支持 反对

使用道具 举报

18

主题

301

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4946
威望
2641
贡献
1439
兑换币
1337
注册时间
2014-8-31
在线时间
433 小时
毕业学校
河海大学
8#
 楼主| 发表于 2015-4-19 18:23:43 | 只看该作者
跑龙套的人 发表于 2015-4-19 16:16
不要使用内部上拉,还有LPTMR的口不要用A19(晶振)

嗯嗯。。。我使用的是C5。。
不过为何不要使用内部上拉?lptmr_init里需要配置内部上拉呢。。。。如何把内部上拉去除呢?把C5口拿来复用么?
回复 支持 反对

使用道具 举报

18

主题

339

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4010
威望
1832
贡献
1022
兑换币
1206
注册时间
2013-2-20
在线时间
579 小时
毕业学校
SEU
9#
发表于 2015-4-19 18:39:38 | 只看该作者
zty562694497 发表于 2015-4-19 18:23
嗯嗯。。。我使用的是C5。。
不过为何不要使用内部上拉?lptmr_init里需要配置内部上拉呢。。。。如何把 ...

K60内部上拉是100k弱上拉,测得不太准。把PULLUP配置去掉就可以取消内部上拉了(你是用野火库的吧)
回复 支持 反对

使用道具 举报

18

主题

301

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4946
威望
2641
贡献
1439
兑换币
1337
注册时间
2014-8-31
在线时间
433 小时
毕业学校
河海大学
10#
 楼主| 发表于 2015-4-19 19:16:14 | 只看该作者
跑龙套的人 发表于 2015-4-19 18:39
K60内部上拉是100k弱上拉,测得不太准。把PULLUP配置去掉就可以取消内部上拉了(你是用野火库的吧)

用的是野火的旧库。。。
呃。。没有找到配置上拉的地方呢QAQ
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-10-1 12:27 , Processed in 0.064438 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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