智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1263|回复: 5
打印 上一主题 下一主题

您的脉冲计数正常吗?

[复制链接]

18

主题

301

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4946
威望
2641
贡献
1439
兑换币
1337
注册时间
2014-8-31
在线时间
433 小时
毕业学校
河海大学
跳转到指定楼层
1#
发表于 2015-7-19 21:04:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题,速度控制上用的是清华方案
在脉冲计数的波形上遇到一些问题

红色线为每5ms采集到的脉冲数,理想状况下应该是一条平滑的线,可是现在却为锯齿形
求教orz

下面分享正交解码脉冲计数:
void FTM_QUAD_init()
{
    /*开启端口时钟*/
    SIM_SCGC5 |= SIM_SCGC5_PORTA_MASK;
    SIM_SCGC5 |= SIM_SCGC5_PORTB_MASK;

    /*选择管脚复用功能*/
    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);
}

void FTM_QUAD_get()  //读取脉冲数值
{
    LQD_Value = (int16_t)(FTM1_CNT);
    RQD_Value = (int16_t)(FTM2_CNT);
    FTM1_CNT = 0;
    FTM2_CNT = 0;
}


本帖子中包含更多资源

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

x
回复

使用道具 举报

18

主题

301

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4946
威望
2641
贡献
1439
兑换币
1337
注册时间
2014-8-31
在线时间
433 小时
毕业学校
河海大学
2#
 楼主| 发表于 2015-7-20 00:57:06 | 只看该作者
问题已经解决
原因在于CCD采集图像的时间超过定时器的时间orz
后来发现用的山外的库需要固定在定时器里,,没有办法将其放在主函数的循环里
所以花了一个晚上的时间改用了蓝宙的库,,并且更改成了双CCD采集。。
现在发现采集的图像会像看老旧电影似的闪啊闪。。正在解决问题中
回复 支持 反对

使用道具 举报

8

主题

205

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1115
QQ
威望
468
贡献
411
兑换币
282
注册时间
2014-12-14
在线时间
118 小时
毕业学校
河北大学工商学院
3#
发表于 2015-7-20 01:51:51 | 只看该作者
这个时候这么大的改动来的急么?
回复 支持 反对

使用道具 举报

18

主题

301

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4946
威望
2641
贡献
1439
兑换币
1337
注册时间
2014-8-31
在线时间
433 小时
毕业学校
河海大学
4#
 楼主| 发表于 2015-7-20 09:50:54 | 只看该作者
飞思卡尔.呆萌 发表于 2015-7-20 01:51
这个时候这么大的改动来的急么?

没办法,,这个BUG是一定得解决的orz
回复 支持 反对

使用道具 举报

18

主题

301

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4946
威望
2641
贡献
1439
兑换币
1337
注册时间
2014-8-31
在线时间
433 小时
毕业学校
河海大学
5#
 楼主| 发表于 2015-7-20 14:00:47 | 只看该作者
问题的新进展。。。
发现放在主循环里面虽然保证定时器周期的稳定,脉冲计数也正常了
可是采集的CCD图像的时序因为中断乱了,跟个老旧电影似的
最后经过激烈的讨论,,决定把定时器初始化为5ms,把程序一股脑一起执行,而不是像清华方案那样分块执行了。
效果有待测试
回复 支持 反对

使用道具 举报

18

主题

301

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4946
威望
2641
贡献
1439
兑换币
1337
注册时间
2014-8-31
在线时间
433 小时
毕业学校
河海大学
6#
 楼主| 发表于 2015-7-20 14:23:12 | 只看该作者
zty562694497 发表于 2015-7-20 14:00
问题的新进展。。。
发现放在主循环里面虽然保证定时器周期的稳定,脉冲计数也正常了
可是采集的CCD图像 ...

效果显示良好
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-28 03:27 , Processed in 0.068810 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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