智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1045|回复: 1
打印 上一主题 下一主题

求助!正交解码一直没有输出

[复制链接]

1

主题

2

帖子

0

精华

注册会员

Rank: 2

积分
110
威望
48
贡献
28
兑换币
27
注册时间
2015-7-20
在线时间
17 小时
毕业学校
南京大学
跳转到指定楼层
1#
发表于 2015-7-23 15:37:42 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
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对比了坛子上各种代码感觉并没有问题,但就是没有任何输出啊!
各位大神帮帮忙吧!
回复

使用道具 举报

1

主题

2

帖子

0

精华

注册会员

Rank: 2

积分
110
威望
48
贡献
28
兑换币
27
注册时间
2015-7-20
在线时间
17 小时
毕业学校
南京大学
2#
 楼主| 发表于 2015-7-23 15:42:34 | 只看该作者
后面还有这样一段,调用上面的初始化函数

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-8 15:00 , Processed in 0.046645 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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