Hi,
I thought it was clear because this is a classical (and well-known) mistake in integer math. Here is an example:
Assume PLL2 is set to 528 MHz and PFD1 is set to 1 (FRAC=18).
CLOCK_GetPllFreq(kCLOCK_PllSys) returns 528000000, so freq = 528000000
freq gets divided by PFD1_FRAC which is 18, so:
freq = freq / 18 = 528000000 / 18 = 29333333.33 which will be rounded down to freq = 29333333
Next, freq gets multiplied by 18:
freq = freq * 18 = 29333333 * 18 = 527999994
CLOCK_GetSysPfdFreq() returns 527999994 which is not correct.
If integer arithmetic is used, multiplication must be done before the division. If the function is rewritten as indicated above, it returns 528000000 as expected.
Udo