请教一下各位,在TPM2设为互补PWM输出时,无法在程序中修改 FTM2->CONTROLS[0].CnV值
FTM2->MODE |= FTM_MODE_WPDIS_MASK;//写保护禁止
FTM2->MODE |=FTM_MODE_FTMEN_MASK;//FTMEN=1
FTM2->COMBINE|=FTM_COMBINE_COMBINE0_MASK;//FTM0通道2,3联合使用
FTM2->COMBINE|=FTM_COMBINE_COMP0_MASK;//FTM0通道2,3互补输出
FTM2->COMBINE|=FTM_COMBINE_SYNCEN0_MASK;//使能FTM0通道2,3 PWM同步
FTM2->COMBINE|=FTM_COMBINE_DTEN0_MASK;//死区插入
FTM2->COMBINE|=FTM_COMBINE_COMBINE1_MASK;//FTM0通道2,3联合使用
FTM2->COMBINE|=FTM_COMBINE_COMP1_MASK;//FTM0通道2,3互补输出
FTM2->COMBINE|=FTM_COMBINE_SYNCEN1_MASK;//使能FTM0通道2,3 PWM同步
FTM2->COMBINE|=FTM_COMBINE_DTEN1_MASK;//死区插入
FTM2->DEADTIME=FTM_DEADTIME_DTPS(2)|FTM_DEADTIME_DTVAL(20);
FTM2->SYNCONF|=FTM_SYNCONF_SWWRBUF_MASK;//使能MOD,CNTIN,CV寄存器的软件触发同步
FTM2->SYNC=FTM_SYNC_CNTMIN_MASK|FTM_SYNC_CNTMAX_MASK;//设置load point
FTM2->CONTROLS[0].CnSC |= FTM_CnSC_ELSA_MASK;//ELSB=1,ELSA=0,左对齐,先高后低
FTM2->CONTROLS[0].CnSC &= ~FTM_CnSC_ELSB_MASK;
FTM2->CONTROLS[1].CnSC |= FTM_CnSC_ELSA_MASK;//ELSB=1,ELSA=0,左对齐,先高后低
FTM2->CONTROLS[1].CnSC &= ~FTM_CnSC_ELSB_MASK;
FTM2->CONTROLS[2].CnSC |= FTM_CnSC_ELSB_MASK;//ELSB=1,ELSA=0,左对齐,先高后低
FTM2->CONTROLS[2].CnSC &= ~FTM_CnSC_ELSA_MASK;
FTM2->CONTROLS[3].CnSC |= FTM_CnSC_ELSB_MASK;//ELSB=1,ELSA=0,左对齐,先高后低
FTM2->CONTROLS[3].CnSC &= ~FTM_CnSC_ELSA_MASK;
FTM2->OUTMASK=0XF0;//通道0,1,2,3输出,屏蔽其它通道
FTM2->CNTIN=0;//FTM0计数器初始值为0
FTM2->MOD=FTM_MOD_MOD(FTM2_MOD_VAL); //PWM的模数(16位)
// FTM2->MOD=2000;//结束值,周期为(MOD-CNTIN+1)*时钟周期=10ms
FTM2->CONTROLS[0].CnV=500;//高电平1.5ms
FTM2->CONTROLS[1].CnV=FTM2_MOD_VAL;
FTM2->CONTROLS[2].CnV=500;//高电平1.5ms
FTM2->CONTROLS[3].CnV=FTM2_MOD_VAL;
FTM2->CONTROLS[0].CnV=600;//高电平1.5ms
FTM2->CONTROLS[2].CnV=600;//高电平1.5ms
FTM2->CNT=0;
FTM2->SYNC|=FTM_SYNC_SWSYNC_MASK;//使能软件触发
FTM2->SC=0x09;
??????在下面两句中无法修改值,请教大家是什么原因,多谢
FTM2->CONTROLS[0].CnV=700;//高电平1.5ms
FTM2->CONTROLS[2].CnV=700;//高电平1.5ms |