1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
#[doc = "Reader of register RTCCTRL"] pub type R = crate::R<u8, super::RTCCTRL>; #[doc = "Writer for register RTCCTRL"] pub type W = crate::W<u8, super::RTCCTRL>; #[doc = "Register RTCCTRL `reset()`'s with value 0"] impl crate::ResetValue for super::RTCCTRL { type Type = u8; #[inline(always)] fn reset_value() -> Self::Type { 0 } } #[doc = "Possible values of the field `RTCSEL`"] #[derive(Clone, Copy, Debug, PartialEq)] pub enum RTCSEL_A { #[doc = "1.024kHz from 32kHz internal ULP oscillator"] ULP1K, #[doc = "32.768kHz from 32kHz internal ULP oscillator"] ULP32K, #[doc = "1.024kHz from 32.768kHz internal oscillator"] OSC1K, #[doc = "32.768kHz from 32.768kHz internal oscillator"] OSC32K, #[doc = "1.024kHz from 32.768kHz internal oscillator"] XOSC1K, #[doc = "32.768kHz from 32.768kHz external crystal oscillator"] XOSC32K, } impl crate::ToBits<u8> for RTCSEL_A { #[inline(always)] fn _bits(&self) -> u8 { match *self { RTCSEL_A::ULP1K => 0, RTCSEL_A::ULP32K => 1, RTCSEL_A::OSC1K => 2, RTCSEL_A::OSC32K => 3, RTCSEL_A::XOSC1K => 4, RTCSEL_A::XOSC32K => 5, } } } #[doc = "Reader of field `RTCSEL`"] pub type RTCSEL_R = crate::R<u8, RTCSEL_A>; impl RTCSEL_R { #[doc = r"Get enumerated values variant"] #[inline(always)] pub fn variant(&self) -> crate::Variant<u8, RTCSEL_A> { use crate::Variant::*; match self.bits { 0 => Val(RTCSEL_A::ULP1K), 1 => Val(RTCSEL_A::ULP32K), 2 => Val(RTCSEL_A::OSC1K), 3 => Val(RTCSEL_A::OSC32K), 4 => Val(RTCSEL_A::XOSC1K), 5 => Val(RTCSEL_A::XOSC32K), i => Res(i), } } #[doc = "Checks if the value of the field is `ULP1K`"] #[inline(always)] pub fn is_ulp1k(&self) -> bool { *self == RTCSEL_A::ULP1K } #[doc = "Checks if the value of the field is `ULP32K`"] #[inline(always)] pub fn is_ulp32k(&self) -> bool { *self == RTCSEL_A::ULP32K } #[doc = "Checks if the value of the field is `OSC1K`"] #[inline(always)] pub fn is_osc1k(&self) -> bool { *self == RTCSEL_A::OSC1K } #[doc = "Checks if the value of the field is `OSC32K`"] #[inline(always)] pub fn is_osc32k(&self) -> bool { *self == RTCSEL_A::OSC32K } #[doc = "Checks if the value of the field is `XOSC1K`"] #[inline(always)] pub fn is_xosc1k(&self) -> bool { *self == RTCSEL_A::XOSC1K } #[doc = "Checks if the value of the field is `XOSC32K`"] #[inline(always)] pub fn is_xosc32k(&self) -> bool { *self == RTCSEL_A::XOSC32K } } #[doc = "Write proxy for field `RTCSEL`"] pub struct RTCSEL_W<'a> { w: &'a mut W, } impl<'a> RTCSEL_W<'a> { #[doc = r"Writes `variant` to the field"] #[inline(always)] pub fn variant(self, variant: RTCSEL_A) -> &'a mut W { use crate::ToBits; unsafe { self.bits(variant._bits()) } } #[doc = "1.024kHz from 32kHz internal ULP oscillator"] #[inline(always)] pub fn ulp1k(self) -> &'a mut W { self.variant(RTCSEL_A::ULP1K) } #[doc = "32.768kHz from 32kHz internal ULP oscillator"] #[inline(always)] pub fn ulp32k(self) -> &'a mut W { self.variant(RTCSEL_A::ULP32K) } #[doc = "1.024kHz from 32.768kHz internal oscillator"] #[inline(always)] pub fn osc1k(self) -> &'a mut W { self.variant(RTCSEL_A::OSC1K) } #[doc = "32.768kHz from 32.768kHz internal oscillator"] #[inline(always)] pub fn osc32k(self) -> &'a mut W { self.variant(RTCSEL_A::OSC32K) } #[doc = "1.024kHz from 32.768kHz internal oscillator"] #[inline(always)] pub fn xosc1k(self) -> &'a mut W { self.variant(RTCSEL_A::XOSC1K) } #[doc = "32.768kHz from 32.768kHz external crystal oscillator"] #[inline(always)] pub fn xosc32k(self) -> &'a mut W { self.variant(RTCSEL_A::XOSC32K) } #[doc = r"Writes raw bits to the field"] #[inline(always)] pub unsafe fn bits(self, value: u8) -> &'a mut W { self.w.bits = (self.w.bits & !0x07) | ((value as u8) & 0x07); self.w } } impl R { #[doc = "Bits 0:2 - RTC Clock Selection"] #[inline(always)] pub fn rtcsel(&self) -> RTCSEL_R { RTCSEL_R::new((self.bits & 0x07) as u8) } } impl W { #[doc = "Bits 0:2 - RTC Clock Selection"] #[inline(always)] pub fn rtcsel(&mut self) -> RTCSEL_W { RTCSEL_W { w: self } } }