use crate::pac::CRC;
use crate::rcc::{Enable, AHB};
pub trait CrcExt {
#[allow(clippy::wrong_self_convention, clippy::new_ret_no_self)]
fn new(self, ahb: &mut AHB) -> Crc;
}
impl CrcExt for CRC {
fn new(self, ahb: &mut AHB) -> Crc {
CRC::enable(ahb);
Crc { crc: self }
}
}
pub struct Crc {
crc: CRC,
}
impl Crc {
pub fn read(&self) -> u32 {
self.crc.dr.read().bits()
}
pub fn write(&mut self, val: u32) {
self.crc.dr.write(|w| w.dr().bits(val))
}
pub fn reset(&self) {
self.crc.cr.write(|w| w.reset().set_bit());
cortex_m::asm::nop();
}
}