#include "f28p55x_device.h" #include "f28p55x_examples.h" void Gpio_select(void); void Setup_ePWM1(void); void main(void) { InitSysCtrl(); DINT; InitPieCtrl(); IER = 0x0000; IFR = 0x0000; PieCtrlRegs.PIECTRL.bit.ENPIE = 0; PieCtrlRegs.PIEACK.all = 0xFFFF; InitPieVectTable(); CpuTimer0Regs.TCR.bit.TSS = 1; CpuTimer1Regs.TCR.bit.TSS = 1; CpuTimer2Regs.TCR.bit.TSS = 1; InitGpio(); EALLOW; CpuSysRegs.PCLKCR2.bit.EPWM1 = 1; CpuSysRegs.PCLKCR0.bit.TBCLKSYNC = 0; EDIS; InitEPwm1Gpio(); Setup_ePWM1(); EALLOW; CpuSysRegs.PCLKCR0.bit.TBCLKSYNC = 1; EDIS; while(1) { } } void Gpio_select(void) { EALLOW; GpioCtrlRegs.GPAMUX1.bit.GPIO0=1; GpioCtrlRegs.GPAMUX1.bit.GPIO1=1; // Disable internal pull-ups for clean switching GpioCtrlRegs.GPAPUD.bit.GPIO0 = 1; GpioCtrlRegs.GPAPUD.bit.GPIO1 = 1; EDIS; } void Setup_ePWM1(void) { EALLOW; EPwm1Regs.TZSEL.all = 0x0000; EPwm1Regs.TZCTL.all = 0x0000; EPwm1Regs.TZCLR.all = 0xFFFF; EPwm1Regs.TBPRD = 750; EPwm1Regs.TBCTR = 0; EPwm1Regs.TBPHS.bit.TBPHS = 0; EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE; EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1; EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1; EPwm1Regs.CMPA.bit.CMPA = 375; EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR; EPwm1Regs.AQCTLA.bit.CAD = AQ_SET; EPwm1Regs.DBCTL.bit.OUT_MODE = DB_DISABLE; EDIS; }