注册会员
- 积分
- 110
- 威望
- 48
- 贡献
- 28
- 兑换币
- 27
- 注册时间
- 2015-7-20
- 在线时间
- 17 小时
- 毕业学校
- 南京大学
|
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对比了坛子上各种代码感觉并没有问题,但就是没有任何输出啊!
各位大神帮帮忙吧! |
|