@@ -413,7 +413,7 @@ macro_rules! ppre_calculate {
413
413
. unwrap_or( $hclk) ;
414
414
415
415
// Calculate suitable divider
416
- let ( $bits, $ppre) = match ( $hclk + $pclk - 1 ) / $pclk
416
+ let ( $bits, $ppre) = match $hclk. div_ceil ( $pclk)
417
417
{
418
418
0 => unreachable!( ) ,
419
419
1 => ( PPRE :: Div1 , 1 as u8 ) ,
@@ -617,19 +617,18 @@ impl Rcc {
617
617
let rcc_hclk = self . config . rcc_hclk . unwrap_or ( sys_ck. raw ( ) ) ;
618
618
619
619
// Estimate divisor
620
- let ( hpre_bits, hpre_div) =
621
- match ( sys_ck. raw ( ) + rcc_hclk - 1 ) / rcc_hclk {
622
- 0 => unreachable ! ( ) ,
623
- 1 => ( HPRE :: Div1 , 1 ) ,
624
- 2 => ( HPRE :: Div2 , 2 ) ,
625
- 3 ..=5 => ( HPRE :: Div4 , 4 ) ,
626
- 6 ..=11 => ( HPRE :: Div8 , 8 ) ,
627
- 12 ..=39 => ( HPRE :: Div16 , 16 ) ,
628
- 40 ..=95 => ( HPRE :: Div64 , 64 ) ,
629
- 96 ..=191 => ( HPRE :: Div128 , 128 ) ,
630
- 192 ..=383 => ( HPRE :: Div256 , 256 ) ,
631
- _ => ( HPRE :: Div512 , 512 ) ,
632
- } ;
620
+ let ( hpre_bits, hpre_div) = match sys_ck. raw ( ) . div_ceil ( rcc_hclk) {
621
+ 0 => unreachable ! ( ) ,
622
+ 1 => ( HPRE :: Div1 , 1 ) ,
623
+ 2 => ( HPRE :: Div2 , 2 ) ,
624
+ 3 ..=5 => ( HPRE :: Div4 , 4 ) ,
625
+ 6 ..=11 => ( HPRE :: Div8 , 8 ) ,
626
+ 12 ..=39 => ( HPRE :: Div16 , 16 ) ,
627
+ 40 ..=95 => ( HPRE :: Div64 , 64 ) ,
628
+ 96 ..=191 => ( HPRE :: Div128 , 128 ) ,
629
+ 192 ..=383 => ( HPRE :: Div256 , 256 ) ,
630
+ _ => ( HPRE :: Div512 , 512 ) ,
631
+ } ;
633
632
634
633
// Calculate real AHB clock
635
634
let rcc_hclk = sys_ck. raw ( ) / hpre_div;
0 commit comments