在线时间20 小时
UID3355975
注册时间2018-11-17
NXP金币0
该用户从未签到
中级会员
 
- 积分
- 200
- 最后登录
- 2019-4-25
|

楼主 |
发表于 2019-4-24 17:37:33
|
显示全部楼层
在飞思卡尔代理商FAE的协助下解决了问题,贴上初始化代码给大家看一下。
//写保护禁止
// FTM_ARR[ftmNo]->MODE |= FTM_MODE_WPDIS_MASK;
//总线时钟频率24MHz,分频因子16,分频后为1.5MHz
FTM_ARR[ftmNo]->SC |= FTM_SC_PS(4);
//左对齐,先高电平后低电平
FTM_CnSC_REG(FTM_ARR[ftmNo], channel) |= FTM_CnSC_ELSB_MASK;
//边沿对齐
FTM_CnSC_REG(FTM_ARR[ftmNo], channel) &= ~FTM_CnSC_ELSA_MASK;
FTM_CnSC_REG(FTM_ARR[ftmNo], channel) |= FTM_CnSC_MSB_MASK;
//计数器清零
// FTM_ARR[ftmNo]->CNT=0;
//中断禁止
// FTM_ARR[ftmNo]->SC &= ~FTM_SC_TOIE_MASK;
//FTM2使能
// FTM_ARR[ftmNo]->MODE &= ~FTM_MODE_FTMEN_MASK;
//启用需要的输出通道,屏蔽其他通道
// FTM_ARR[ftmNo]->OUTMASK = (0xFE << channel);
//禁止双边沿捕捉模式
// FTM_ARR[ftmNo]->COMBINE = 0;
//FTM2计数初始值为0
// FTM_ARR[ftmNo]->CNTIN = 0;
//周期=(MOD-CNTIN+1)*时钟周期=2.5ms
FTM_ARR[ftmNo]->MOD = mod;
MOD_VALUE = mod;
//计算通道寄存器的值,设置占空比
duty_channel = (uint_16)((float)mod * duty / 100);
//设置通道值寄存器
FTM_CnV_REG(FTM_ARR[ftmNo], channel) = duty_channel;
//使用总线时钟
FTM_ARR[ftmNo]->SC |= FTM_SC_CLKS(1); |
|