智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 4937|回复: 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
回复

使用道具 举报

1

主题

10

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
318
威望
173
贡献
91
兑换币
111
注册时间
2017-4-7
在线时间
27 小时
17#
发表于 2018-3-6 17:37:04 | 只看该作者
我们的c5用了,只能用a19,但是现在采集不出数据,另一个用的是正交解码,正交解码可以采集出数据,虽说a19采集不准确,但是一直没数据也不对,可能是什么原因
回复 支持 反对

使用道具 举报

18

主题

301

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4946
威望
2641
贡献
1439
兑换币
1337
注册时间
2014-8-31
在线时间
433 小时
毕业学校
河海大学
16#
 楼主| 发表于 2017-7-26 23:19:15 | 只看该作者
aha_EFj2p 发表于 2017-4-10 10:23
你好,我想问问你用的是什么软件来测的????

泥壕。波形我用的是山外的多功能调试助手,里面有虚拟示波器功能。没想到以前的旧帖子还会被翻起来。我做了第十届飞思卡尔(没错第十届是最后一次叫飞思卡尔)之后便没有继续做小车了,现在已经毕业开始工作,偶尔回来看看。

回复 支持 反对

使用道具 举报

0

主题

770

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
9280
威望
5224
贡献
3388
兑换币
3559
注册时间
2016-9-1
在线时间
334 小时
毕业学校
西南某校
15#
发表于 2017-4-10 11:08:41 | 只看该作者
楼主加油,我们都看好你哦
回复 支持 反对

使用道具 举报

0

主题

8

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
261
威望
136
贡献
81
兑换币
90
注册时间
2016-11-29
在线时间
22 小时
14#
发表于 2017-4-10 10:23:22 | 只看该作者
你好,我想问问你用的是什么软件来测的????
回复 支持 反对

使用道具 举报

7

主题

165

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1468
威望
719
贡献
451
兑换币
451
注册时间
2015-1-21
在线时间
149 小时
13#
发表于 2015-4-26 21:52:54 | 只看该作者
跑龙套的人 发表于 2015-4-26 18:19
A19外接了晶振,B18没输出有可能是软件初始化问题或者IO口烧了

哦哦哦,谢谢啦!
回复 支持 反对

使用道具 举报

18

主题

339

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4010
威望
1832
贡献
1022
兑换币
1206
注册时间
2013-2-20
在线时间
579 小时
毕业学校
SEU
12#
发表于 2015-4-26 18:19:03 | 只看该作者
chuyuanqiang 发表于 2015-4-26 17:38
相请问下,为什么用A19不好呢?还有我们的FTM2模块不知道什么原因B148输出,B19没有,是弄块问题还是冲 ...

A19外接了晶振,B18没输出有可能是软件初始化问题或者IO口烧了
回复 支持 反对

使用道具 举报

7

主题

165

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1468
威望
719
贡献
451
兑换币
451
注册时间
2015-1-21
在线时间
149 小时
11#
发表于 2015-4-26 17:38:36 | 只看该作者
跑龙套的人 发表于 2015-4-19 18:39
K60内部上拉是100k弱上拉,测得不太准。把PULLUP配置去掉就可以取消内部上拉了(你是用野火库的吧)

相请问下,为什么用A19不好呢?还有我们的FTM2模块不知道什么原因B148输出,B19没有,是弄块问题还是冲突之类的啊

回复 支持 反对

使用道具 举报

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
回复 支持 反对

使用道具 举报

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配置去掉就可以取消内部上拉了(你是用野火库的吧)
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-25 15:35 , Processed in 0.060109 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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