Hi,
I have a small question which is silly one.
i have generated a PWM signal at 20KHz ,60% Duty Cycle.I have to vary the duty cycle in my application for that i written the following code :
EPwm1Regs.TBCTL.bit.CTRMODE = TB_FREEZE; // Disable the timer
EPwm1Regs.TBCTL.bit.HSPCLKDIV = 1; //default
EPwm1Regs.TBCTL.bit.CLKDIV = 0; //default
EPwm1Regs.TBCTL.bit.CTRMODE= TB_COUNT_UPDOWN;
EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE; // phase is disabled
EPwm1Regs.TBCTL.bit.SYNCOSEL =0; //syn is disabled
EPwm1Regs.TBPRD =3750;// calculted timebase period value for 20KHz,60% duty cycle
EPwm1Regs.TBCTR = 0;
// setup compare values
EPwm1Regs.CMPA.half.CMPA =1125;
// Setup shadowing
EPwm1Regs.CMPCTL.bit.SHDWAMODE=CC_SHADOW;
EPwm1Regs.CMPCTL.bit.LOADAMODE= CC_CTR_ZERO;
// Set actions
EPwm1Regs.AQCTLA.bit.CAU = AQ_SET;
EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR;
EPwm1Regs.DBCTL.bit.OUT_MODE = 0; // Deadband disabled
EPwm1Regs.PCCTL.bit.CHPEN = 0; // PWM chopper unit disabled , completion of generating PWM wave supplied to MOSFET.
EALLOW;
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;
EDIS;
My question is how to calculate the duty cycle ?
for this appliction i have to change the duty cycle continuously how to do that ?
please help me
and also please provide sample code for Maximum power point tracking for photovltaic systems
Thanks & Regards,
Naveen Rangu