在线时间61 小时
UID3091481
注册时间2015-1-12
NXP金币25
TA的每日心情 | 无聊 2021-5-27 14:51 |
---|
签到天数: 2 天 连续签到: 1 天 [LV.1]初来乍到
中级会员
 
- 积分
- 298
- 最后登录
- 2025-7-3
|
FTM1_Init初始化时失败,调用FTM1_Init(),断点跟进后进入 FTM_PWMInit(),在FTM_PWMInit里
else if(FTM_PWMMODE_COMBINE == u8PWMModeSelect) /* enable combine pwm mode */
{
pFTM->COMBINE = FTM_COMBINE_COMBINE0_MASK | FTM_COMBINE_COMP0_MASK | FTM_COMBINE_SYNCEN0_MASK | FTM_COMBINE_DTEN0_MASK |
FTM_COMBINE_COMBINE1_MASK | FTM_COMBINE_COMP1_MASK | FTM_COMBINE_SYNCEN1_MASK | FTM_COMBINE_DTEN1_MASK |
FTM_COMBINE_COMBINE2_MASK | FTM_COMBINE_COMP2_MASK | FTM_COMBINE_SYNCEN2_MASK | FTM_COMBINE_DTEN2_MASK;//程序执行到这里即无缘无故停止不执行了
。。。。。。。。。。。。。。。。
}
以下为FTM1_Init函数,开发工具IAR,芯片MKE06Z128xxx4
void FTM1_Init (void)
{
uint8_t u8Ch;
uint8_t channels, i;
/* set FTM1 as combine mode */
FTM_PWMInit(FTM1, FTM_PWMMODE_COMBINE, FTM_PWM_LOWTRUEPULSE);
//SIM->PINSEL0 |= 0x55;
SIM_RemapFTM1CH1ToPTE7();
SIM_RemapFTM1CH0ToPTH2();
/* set MOD value */
FTM_SetModValue(FTM1, 9999);
/* set clock source and start the counter */
FTM_ClockSet(FTM1, FTM_CLOCK_SYSTEMCLOCK, FTM_CLOCK_PS_DIV1);
FTM_SetCallback(FTM1, FTM1_Task);
NVIC_EnableIRQ(FTM1_IRQn);
FTM_EnableOverflowInt(FTM1);
/* set the duty cycle, note: only fit for combine mode */
FTM_SetDutyCycleCombine(FTM1, FTM_CHANNEL_CHANNEL1, 50);
}
最佳答案
烟雨梦 发表于 2016-7-21 10:03
不好意思搞错了,程序是执行到 ASSERT(FTM2 == pFTM)后不执行了,然后跳到assert_failed(),进入死循 ...
楼主,KE06的三个FTM模块中,只有FTM2是full fucntion, FTM0和 ...
|
|