智能车制作
标题:
K60正交解码脉冲不准
[打印本页]
作者:
c6661176
时间:
2013-9-9 00:45
标题:
K60正交解码脉冲不准
K60正交解码 使用欧姆龙500线编码器(红树伟业) AB相接10K上拉 加100PF电容滤波到地
转一圈一般有5-8个的脉冲的误差 正反转误差更加严重 求解惑
代码如下
/*开启端口时钟*/
SIM_SCGC5 |= SIM_SCGC5_PORTA_MASK;
/*选择管脚复用功能*/
PORTA_PCR12 = PORT_PCR_MUX(7); //FTM1A相
PORTA_PCR13 = PORT_PCR_MUX(7); //FTM1B相
PORTA_PCR10 = PORT_PCR_MUX(6); //FTM2A相
PORTA_PCR11 = PORT_PCR_MUX(6); //FTM2B相
/*使能FTM1、FTM2时钟*/
SIM_SCGC6|=SIM_SCGC6_FTM1_MASK;
SIM_SCGC3|=SIM_SCGC3_FTM2_MASK;
FTM1_MOD = 65535; //可根据需要设置
FTM2_MOD = 65535;
FTM1_CNTIN = 0;
FTM2_CNTIN = 0;
FTM2_QDCTRL|=FTM_QDCTRL_PHBFLTREN_MASK; //打开B的滤波器
FTM2_QDCTRL|=FTM_QDCTRL_PHAFLTREN_MASK; //打开A的滤波器
FTM1_QDCTRL|=FTM_QDCTRL_PHBFLTREN_MASK; //打开B的滤波器
FTM1_QDCTRL|=FTM_QDCTRL_PHAFLTREN_MASK; //打开A的滤波器
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; //模式1启用
FTM1_QDCTRL |= FTM_QDCTRL_QUADEN_MASK; //使能正交解码模式
FTM2_QDCTRL |= FTM_QDCTRL_QUADMODE_MASK; //模式1启用
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);
作者:
☆_。寒泉..+
时间:
2013-9-9 00:51
本帖最后由 ☆_。寒泉..+ 于 2013-9-9 00:53 编辑
呵呵,请查看寄存器设置,可以很准的
作者:
new_life
时间:
2013-9-9 07:39
顶一下
作者:
热血男儿!
时间:
2013-9-9 08:31
编码器的精度不够,不一定就是500线。
作者:
c6661176
时间:
2013-9-10 00:03
☆_。寒泉..+ 发表于 2013-9-9 00:51
呵呵,请查看寄存器设置,可以很准的
发现问题原来是读了FTM1_CNT之后忘记清零了。。 继续读就会不准
作者:
c6661176
时间:
2013-9-10 00:04
热血男儿! 发表于 2013-9-9 08:31
编码器的精度不够,不一定就是500线。
发现问题原来是读了FTM1_CNT之后忘记清零了。。 继续读就会不准
一开始我还以为是编码器的回旋误差 详见帖子
“
http://www.amobbs.com/forum.php?mod=viewthread&tid=4749847&highlight=%E5%A2%9E%E9%87%8F%E5%BC%8F%E7%BC%96%E7%A0%81%E5%99%A8
”
欢迎光临 智能车制作 (http://dns.znczz.com/)
Powered by Discuz! X3.2