Part Number: TMS320F28377D
for(;;)
{
while(UpdateFine == 0) //UpadatFine is the enable flag for freq. sweep
{
if(CountUpdatefine >= CountUpdateMax) //Get into loop every 0XFFFF times
{
if(Period < PeriodMax)
{
//
// Perform sweep
//
PeriodIncrement = InputPeriodInc >> 16;
PeriodFineIncrement = (Uint16)InputPeriodInc;
Period = Period + PeriodIncrement;
PeriodFine_temp = (Uint32)PeriodFine +
(Uint32)PeriodFineIncrement;
if(PeriodFine_temp >= 0x10000)
{
PeriodFine_temp = PeriodFine_temp - 0x10000;
Period = Period + 1;
}
//
// Period is odd - CMP is divide by 2 for 50% duty
//
if (Period % 2 == 1)
{
PeriodOdd = 1;
}
else
{
PeriodOdd = 0;
}
PeriodFine = (Uint16) PeriodFine_temp;
//
// Update PWM values for non-zero increment
//
if (InputPeriodInc != 0)
{
FreqCtl_func();
}
}
else
{
Period = PeriodMin;
PeriodFine = 0;
if (InputPeriodInc != 0)
{
FreqCtl_func();
}
}
CountUpdatefine = 0;
}
CountUpdatefine++;
}
}
I cannot understand the meaning of variables like PeriodIncrement\PeriodFineIncrement or InputPeriodInc. Could you kindly help to explain the logic of frequency sweeping code ?
Thanks,
Brian