File tree Expand file tree Collapse file tree 1 file changed +4
-3
lines changed Expand file tree Collapse file tree 1 file changed +4
-3
lines changed Original file line number Diff line number Diff line change @@ -221,7 +221,8 @@ impl CFGR {
221
221
222
222
assert ! ( !use_pll || sysclk <= sysclk_max && sysclk >= sysclk_min) ;
223
223
224
- let ( hpre_bits, hpre_div) = match sysclk / self . hclk . unwrap_or ( sysclk) {
224
+ let hclk = self . hclk . unwrap_or ( sysclk) ;
225
+ let ( hpre_bits, hpre_div) = match ( sysclk + hclk - 1 ) / hclk {
225
226
0 => unreachable ! ( ) ,
226
227
1 => ( HPREW :: DIV1 , 1 ) ,
227
228
2 => ( HPREW :: DIV2 , 2 ) ,
@@ -265,7 +266,7 @@ impl CFGR {
265
266
let ( pclk1_max, pclk2_max) = ( 50_000_000 , 100_000_000 ) ;
266
267
267
268
let pclk1 = self . pclk1 . unwrap_or ( core:: cmp:: min ( pclk1_max, hclk) ) ;
268
- let ( ppre1_bits, ppre1) = match hclk / pclk1 {
269
+ let ( ppre1_bits, ppre1) = match ( hclk + pclk1 - 1 ) / pclk1 {
269
270
0 => unreachable ! ( ) ,
270
271
1 => ( 0b000 , 1 ) ,
271
272
2 => ( 0b100 , 2 ) ,
@@ -280,7 +281,7 @@ impl CFGR {
280
281
assert ! ( pclk1 <= pclk1_max) ;
281
282
282
283
let pclk2 = self . pclk2 . unwrap_or ( core:: cmp:: min ( pclk2_max, hclk) ) ;
283
- let ( ppre2_bits, ppre2) = match hclk / pclk2 {
284
+ let ( ppre2_bits, ppre2) = match ( hclk + pclk2 - 1 ) / pclk2 {
284
285
0 => unreachable ! ( ) ,
285
286
1 => ( 0b000 , 1 ) ,
286
287
2 => ( 0b100 , 2 ) ,
You can’t perform that action at this time.
0 commit comments