- [plain] view plaincopy
- void FTM0_Init(void)
- {
- PORTC_PCR3= PORT_PCR_MUX(4); // 设置引脚C3引脚为FTM0_CH2功能
- PORTC_PCR4= PORT_PCR_MUX(4); // 设置引脚C4引脚为FTM0_CH3功能
- SIM_SCGC6|=SIM_SCGC6_FTM0_MASK;//使能FTM0时钟
- FTM0_SC=FTM_SC_CLKS(1)|FTM_SC_PS(4);//中断禁止,时钟源来自总线时钟60MHz,16分频后得到3.75MHz,CLKS=01,PS=100,CPWMS=0,递增计数
- FTM0_MODE |= FTM_MODE_WPDIS_MASK;//写保护禁止
- FTM0_MODE |=FTM_MODE_FTMEN_MASK;//FTMEN=1
- FTM0_QDCTRL&=~FTM_QDCTRL_QUADEN_MASK;//禁止正交解码模式
- FTM0_COMBINE|=FTM_COMBINE_COMBINE1_MASK;//FTM0通道2,3联合使用
- FTM0_COMBINE|=FTM_COMBINE_COMP1_MASK;//FTM0通道2,3互补输出
- FTM0_COMBINE|=FTM_COMBINE_SYNCEN1_MASK;//使能FTM0通道2,3 PWM同步
- FTM0_COMBINE|=FTM_COMBINE_DTEN1_MASK;//死区插入
- FTM0_DEADTIME=FTM_DEADTIME_DTPS(3)|FTM_DEADTIME_DTVAL(63);
- FTM0_SYNCONF|=FTM_SYNCONF_SWWRBUF_MASK;//使能MOD,CNTIN,CV寄存器的软件触发同步
- FTM0_SYNC=FTM_SYNC_CNTMIN_MASK|FTM_SYNC_CNTMAX_MASK;//设置load point
- FTM0_C2SC |= FTM_CnSC_ELSB_MASK;//ELSB=1,ELSA=0,左对齐,先高后低
- FTM0_C2SC &= ~FTM_CnSC_ELSA_MASK;
- FTM0_C3SC |= FTM_CnSC_ELSB_MASK;//ELSB=1,ELSA=0,左对齐,先高后低
- FTM0_C3SC &= ~FTM_CnSC_ELSA_MASK;
- FTM0_OUTMASK=0XF3;//通道2,3输出,屏蔽其它通道
- FTM0_CNTIN=0;//FTM0计数器初始值为0
- FTM0_MOD=37499;//结束值,周期为(MOD-CNTIN+1)*时钟周期=10ms
- FTM0_C2V=5625;//高电平1.5ms
- FTM0_C3V=20000;
- FTM0_CNT=0;
- FTM0_SYNC|=FTM_SYNC_SWSYNC_MASK;//使能软件触发
- }
|