智能车制作

标题: k60 FTM模块写寄存器互补输出 [打印本页]

作者: YMH_smartcar    时间: 2016-4-20 17:00
标题: k60 FTM模块写寄存器互补输出
FTM模块写寄存器互补输出,D4\D5管角互补输出,以下代码哪里有问题请高手指教啊谢谢一个脚有输出一个脚没有输出,不是硬件问题。
void MotorPWM_Register_Init(void){
     //PWM IO设置
    PORTD_PCR4= PORT_PCR_MUX(4); // 设置引脚D4引脚为FTM0_CH4功能
    PORTD_PCR5= PORT_PCR_MUX(4); // 设置引脚D5引脚为FTM0_CH5功能

    SIM_SCGC6|=SIM_SCGC6_FTM0_MASK;        //使能FTM0时钟
    FTM0_SC=FTM_SC_CLKS(1)|FTM_SC_PS(2);   //中断禁止,时钟源来自总线时钟
    FTM0_MODE |= FTM_MODE_WPDIS_MASK;      //写保护禁止
    FTM0_MODE |=FTM_MODE_FTMEN_MASK;       //FTMEN=1
    FTM0_QDCTRL&=~FTM_QDCTRL_QUADEN_MASK;   //禁止正交解码模式
    FTM0_COMBINE|=FTM_COMBINE_COMBINE2_MASK;//FTM0通道0,1联合使用
    FTM0_COMBINE|=FTM_COMBINE_COMP2_MASK;   //FTM0通道0,1互补输出
    FTM0_COMBINE|=FTM_COMBINE_SYNCEN2_MASK;  //使能FTM0通道0,1 PWM同步

    FTM0_SYNCONF|=FTM_SYNCONF_SWWRBUF_MASK;//使能MOD,CNTIN,CV寄存器的软件触发同步
    FTM0_SYNC=FTM_SYNC_CNTMIN_MASK|FTM_SYNC_CNTMAX_MASK;//设置load point
    FTM0_C4SC |= FTM_CnSC_ELSB_MASK;//ELSB=1,ELSA=0,左对齐,先高后低
    FTM0_C4SC &= ~FTM_CnSC_ELSA_MASK;
    FTM0_C5SC |= FTM_CnSC_ELSB_MASK;//ELSB=1,ELSA=0,左对齐,先高后低
    FTM0_C5SC &= ~FTM_CnSC_ELSA_MASK;

    FTM0_OUTMASK=0XDF;//通道4、5输出,屏蔽其它通道
    FTM0_CNTIN=0;//FTM0计数器初始值为0
    FTM0_MOD=2250;//结束值,周期为(MOD-CNTIN+1)*时钟周期=10ms
    FTM0_C4V=0;//高电平1.5ms
    FTM0_C5V=1125;

    FTM0_CNT=0;
    FTM0_SYNC|=FTM_SYNC_SWSYNC_MASK;//使能软件触发
}




作者: YMH_smartcar    时间: 2016-4-20 19:02
不熟悉寄存器求帮助
作者: 弥勒佛    时间: 2016-5-4 15:08
你搞定了没
作者: 弥勒佛    时间: 2016-5-4 15:53
FTM0_OUTMASK=0XDF;这里应该是0xCF;
作者: 弥勒佛    时间: 2016-5-4 16:19
我按照你的代码改了后已经都可以输出了,但是我想用其他的通道,可是我不会,你可以交我吗




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2