智能车制作

标题: 求助!正交解码一直没有输出 [打印本页]

作者: zkshen    时间: 2015-7-23 15:37
标题: 求助!正交解码一直没有输出
LZ第一次玩车,参考的是蓝宙的例程,初始化代码如下:

void FTM_QUAD_init(FTMn ftmn,CHn ch)
{
  switch(ftmn)
  {
  case FTM1:
    SIM_SCGC6|=SIM_SCGC6_FTM1_MASK;                             //使能FTM1时钟
    switch(ch)
    {
    case CH0:
      if(FTM1_CH0==PTA8)
      {
        SIM_SCGC5 |= SIM_SCGC5_PORTA_MASK;
        PORT_PCR_REG(PORTA_BASE_PTR, 8) = PORT_PCR_MUX(6);  // PTA8
      }
      else if(FTM1_CH0==PTA12)
      {
        SIM_SCGC5 |= SIM_SCGC5_PORTA_MASK;
        PORT_PCR_REG(PORTA_BASE_PTR, 12) = PORT_PCR_MUX(6);  // PTA12
      }
      else if(FTM1_CH0==PTB0)
      {
        SIM_SCGC5 |= SIM_SCGC5_PORTB_MASK;
        PORT_PCR_REG(PORTB_BASE_PTR, 0) = PORT_PCR_MUX(6);  // PTB0
      }
      break;
      
      
    case CH1:
      if(FTM1_CH1==PTA9)
      {
        SIM_SCGC5 |= SIM_SCGC5_PORTA_MASK;
        PORT_PCR_REG(PORTA_BASE_PTR, 9) = PORT_PCR_MUX(6);  // PTA9
      }
      else if(FTM1_CH1==PTA13)
      {
        SIM_SCGC5 |= SIM_SCGC5_PORTA_MASK;
        PORT_PCR_REG(PORTA_BASE_PTR, 13) = PORT_PCR_MUX(6);  // PTA13
      }
      else if(FTM1_CH1==PTB1)
      {
        SIM_SCGC5 |= SIM_SCGC5_PORTB_MASK;
        PORT_PCR_REG(PORTB_BASE_PTR, 1) = PORT_PCR_MUX(6);  // PTB1
      }
      break;
      
    default:
      return;
    }
    break;
  case FTM2:
    SIM_SCGC3 |= SIM_SCGC3_FTM2_MASK;                           //使能FTM2时钟
    switch(ch)
    {
    case CH0:
      if(FTM2_CH0==PTA10)
      {
        SIM_SCGC5 |= SIM_SCGC5_PORTA_MASK;
        PORT_PCR_REG(PORTA_BASE_PTR, 10) = PORT_PCR_MUX(6);  // PTA10
      }
      else if(FTM2_CH0==PTB18)
      {
        SIM_SCGC5 |= SIM_SCGC5_PORTB_MASK;
        PORT_PCR_REG(PORTB_BASE_PTR, 18) = PORT_PCR_MUX(6);  // PTB18
      }break;
      
    case CH1:
      if(FTM2_CH1==PTA11)
      {
        SIM_SCGC5 |= SIM_SCGC5_PORTA_MASK;
        PORT_PCR_REG(PORTA_BASE_PTR, 11) = PORT_PCR_MUX(6);  // PTA11
      }
      else if(FTM2_CH1==PTB19)
      {
        SIM_SCGC5 |= SIM_SCGC5_PORTB_MASK;
        PORT_PCR_REG(PORTB_BASE_PTR, 19) = PORT_PCR_MUX(6);  // PTB19
      }break;
      
    default:
      return;
    }break;
  default:
    break;
  }
// FTM_QDCTRL_QUADIR_MASK
  FTM_MODE_REG(FTMx[ftmn]) |= FTM_MODE_WPDIS_MASK;
  FTM_MODE_REG(FTMx[ftmn]) |= FTM_MODE_FTMEN_MASK;
  FTM_QDCTRL_REG(FTMx[ftmn]) &= ~FTM_QDCTRL_QUADMODE_MASK  ;//AB相同时确定方向和计数值
  FTM_CNTIN_REG(FTMx[ftmn])=0;//FTM0计数器初始值为0  
  FTM_MOD_REG(FTMx[ftmn])=65535;//结束值  
  FTM_QDCTRL_REG(FTMx[ftmn]) |=FTM_QDCTRL_QUADEN_MASK;//启用FTMn正交解码模式  
  FTM_MODE_REG(FTMx[ftmn]) |= FTM_MODE_FTMEN_MASK;   //FTMnEN=1   
  FTM_CNT_REG(FTMx[ftmn])=0;
  
  FTM_SC_REG(FTMx[ftmn]) |= FTM_SC_CLKS(3);  //选择外部时钟
  
}

LZ对比了坛子上各种代码感觉并没有问题,但就是没有任何输出啊!
各位大神帮帮忙吧!
作者: zkshen    时间: 2015-7-23 15:42
后面还有这样一段,调用上面的初始化函数

void FTM_SpeedMeasure_init(void)
{
  FTM_QUAD_init(FTM1,CH0);
  FTM_QUAD_init(FTM1,CH1);
  FTM_QUAD_init(FTM2,CH0);
  FTM_QUAD_init(FTM2,CH1);
}




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