在线时间15 小时
UID53613
注册时间2008-6-12
NXP金币0
该用户从未签到
注册会员

- 积分
- 154
- 最后登录
- 1970-1-1
|
在KEA64芯片中初始化FTM为EPWM模式总是进入hard fault中断,具体表现为对写保护位WPDIS位置位时马上就会进入hard fault中断,但是如果不去掉写保护,后面设置EPWM模式时MSB,ELSB,ELSA也会引起hard fault中断,请用过的朋友们提点建议。
void FTM0_Init()
{
SIM->SCGC |= SIM_SCGC_FTM0_MASK; /* Enable Clock for FTM0 */
SIM->PINSEL &= ~SIM_PINSEL_FTM0PS1_MASK;/*FTM0_CH1=PTA1*/
SIM->PINSEL &= ~SIM_PINSEL_FTM0PS0_MASK;/*FTM0_CH0=PTA0*/
FTM0->MODE |= FTM_MODE_WPDIS_MASK;/*DISABLE WRITE PROTECTION*/此处出现问题
FTM0->SC |= FTM_SC_PS(4); /* Select Preescaler in this case 16. 20 Mhz /16 =1.25 Mhz. */
/* Counter increase by one every 0.8 us */
/* Enable Channle 0*/
FTM0->CONTROLS[0].CnSC |= FTM_CnSC_MSB_MASK;/*Channel as EPWM,HIGH FIRST*/
FTM0->CONTROLS[0].CnSC |= FTM_CnSC_ELSB_MASK;
FTM0->CONTROLS[0].CnSC &= ~FTM_CnSC_ELSA_MASK;
FTM0->CONTROLS[0].CnSC &= ~FTM_CnSC_CHIE_MASK; /* Disable channel 0 interrupt */
FTM0->SC &= ~FTM_SC_TOIE_MASK;/*Disable FTM0 overflow interrupt*/
//FTM0->MODE &= ~FTM_MODE_FTMEN_MASK;/*???*/
//FTM0->COMBINE = 0;
FTM0->OUTMASK = 0xFE;/*only channel 0 active*/
FTM0->CNT = 0;/*CNT CLEAR*/
FTM0->CNTIN = 0;
FTM0->MOD = 1249;/*period=1000US*/
FTM0->CONTROLS[0].CnV = 625;/*high=500us*/
FTM0->SC |= FTM_SC_CLKS(1); /*FTM0 use system clock and FTM0 open*/
}
|
|