#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??