智能车制作

标题: k60正交编码 [打印本页]

作者: tujunjie    时间: 2012-9-18 22:43
标题: k60正交编码
搞了三天了,还没有搞出来,有没有大神做过呢?求交流550734872,谢谢
作者: quzhanguang    时间: 2012-9-19 10:53

//*****************************************************************************
//  FTM1 编码器1  引脚 PTA 8-9
//*****************************************************************************
void FTM1_QUAD_Int(void)  
{
  
  PORTA_PCR8     =  PORT_PCR_MUX(6);                                            // 设置引脚A10引脚为FTM2_PHA功能  
  PORTA_PCR9     =  PORT_PCR_MUX(6);                                            // 设置引脚A11引脚为FTM2_PHB功能  
  PORT_PCR_REG(PORTA_BASE_PTR, 8) |= PORT_PCR_PE_MASK | PORT_PCR_PS_MASK ;      //开弱上拉
  PORT_PCR_REG(PORTA_BASE_PTR, 9) |= PORT_PCR_PE_MASK | PORT_PCR_PS_MASK ;      //开弱上拉
  SIM_SCGC6     |=  SIM_SCGC6_FTM1_MASK;                                        // 使能FTM2时钟  
  FTM1_MODE     |=  FTM_MODE_WPDIS_MASK;                                        // 写保护禁止  
  FTM1_QDCTRL   |=  FTM_QDCTRL_QUADMODE_MASK;                                   // AB相同时确定方向和计数值  
  FTM1_CNTIN     =  0;                                                          // FTM0计数器初始值为0  
  FTM1_MOD       =  65535;                                                      // 结束值  
  FTM1_QDCTRL   |=  FTM_QDCTRL_QUADEN_MASK;                                     // 启用FTM2正交解码模式  
  FTM1_MODE     |=  FTM_MODE_FTMEN_MASK;                                        // FTM2EN=1   
  FTM1_CNT       =  0;  
}  

//*****************************************************************************
//  FTM2 编码器2  引脚 PTA 10-11
//*****************************************************************************
void FTM2_QUAD_Int(void)  
{  
  PORTA_PCR10    =  PORT_PCR_MUX(6);                                            // 设置引脚A10引脚为FTM2_PHA功能  
  PORTA_PCR11    =  PORT_PCR_MUX(6);                                            // 设置引脚A11引脚为FTM2_PHB功能  
  PORT_PCR_REG(PORTA_BASE_PTR, 10) |= PORT_PCR_PE_MASK | PORT_PCR_PS_MASK ;     //开弱上拉
  PORT_PCR_REG(PORTA_BASE_PTR, 11) |= PORT_PCR_PE_MASK | PORT_PCR_PS_MASK ;     //开弱上拉
  SIM_SCGC3     |=  SIM_SCGC3_FTM2_MASK;                                        // 使能FTM2时钟  
  FTM2_MODE     |=  FTM_MODE_WPDIS_MASK;                                        // 写保护禁止  
  FTM2_QDCTRL   |=  FTM_QDCTRL_QUADMODE_MASK;                                   // AB相同时确定方向和计数值  
  FTM2_CNTIN     =  0;                                                          // FTM0计数器初始值为0  
  FTM2_MOD       =  65535;                                                      // 结束值  
  FTM2_QDCTRL   |=  FTM_QDCTRL_QUADEN_MASK;                                     // 启用FTM2正交解码模式  
  FTM2_MODE     |=  FTM_MODE_FTMEN_MASK;                                        // FTM2EN=1   
  FTM2_CNT       =  0;  
}  

读取FTM1_CNT  和FTM2_CNT为脉冲数   
读取TOFDIR、QUADIR可以知道转向。
  

作者: tujunjie    时间: 2012-9-19 10:56
quzhanguang 发表于 2012-9-19 10:53
//*****************************************************************************
//  FTM1 编码 ...

哥们,我也是用的这个程序,能不能加个qq交流一下
作者: 猫虎的    时间: 2013-3-21 13:19
二楼的,你好厉害!
作者: zanran8    时间: 2013-3-31 17:06

作者: 希特勒    时间: 2013-4-13 15:43
厉害啊!!!
作者: 顾小东    时间: 2014-2-18 19:41
quzhanguang 发表于 2012-9-19 10:53
//*****************************************************************************
//  FTM1 编码 ...

大神,方向不知如何判断啊,求解。。。

作者: quzhanguang    时间: 2014-2-18 22:51
顾小东 发表于 2014-2-18 19:41
大神,方向不知如何判断啊,求解。。。

[attach]55947[/attach]

作者: quzhanguang    时间: 2014-2-18 22:51
tujunjie 发表于 2012-9-19 10:56
哥们,我也是用的这个程序,能不能加个qq交流一下

不能,嘿嘿嘿~
作者: 柯比    时间: 2014-2-20 17:38
quzhanguang 发表于 2012-9-19 10:53
//*****************************************************************************
//  FTM1 编码 ...

  PORT_PCR_REG(PORTA_BASE_PTR, 10) |= PORT_PCR_PE_MASK | PORT_PCR_PS_MASK ;     //开弱上拉
  PORT_PCR_REG(PORTA_BASE_PTR, 11) |= PORT_PCR_PE_MASK | PORT_PCR_PS_MASK ;     //开弱上拉
这两句有什么作用,不要可以不?

作者: 顾小东    时间: 2014-2-21 12:39
quzhanguang 发表于 2014-2-18 22:51

大神,,,我已经搞了四天了,没搞出来,,数据手册看了好几遍了但是结果不是很对啊。现在编码器A,B相接入。模式为方向计速模式,cntint=0,mod=65535,cnt=0  现在每隔一段时间去读cnt的值,并清零。这样cnt的值不与速度成比例。我看过技术手册,应该前后二个cnt的差值代表方向,但是不对啊       那二位的值我也看过不是很对啊

作者: quzhanguang    时间: 2014-2-21 12:41
顾小东 发表于 2014-2-21 12:39
大神,,,我已经搞了四天了,没搞出来,,数据手册看了好几遍了但是结果不是很对啊。现在编码器A,B相接入 ...

然后呢

作者: 顾小东    时间: 2014-2-21 12:42
quzhanguang 发表于 2014-2-18 22:51

而且QUITDIR只是判断B相的电位,,TOFDIR是判断向上溢出还是向下溢出

作者: quzhanguang    时间: 2014-2-21 12:44
顾小东 发表于 2014-2-21 12:42
而且QUITDIR只是判断B相的电位,,TOFDIR是判断向上溢出还是向下溢出



作者: 顾小东    时间: 2014-2-21 12:44
quzhanguang 发表于 2014-2-21 12:41
然后呢

大神能详细的给我讲讲吗?
作者: quzhanguang    时间: 2014-2-21 12:45
顾小东 发表于 2014-2-21 12:44
大神能详细的给我讲讲吗?

不能

作者: 顾小东    时间: 2014-2-21 12:47
:'(
作者: 顾小东    时间: 2014-2-21 12:47
quzhanguang 发表于 2014-2-21 12:45
不能

一定要这样吗?

作者: quzhanguang    时间: 2014-2-21 12:48
顾小东 发表于 2014-2-21 12:47

那你自己分析着,是什么原因呢





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2