Skip to content

Commit 8fa675e

Browse files
authored
Merge pull request #171 from Sh3Rm4n/refractor
Refactor
2 parents 969d634 + 7d42223 commit 8fa675e

File tree

2 files changed

+44
-47
lines changed

2 files changed

+44
-47
lines changed

src/rcc.rs

Lines changed: 34 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -595,53 +595,50 @@ impl CFGR {
595595
pub fn freeze(self, acr: &mut ACR) -> Clocks {
596596
let (sysclk, sysclk_source, pll_config) = self.get_sysclk();
597597

598-
let (hpre_bits, hpre) = self
599-
.hclk
600-
.map(|hclk| match sysclk / hclk {
601-
0 => unreachable!(),
602-
1 => (cfgr::HPRE_A::DIV1, 1),
603-
2 => (cfgr::HPRE_A::DIV2, 2),
604-
3..=5 => (cfgr::HPRE_A::DIV4, 4),
605-
6..=11 => (cfgr::HPRE_A::DIV8, 8),
606-
12..=39 => (cfgr::HPRE_A::DIV16, 16),
607-
40..=95 => (cfgr::HPRE_A::DIV64, 64),
608-
96..=191 => (cfgr::HPRE_A::DIV128, 128),
609-
192..=383 => (cfgr::HPRE_A::DIV256, 256),
610-
_ => (cfgr::HPRE_A::DIV512, 512),
611-
})
612-
.unwrap_or((cfgr::HPRE_A::DIV1, 1));
598+
let (hpre_bits, hpre) =
599+
self.hclk
600+
.map_or((cfgr::HPRE_A::DIV1, 1), |hclk| match sysclk / hclk {
601+
0 => unreachable!(),
602+
1 => (cfgr::HPRE_A::DIV1, 1),
603+
2 => (cfgr::HPRE_A::DIV2, 2),
604+
3..=5 => (cfgr::HPRE_A::DIV4, 4),
605+
6..=11 => (cfgr::HPRE_A::DIV8, 8),
606+
12..=39 => (cfgr::HPRE_A::DIV16, 16),
607+
40..=95 => (cfgr::HPRE_A::DIV64, 64),
608+
96..=191 => (cfgr::HPRE_A::DIV128, 128),
609+
192..=383 => (cfgr::HPRE_A::DIV256, 256),
610+
_ => (cfgr::HPRE_A::DIV512, 512),
611+
});
613612

614613
let hclk: u32 = sysclk / hpre;
615614

616615
assert!(hclk <= 72_000_000);
617616

618-
let (ppre1_bits, ppre1) = self
619-
.pclk1
620-
.map(|pclk1| match hclk / pclk1 {
621-
0 => unreachable!(),
622-
1 => (cfgr::PPRE1_A::DIV1, 1),
623-
2 => (cfgr::PPRE1_A::DIV2, 2),
624-
3..=5 => (cfgr::PPRE1_A::DIV4, 4),
625-
6..=11 => (cfgr::PPRE1_A::DIV8, 8),
626-
_ => (cfgr::PPRE1_A::DIV16, 16),
627-
})
628-
.unwrap_or((cfgr::PPRE1_A::DIV1, 1));
617+
let (ppre1_bits, ppre1) =
618+
self.pclk1
619+
.map_or((cfgr::PPRE1_A::DIV1, 1), |pclk1| match hclk / pclk1 {
620+
0 => unreachable!(),
621+
1 => (cfgr::PPRE1_A::DIV1, 1),
622+
2 => (cfgr::PPRE1_A::DIV2, 2),
623+
3..=5 => (cfgr::PPRE1_A::DIV4, 4),
624+
6..=11 => (cfgr::PPRE1_A::DIV8, 8),
625+
_ => (cfgr::PPRE1_A::DIV16, 16),
626+
});
629627

630628
let pclk1 = hclk / u32::from(ppre1);
631629

632630
assert!(pclk1 <= 36_000_000);
633631

634-
let (ppre2_bits, ppre2) = self
635-
.pclk2
636-
.map(|pclk2| match hclk / pclk2 {
637-
0 => unreachable!(),
638-
1 => (cfgr::PPRE2_A::DIV1, 1),
639-
2 => (cfgr::PPRE2_A::DIV2, 2),
640-
3..=5 => (cfgr::PPRE2_A::DIV4, 4),
641-
6..=11 => (cfgr::PPRE2_A::DIV8, 8),
642-
_ => (cfgr::PPRE2_A::DIV16, 16),
643-
})
644-
.unwrap_or((cfgr::PPRE2_A::DIV1, 1));
632+
let (ppre2_bits, ppre2) =
633+
self.pclk2
634+
.map_or((cfgr::PPRE2_A::DIV1, 1), |pclk2| match hclk / pclk2 {
635+
0 => unreachable!(),
636+
1 => (cfgr::PPRE2_A::DIV1, 1),
637+
2 => (cfgr::PPRE2_A::DIV2, 2),
638+
3..=5 => (cfgr::PPRE2_A::DIV4, 4),
639+
6..=11 => (cfgr::PPRE2_A::DIV8, 8),
640+
_ => (cfgr::PPRE2_A::DIV16, 16),
641+
});
645642

646643
let pclk2 = hclk / u32::from(ppre2);
647644

src/rtc.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -271,8 +271,8 @@ impl Rtcc for Rtc {
271271

272272
fn get_time(&mut self) -> Result<NaiveTime, Self::Error> {
273273
self.set_24h_fmt();
274-
let seconds = self.get_seconds().unwrap();
275-
let minutes = self.get_minutes().unwrap();
274+
let seconds = self.get_seconds()?;
275+
let minutes = self.get_minutes()?;
276276
let hours = hours_to_u8(self.get_hours()?)?;
277277

278278
Ok(NaiveTime::from_hms(
@@ -308,22 +308,22 @@ impl Rtcc for Rtc {
308308
}
309309

310310
fn get_date(&mut self) -> Result<NaiveDate, Self::Error> {
311-
let day = self.get_day().unwrap();
312-
let month = self.get_month().unwrap();
313-
let year = self.get_year().unwrap();
311+
let day = self.get_day()?;
312+
let month = self.get_month()?;
313+
let year = self.get_year()?;
314314

315315
Ok(NaiveDate::from_ymd(year.into(), month.into(), day.into()))
316316
}
317317

318318
fn get_datetime(&mut self) -> Result<NaiveDateTime, Self::Error> {
319319
self.set_24h_fmt();
320320

321-
let day = self.get_day().unwrap();
322-
let month = self.get_month().unwrap();
323-
let year = self.get_year().unwrap();
321+
let day = self.get_day()?;
322+
let month = self.get_month()?;
323+
let year = self.get_year()?;
324324

325-
let seconds = self.get_seconds().unwrap();
326-
let minutes = self.get_minutes().unwrap();
325+
let seconds = self.get_seconds()?;
326+
let minutes = self.get_minutes()?;
327327
let hours = hours_to_u8(self.get_hours()?)?;
328328

329329
Ok(

0 commit comments

Comments
 (0)