AnsweredAssumed Answered

MCF51QM128 FTM1 in center aligned PWM mode

Question asked by nz_developer on Sep 19, 2012
Latest reply on Sep 27, 2012 by nz_developer

Trying to get a center aligned PWM output working. Managed to get Normal PWM working but when I change to center aligned it wont work. Any suggestions would really help me. I am using the processor expert to generate this code.

 

void FT1_Init(void)

{

  /* SIM_SCGC3: FTM1=1 */

  SIM_SCGC3 |= (uint8_t)0x08U;                           

  /* FTM1_MODE: FAULTIE=0,FAULTM=0,CAPTEST=0,PWMSYNC=0,WPDIS=1,INIT=0,FTMEN=1 */

  FTM1_MODE = (uint8_t)0x05U;                            

  /* FTM1_SC: TOF=0,TOIE=0,CPWMS=0,CLKS=0,PS=0 */

  FTM1_SC = (uint8_t)0x00U;                            

  /* FTM1_C0SC: CHF=0,CHIE=0,MSB=0,MSA=0,ELSB=0,ELSA=0,??=0,DMA=0 */

  FTM1_C0SC = (uint8_t)0x00U;                            

  /* FTM1_C1SC: CHF=0,CHIE=0,MSB=0,MSA=0,ELSB=0,ELSA=0,??=0,DMA=0 */

  FTM1_C1SC = (uint8_t)0x00U;                            

  /* FTM1_C2SC: CHF=0,CHIE=0,MSB=0,MSA=0,ELSB=0,ELSA=0,??=0,DMA=0 */

  FTM1_C2SC = (uint8_t)0x00U;                            

  /* FTM1_C3SC: CHF=0,CHIE=0,MSB=0,MSA=0,ELSB=0,ELSA=0,??=0,DMA=0 */

  FTM1_C3SC = (uint8_t)0x00U;                            

  /* FTM1_C4SC: CHF=0,CHIE=0,MSB=0,MSA=0,ELSB=0,ELSA=0,??=0,DMA=0 */

  FTM1_C4SC = (uint8_t)0x00U;                            

  /* FTM1_C5SC: CHF=0,CHIE=0,MSB=0,MSA=0,ELSB=0,ELSA=0,??=0,DMA=0 */

  FTM1_C5SC = (uint8_t)0x00U;                            

  /* FTM1_CNTINH: INIT_H=0 */

  FTM1_CNTINH = (uint8_t)0x00U;                            

  /* FTM1_CNTINL: INIT_L=0 */

  FTM1_CNTINL = (uint8_t)0x00U;                            

  /* FTM1_CNTH: COUNT_H=0 */

  FTM1_CNTH = (uint8_t)0x00U;                            

  /* FTM1_CNTL: COUNT_L=0 */

  FTM1_CNTL = (uint8_t)0x00U;                            

  /* FTM1_MODH: MOD_H=0 */

  FTM1_MODH = (uint8_t)0x00U;                            

  /* FTM1_MODL: MOD_L=0x4A */

  FTM1_MODL = (uint8_t)0x4AU;                            

  /* FTM1_FILTER0: CHoddFVAL=0,CHevenFVAL=0 */

  FTM1_FILTER0 = (uint8_t)0x00U;                            

  /* FTM1_FILTER1: CHoddFVAL=0,CHevenFVAL=0 */

  FTM1_FILTER1 = (uint8_t)0x00U;                            

  /* FTM1_C0SC: CHF=0,CHIE=0,MSB=0,MSA=0,ELSB=1,ELSA=0,??=0,DMA=0 */

  FTM1_C0SC = (uint8_t)0x08U;                            

  /* FTM1_C1SC: CHF=0,CHIE=0,MSB=0,MSA=0,ELSB=1,ELSA=0,??=0,DMA=0 */

  FTM1_C1SC = (uint8_t)0x08U;                            

  /* FTM1_C2SC: CHF=0,CHIE=0,MSB=0,MSA=0,ELSB=1,ELSA=0,??=0,DMA=0 */

  FTM1_C2SC = (uint8_t)0x08U;                            

  /* FTM1_C3SC: CHF=0,CHIE=0,MSB=0,MSA=0,ELSB=1,ELSA=0,??=0,DMA=0 */

  FTM1_C3SC = (uint8_t)0x08U;                            

  /* FTM1_C4SC: CHF=0,CHIE=0,MSB=0,MSA=1,ELSB=0,ELSA=0,??=0,DMA=0 */

  FTM1_C4SC = (uint8_t)0x10U;                            

  /* FTM1_C5SC: CHF=0,CHIE=0,MSB=0,MSA=1,ELSB=0,ELSA=0,??=0,DMA=0 */

  FTM1_C5SC = (uint8_t)0x10U;                            

  /* FTM1_C0VH: VAL_H=0 */

  FTM1_C0VH = (uint8_t)0x00U;                            

  /* FTM1_C0VL: VAL_L=0x14 */

  FTM1_C0VL = (uint8_t)0x14U;                            

  /* FTM1_C1VH: VAL_H=0 */

  FTM1_C1VH = (uint8_t)0x00U;                            

  /* FTM1_C1VL: VAL_L=0x14 */

  FTM1_C1VL = (uint8_t)0x14U;                            

  /* FTM1_C2VH: VAL_H=0 */

  FTM1_C2VH = (uint8_t)0x00U;                            

  /* FTM1_C2VL: VAL_L=0x16 */

  FTM1_C2VL = (uint8_t)0x16U;                            

  /* FTM1_C3VH: VAL_H=0 */

  FTM1_C3VH = (uint8_t)0x00U;                            

  /* FTM1_C3VL: VAL_L=0x22 */

  FTM1_C3VL = (uint8_t)0x22U;                            

  /* FTM1_C4VH: VAL_H=0 */

  FTM1_C4VH = (uint8_t)0x00U;                            

  /* FTM1_C4VL: VAL_L=0 */

  FTM1_C4VL = (uint8_t)0x00U;                            

  /* FTM1_C5VH: VAL_H=0 */

  FTM1_C5VH = (uint8_t)0x00U;                            

  /* FTM1_C5VL: VAL_L=0 */

  FTM1_C5VL = (uint8_t)0x00U;                            

  /* FTM1_POL: POL7=0,POL6=0,POL5=0,POL4=0,POL3=0,POL2=0,POL1=0,POL0=0 */

  FTM1_POL = (uint8_t)0xFFU;                            

  /* FTM1_OUTINIT: CH7OI=0,CH6OI=0,CH5OI=0,CH4OI=0,CH3OI=0,CH2OI=1,CH1OI=0,CH0OI=1 */

  FTM1_OUTINIT = (uint8_t)0x05U;                            

  /* FTM1_OUTMASK: CH7OM=0,CH6OM=0,CH5OM=0,CH4OM=0,CH3OM=0,CH2OM=0,CH1OM=0,CH0OM=1 */

  FTM1_OUTMASK = (uint8_t)0x01U;                            

  /* FTM1_COMBINE0: ??=0,FAULTEN=0,SYNCEN=0,DTEN=0,DECAP=0,DECAPEN=0,COMP=0,COMBINE=0 */

  FTM1_COMBINE0 = (uint8_t)0x00U;                            

  /* FTM1_COMBINE1: ??=0,FAULTEN=0,SYNCEN=0,DTEN=0,DECAP=0,DECAPEN=0,COMP=0,COMBINE=0 */

  FTM1_COMBINE1 = (uint8_t)0x00U;                            

  /* FTM1_COMBINE2: ??=0,FAULTEN=0,SYNCEN=0,DTEN=0,DECAP=0,DECAPEN=0,COMP=0,COMBINE=0 */

  FTM1_COMBINE2 = (uint8_t)0x00U;                            

  /* FTM1_DEADTIME: DTPS=0,DTVAL=0 */

  FTM1_DEADTIME = (uint8_t)0x00U;                            

  /* FTM1_SYNC: SWSYNC=0,TRIG2=0,TRIG1=0,TRIG0=0,SYNCHOM=0,REINIT=0,CNTMAX=0,CNTMIN=0 */

  FTM1_SYNC = (uint8_t)0x00U;                            

  /* FTM1_EXTTRIG: TRIGF=0,INITTRIGEN=0,CH1TRIG=0,CH0TRIG=0,CH5TRIG=0,CH4TRIG=0,CH3TRIG=0,CH2TRIG=0 */

  FTM1_EXTTRIG = (uint8_t)0x00U;                            

  /* FTM1_FLTFILTER: ??=0,??=0,??=0,??=0,FFVAL=0 */

  FTM1_FLTFILTER = (uint8_t)0x00U;                            

  /* FTM1_FLTCTRL: FFLTR3EN=0,FFLTR2EN=0,FFLTR1EN=0,FFLTR0EN=0,FAULT3EN=0,FAULT2EN=0,FAULT1EN=0,FAULT0EN=0 */

  FTM1_FLTCTRL = (uint8_t)0x00U;                            

  /* FTM1_MODE: FAULTIE=0,FAULTM=0,CAPTEST=0,PWMSYNC=0,WPDIS=1,INIT=1,FTMEN=1 */

  FTM1_MODE = (uint8_t)0x07U;                            

  /* FTM1_SC: TOF=0,TOIE=0,CPWMS=1,CLKS=1,PS=0 */

  FTM1_SC = (uint8_t)0x28U;                            

}

 

also have this which I don't think is needed

  MXC_PTAPF4 = (MXC_PTAPF4 & 0xF) |(0x4 <<4);

  MXC_PTAPF3 = 0x4;

 

Thank you


 


Outcomes