pub type R = crate::R<CRrs>;
pub type W = crate::W<CRrs>;
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum HSION {
Off = 0,
On = 1,
}
impl From<HSION> for bool {
#[inline(always)]
fn from(variant: HSION) -> Self {
variant as u8 != 0
}
}
pub type HSION_R = crate::BitReader<HSION>;
impl HSION_R {
#[inline(always)]
pub const fn variant(&self) -> HSION {
match self.bits {
false => HSION::Off,
true => HSION::On,
}
}
#[inline(always)]
pub fn is_off(&self) -> bool {
*self == HSION::Off
}
#[inline(always)]
pub fn is_on(&self) -> bool {
*self == HSION::On
}
}
pub type HSION_W<'a, REG> = crate::BitWriter<'a, REG, HSION>;
impl<'a, REG> HSION_W<'a, REG>
where
REG: crate::Writable + crate::RegisterSpec,
{
#[inline(always)]
pub fn off(self) -> &'a mut crate::W<REG> {
self.variant(HSION::Off)
}
#[inline(always)]
pub fn on(self) -> &'a mut crate::W<REG> {
self.variant(HSION::On)
}
}
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum HSIRDYR {
NotReady = 0,
Ready = 1,
}
impl From<HSIRDYR> for bool {
#[inline(always)]
fn from(variant: HSIRDYR) -> Self {
variant as u8 != 0
}
}
pub type HSIRDY_R = crate::BitReader<HSIRDYR>;
impl HSIRDY_R {
#[inline(always)]
pub const fn variant(&self) -> HSIRDYR {
match self.bits {
false => HSIRDYR::NotReady,
true => HSIRDYR::Ready,
}
}
#[inline(always)]
pub fn is_not_ready(&self) -> bool {
*self == HSIRDYR::NotReady
}
#[inline(always)]
pub fn is_ready(&self) -> bool {
*self == HSIRDYR::Ready
}
}
pub type HSITRIM_R = crate::FieldReader;
pub type HSITRIM_W<'a, REG> = crate::FieldWriter<'a, REG, 5, u8, crate::Safe>;
pub type HSICAL_R = crate::FieldReader;
pub use HSION_R as HSEON_R;
pub use HSION_W as HSEON_W;
pub use HSIRDY_R as HSERDY_R;
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum HSEBYP {
NotBypassed = 0,
Bypassed = 1,
}
impl From<HSEBYP> for bool {
#[inline(always)]
fn from(variant: HSEBYP) -> Self {
variant as u8 != 0
}
}
pub type HSEBYP_R = crate::BitReader<HSEBYP>;
impl HSEBYP_R {
#[inline(always)]
pub const fn variant(&self) -> HSEBYP {
match self.bits {
false => HSEBYP::NotBypassed,
true => HSEBYP::Bypassed,
}
}
#[inline(always)]
pub fn is_not_bypassed(&self) -> bool {
*self == HSEBYP::NotBypassed
}
#[inline(always)]
pub fn is_bypassed(&self) -> bool {
*self == HSEBYP::Bypassed
}
}
pub type HSEBYP_W<'a, REG> = crate::BitWriter<'a, REG, HSEBYP>;
impl<'a, REG> HSEBYP_W<'a, REG>
where
REG: crate::Writable + crate::RegisterSpec,
{
#[inline(always)]
pub fn not_bypassed(self) -> &'a mut crate::W<REG> {
self.variant(HSEBYP::NotBypassed)
}
#[inline(always)]
pub fn bypassed(self) -> &'a mut crate::W<REG> {
self.variant(HSEBYP::Bypassed)
}
}
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum CSSON {
Off = 0,
On = 1,
}
impl From<CSSON> for bool {
#[inline(always)]
fn from(variant: CSSON) -> Self {
variant as u8 != 0
}
}
pub type CSSON_R = crate::BitReader<CSSON>;
impl CSSON_R {
#[inline(always)]
pub const fn variant(&self) -> CSSON {
match self.bits {
false => CSSON::Off,
true => CSSON::On,
}
}
#[inline(always)]
pub fn is_off(&self) -> bool {
*self == CSSON::Off
}
#[inline(always)]
pub fn is_on(&self) -> bool {
*self == CSSON::On
}
}
pub type CSSON_W<'a, REG> = crate::BitWriter<'a, REG, CSSON>;
impl<'a, REG> CSSON_W<'a, REG>
where
REG: crate::Writable + crate::RegisterSpec,
{
#[inline(always)]
pub fn off(self) -> &'a mut crate::W<REG> {
self.variant(CSSON::Off)
}
#[inline(always)]
pub fn on(self) -> &'a mut crate::W<REG> {
self.variant(CSSON::On)
}
}
pub use HSION_R as PLLON_R;
pub use HSION_R as PLLI2SON_R;
pub use HSION_R as PLLSAION_R;
pub use HSION_W as PLLON_W;
pub use HSION_W as PLLI2SON_W;
pub use HSION_W as PLLSAION_W;
pub use HSIRDY_R as PLLRDY_R;
pub use HSIRDY_R as PLLI2SRDY_R;
pub use HSIRDY_R as PLLSAIRDY_R;
impl R {
#[inline(always)]
pub fn hsion(&self) -> HSION_R {
HSION_R::new((self.bits & 1) != 0)
}
#[inline(always)]
pub fn hsirdy(&self) -> HSIRDY_R {
HSIRDY_R::new(((self.bits >> 1) & 1) != 0)
}
#[inline(always)]
pub fn hsitrim(&self) -> HSITRIM_R {
HSITRIM_R::new(((self.bits >> 3) & 0x1f) as u8)
}
#[inline(always)]
pub fn hsical(&self) -> HSICAL_R {
HSICAL_R::new(((self.bits >> 8) & 0xff) as u8)
}
#[inline(always)]
pub fn hseon(&self) -> HSEON_R {
HSEON_R::new(((self.bits >> 16) & 1) != 0)
}
#[inline(always)]
pub fn hserdy(&self) -> HSERDY_R {
HSERDY_R::new(((self.bits >> 17) & 1) != 0)
}
#[inline(always)]
pub fn hsebyp(&self) -> HSEBYP_R {
HSEBYP_R::new(((self.bits >> 18) & 1) != 0)
}
#[inline(always)]
pub fn csson(&self) -> CSSON_R {
CSSON_R::new(((self.bits >> 19) & 1) != 0)
}
#[inline(always)]
pub fn pllon(&self) -> PLLON_R {
PLLON_R::new(((self.bits >> 24) & 1) != 0)
}
#[inline(always)]
pub fn pllrdy(&self) -> PLLRDY_R {
PLLRDY_R::new(((self.bits >> 25) & 1) != 0)
}
#[inline(always)]
pub fn plli2son(&self) -> PLLI2SON_R {
PLLI2SON_R::new(((self.bits >> 26) & 1) != 0)
}
#[inline(always)]
pub fn plli2srdy(&self) -> PLLI2SRDY_R {
PLLI2SRDY_R::new(((self.bits >> 27) & 1) != 0)
}
#[inline(always)]
pub fn pllsaion(&self) -> PLLSAION_R {
PLLSAION_R::new(((self.bits >> 28) & 1) != 0)
}
#[inline(always)]
pub fn pllsairdy(&self) -> PLLSAIRDY_R {
PLLSAIRDY_R::new(((self.bits >> 29) & 1) != 0)
}
}
impl core::fmt::Debug for R {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("CR")
.field("hsirdy", &self.hsirdy())
.field("plli2srdy", &self.plli2srdy())
.field("hsion", &self.hsion())
.field("plli2son", &self.plli2son())
.field("pllrdy", &self.pllrdy())
.field("pllon", &self.pllon())
.field("csson", &self.csson())
.field("hsebyp", &self.hsebyp())
.field("hserdy", &self.hserdy())
.field("hseon", &self.hseon())
.field("hsical", &self.hsical())
.field("hsitrim", &self.hsitrim())
.field("pllsairdy", &self.pllsairdy())
.field("pllsaion", &self.pllsaion())
.finish()
}
}
impl W {
#[inline(always)]
pub fn hsion(&mut self) -> HSION_W<CRrs> {
HSION_W::new(self, 0)
}
#[inline(always)]
pub fn hsitrim(&mut self) -> HSITRIM_W<CRrs> {
HSITRIM_W::new(self, 3)
}
#[inline(always)]
pub fn hseon(&mut self) -> HSEON_W<CRrs> {
HSEON_W::new(self, 16)
}
#[inline(always)]
pub fn hsebyp(&mut self) -> HSEBYP_W<CRrs> {
HSEBYP_W::new(self, 18)
}
#[inline(always)]
pub fn csson(&mut self) -> CSSON_W<CRrs> {
CSSON_W::new(self, 19)
}
#[inline(always)]
pub fn pllon(&mut self) -> PLLON_W<CRrs> {
PLLON_W::new(self, 24)
}
#[inline(always)]
pub fn plli2son(&mut self) -> PLLI2SON_W<CRrs> {
PLLI2SON_W::new(self, 26)
}
#[inline(always)]
pub fn pllsaion(&mut self) -> PLLSAION_W<CRrs> {
PLLSAION_W::new(self, 28)
}
}
pub struct CRrs;
impl crate::RegisterSpec for CRrs {
type Ux = u32;
}
impl crate::Readable for CRrs {}
impl crate::Writable for CRrs {
type Safety = crate::Unsafe;
}
impl crate::Resettable for CRrs {
const RESET_VALUE: u32 = 0x83;
}