超级版主
- 积分
- 17281
- 威望
- 8767
- 贡献
- 3040
- 兑换币
- 4153
- 注册时间
- 2011-8-7
- 在线时间
- 2737 小时
|
//*****************************************************************************
// 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可以知道转向。
|
|