Used num::integer::gcd to improve pll params
This commit is contained in:
parent
c8cd7ce46c
commit
929df22f4e
|
@ -93,8 +93,9 @@ where
|
|||
let fdiv = self.pll_freqs[*pll as usize] / freq_xtal;
|
||||
let rm = self.pll_freqs[*pll as usize] % freq_xtal;
|
||||
|
||||
//TODO: Find better way to determine c and b
|
||||
let c = 0x0FFFFF;
|
||||
let gcd = num::integer::gcd(rm, freq_xtal);
|
||||
|
||||
let c = if gcd < 0x0FFFFF { gcd } else { 0x0FFFFF };
|
||||
let a = fdiv;
|
||||
let b = ((rm as u64) * (c as u64) / (freq_xtal as u64)) as u32;
|
||||
|
||||
|
@ -137,8 +138,9 @@ where
|
|||
let fdiv = self.pll_freqs[pll as usize] / freq;
|
||||
let rm = self.pll_freqs[pll as usize] % freq;
|
||||
|
||||
//TODO: Find better way to determine c and b
|
||||
let c: u32 = 0x0FFFFF;
|
||||
let gcd = num::integer::gcd(rm, freq);
|
||||
|
||||
let c: u32 = if gcd < 0x0FFFFF { gcd } else { 0x0FFFFF };
|
||||
let a: u32 = fdiv;
|
||||
let b: u32 = ((rm as u64) * (c as u64) / (freq as u64)) as u32;
|
||||
|
||||
|
|
Loading…
Reference in New Issue