打印
[Kinetis]

请教KE02互补PWM的问题

[复制链接]
877|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
秋叶|  楼主 | 2017-7-4 17:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教一下各位,在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  

相关帖子

沙发
秋叶|  楼主 | 2017-7-4 18:01 | 只看该作者
补充一下:软件仿真是可以的,但在硬件中就不能修改

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

42

主题

91

帖子

1

粉丝