This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

PWM in TMS320F28335

#include "DSP2833x_Device.h"

void InitSysCtrl(void);

void main(void)
{
int a;

InitSysCtrl();

EALLOW;
GpioCtrlRegs.GPAMUX1.all = 0; // GPIO15 ... GPIO0 = General Puropse I/O
GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 1; // ePWM1A active
EDIS;

EPwm1Regs.TBCTL.bit.CLKDIV = 2; //for CLKDIV = 4
EPwm1Regs.TBCTL.bit.HSPCLKDIV = 4; //for HSPCLKDIV = 8
EPwm1Regs.TBCTL.bit.CTRMODE = 2; // up - down mode
EPwm1Regs.AQCTLA.all = 0x0060;
EPwm1Regs.CMPCTL.all=0x0010;
EPwm1Regs.TBPRD = 2344; //1KHz- PWM signal


while(1)

{a=500;

do

{a=a+500;

EPwm1Regs.CMPA.half.CMPA =a; // increasing value of CMPA.half.CMPA up to 2344 

}while(a<2344) ;

do

{a=a-500;

EPwm1Regs.CMPA.half.CMPA =a; //  decresing value of CMPA.half.CMPA up to 0

}while(a>0); 

}

}

I want to generate variable PWM  signal varying in between 0% to 100%.I m getting output of individual 25%,50%,75% but when i  trying to change them by only these three value array simultaneously i m getting change in my frequency. Here in my above code i m changing CMPA.half.CMPA in range between  0% to 100%   &  then  decreasing  but same problem getting.any solution??