lpc11xx/syscon/
wdtoscctrl.rs

1#[doc = "Reader of register WDTOSCCTRL"]
2pub type R = crate::R<u32, super::WDTOSCCTRL>;
3#[doc = "Writer for register WDTOSCCTRL"]
4pub type W = crate::W<u32, super::WDTOSCCTRL>;
5#[doc = "Register WDTOSCCTRL `reset()`'s with value 0"]
6impl crate::ResetValue for super::WDTOSCCTRL {
7    type Type = u32;
8    #[inline(always)]
9    fn reset_value() -> Self::Type {
10        0
11    }
12}
13#[doc = "Reader of field `DIVSEL`"]
14pub type DIVSEL_R = crate::R<u8, u8>;
15#[doc = "Write proxy for field `DIVSEL`"]
16pub struct DIVSEL_W<'a> {
17    w: &'a mut W,
18}
19impl<'a> DIVSEL_W<'a> {
20    #[doc = r"Writes raw bits to the field"]
21    #[inline(always)]
22    pub unsafe fn bits(self, value: u8) -> &'a mut W {
23        self.w.bits = (self.w.bits & !0x1f) | ((value as u32) & 0x1f);
24        self.w
25    }
26}
27#[doc = "Select watchdog oscillator analog output frequency (Fclkana).\n\nValue on reset: 0"]
28#[derive(Clone, Copy, Debug, PartialEq)]
29pub enum FREQSEL_A {
30    #[doc = "1: 0.5 MHz"]
31    _0_5_MHZ,
32    #[doc = "2: 0.8 MHz"]
33    _0_8_MHZ,
34    #[doc = "3: 1.1 MHz"]
35    _1_1_MHZ,
36    #[doc = "4: 1.4 MHz"]
37    _1_4_MHZ,
38    #[doc = "5: 1.6 MHz"]
39    _1_6_MHZ,
40    #[doc = "6: 1.8 MHz"]
41    _1_8_MHZ,
42    #[doc = "7: 2.0 MHz"]
43    _2_0_MHZ,
44    #[doc = "8: 2.2 MHz"]
45    _2_2_MHZ,
46    #[doc = "9: 2.4 MHz"]
47    _2_4_MHZ,
48    #[doc = "10: 2.6 MHz"]
49    _2_6_MHZ,
50    #[doc = "11: 2.7 MHz"]
51    _2_7_MHZ,
52    #[doc = "12: 2.9 MHz"]
53    _2_9_MHZ,
54    #[doc = "13: 3.1 MHz"]
55    _3_1_MHZ,
56    #[doc = "14: 3.2 MHz"]
57    _3_2_MHZ,
58    #[doc = "15: 3.4 MHz"]
59    _3_4_MHZ,
60}
61impl From<FREQSEL_A> for u8 {
62    #[inline(always)]
63    fn from(variant: FREQSEL_A) -> Self {
64        match variant {
65            FREQSEL_A::_0_5_MHZ => 1,
66            FREQSEL_A::_0_8_MHZ => 2,
67            FREQSEL_A::_1_1_MHZ => 3,
68            FREQSEL_A::_1_4_MHZ => 4,
69            FREQSEL_A::_1_6_MHZ => 5,
70            FREQSEL_A::_1_8_MHZ => 6,
71            FREQSEL_A::_2_0_MHZ => 7,
72            FREQSEL_A::_2_2_MHZ => 8,
73            FREQSEL_A::_2_4_MHZ => 9,
74            FREQSEL_A::_2_6_MHZ => 10,
75            FREQSEL_A::_2_7_MHZ => 11,
76            FREQSEL_A::_2_9_MHZ => 12,
77            FREQSEL_A::_3_1_MHZ => 13,
78            FREQSEL_A::_3_2_MHZ => 14,
79            FREQSEL_A::_3_4_MHZ => 15,
80        }
81    }
82}
83#[doc = "Reader of field `FREQSEL`"]
84pub type FREQSEL_R = crate::R<u8, FREQSEL_A>;
85impl FREQSEL_R {
86    #[doc = r"Get enumerated values variant"]
87    #[inline(always)]
88    pub fn variant(&self) -> crate::Variant<u8, FREQSEL_A> {
89        use crate::Variant::*;
90        match self.bits {
91            1 => Val(FREQSEL_A::_0_5_MHZ),
92            2 => Val(FREQSEL_A::_0_8_MHZ),
93            3 => Val(FREQSEL_A::_1_1_MHZ),
94            4 => Val(FREQSEL_A::_1_4_MHZ),
95            5 => Val(FREQSEL_A::_1_6_MHZ),
96            6 => Val(FREQSEL_A::_1_8_MHZ),
97            7 => Val(FREQSEL_A::_2_0_MHZ),
98            8 => Val(FREQSEL_A::_2_2_MHZ),
99            9 => Val(FREQSEL_A::_2_4_MHZ),
100            10 => Val(FREQSEL_A::_2_6_MHZ),
101            11 => Val(FREQSEL_A::_2_7_MHZ),
102            12 => Val(FREQSEL_A::_2_9_MHZ),
103            13 => Val(FREQSEL_A::_3_1_MHZ),
104            14 => Val(FREQSEL_A::_3_2_MHZ),
105            15 => Val(FREQSEL_A::_3_4_MHZ),
106            i => Res(i),
107        }
108    }
109    #[doc = "Checks if the value of the field is `_0_5_MHZ`"]
110    #[inline(always)]
111    pub fn is_0_5_mhz(&self) -> bool {
112        *self == FREQSEL_A::_0_5_MHZ
113    }
114    #[doc = "Checks if the value of the field is `_0_8_MHZ`"]
115    #[inline(always)]
116    pub fn is_0_8_mhz(&self) -> bool {
117        *self == FREQSEL_A::_0_8_MHZ
118    }
119    #[doc = "Checks if the value of the field is `_1_1_MHZ`"]
120    #[inline(always)]
121    pub fn is_1_1_mhz(&self) -> bool {
122        *self == FREQSEL_A::_1_1_MHZ
123    }
124    #[doc = "Checks if the value of the field is `_1_4_MHZ`"]
125    #[inline(always)]
126    pub fn is_1_4_mhz(&self) -> bool {
127        *self == FREQSEL_A::_1_4_MHZ
128    }
129    #[doc = "Checks if the value of the field is `_1_6_MHZ`"]
130    #[inline(always)]
131    pub fn is_1_6_mhz(&self) -> bool {
132        *self == FREQSEL_A::_1_6_MHZ
133    }
134    #[doc = "Checks if the value of the field is `_1_8_MHZ`"]
135    #[inline(always)]
136    pub fn is_1_8_mhz(&self) -> bool {
137        *self == FREQSEL_A::_1_8_MHZ
138    }
139    #[doc = "Checks if the value of the field is `_2_0_MHZ`"]
140    #[inline(always)]
141    pub fn is_2_0_mhz(&self) -> bool {
142        *self == FREQSEL_A::_2_0_MHZ
143    }
144    #[doc = "Checks if the value of the field is `_2_2_MHZ`"]
145    #[inline(always)]
146    pub fn is_2_2_mhz(&self) -> bool {
147        *self == FREQSEL_A::_2_2_MHZ
148    }
149    #[doc = "Checks if the value of the field is `_2_4_MHZ`"]
150    #[inline(always)]
151    pub fn is_2_4_mhz(&self) -> bool {
152        *self == FREQSEL_A::_2_4_MHZ
153    }
154    #[doc = "Checks if the value of the field is `_2_6_MHZ`"]
155    #[inline(always)]
156    pub fn is_2_6_mhz(&self) -> bool {
157        *self == FREQSEL_A::_2_6_MHZ
158    }
159    #[doc = "Checks if the value of the field is `_2_7_MHZ`"]
160    #[inline(always)]
161    pub fn is_2_7_mhz(&self) -> bool {
162        *self == FREQSEL_A::_2_7_MHZ
163    }
164    #[doc = "Checks if the value of the field is `_2_9_MHZ`"]
165    #[inline(always)]
166    pub fn is_2_9_mhz(&self) -> bool {
167        *self == FREQSEL_A::_2_9_MHZ
168    }
169    #[doc = "Checks if the value of the field is `_3_1_MHZ`"]
170    #[inline(always)]
171    pub fn is_3_1_mhz(&self) -> bool {
172        *self == FREQSEL_A::_3_1_MHZ
173    }
174    #[doc = "Checks if the value of the field is `_3_2_MHZ`"]
175    #[inline(always)]
176    pub fn is_3_2_mhz(&self) -> bool {
177        *self == FREQSEL_A::_3_2_MHZ
178    }
179    #[doc = "Checks if the value of the field is `_3_4_MHZ`"]
180    #[inline(always)]
181    pub fn is_3_4_mhz(&self) -> bool {
182        *self == FREQSEL_A::_3_4_MHZ
183    }
184}
185#[doc = "Write proxy for field `FREQSEL`"]
186pub struct FREQSEL_W<'a> {
187    w: &'a mut W,
188}
189impl<'a> FREQSEL_W<'a> {
190    #[doc = r"Writes `variant` to the field"]
191    #[inline(always)]
192    pub fn variant(self, variant: FREQSEL_A) -> &'a mut W {
193        unsafe { self.bits(variant.into()) }
194    }
195    #[doc = "0.5 MHz"]
196    #[inline(always)]
197    pub fn _0_5_mhz(self) -> &'a mut W {
198        self.variant(FREQSEL_A::_0_5_MHZ)
199    }
200    #[doc = "0.8 MHz"]
201    #[inline(always)]
202    pub fn _0_8_mhz(self) -> &'a mut W {
203        self.variant(FREQSEL_A::_0_8_MHZ)
204    }
205    #[doc = "1.1 MHz"]
206    #[inline(always)]
207    pub fn _1_1_mhz(self) -> &'a mut W {
208        self.variant(FREQSEL_A::_1_1_MHZ)
209    }
210    #[doc = "1.4 MHz"]
211    #[inline(always)]
212    pub fn _1_4_mhz(self) -> &'a mut W {
213        self.variant(FREQSEL_A::_1_4_MHZ)
214    }
215    #[doc = "1.6 MHz"]
216    #[inline(always)]
217    pub fn _1_6_mhz(self) -> &'a mut W {
218        self.variant(FREQSEL_A::_1_6_MHZ)
219    }
220    #[doc = "1.8 MHz"]
221    #[inline(always)]
222    pub fn _1_8_mhz(self) -> &'a mut W {
223        self.variant(FREQSEL_A::_1_8_MHZ)
224    }
225    #[doc = "2.0 MHz"]
226    #[inline(always)]
227    pub fn _2_0_mhz(self) -> &'a mut W {
228        self.variant(FREQSEL_A::_2_0_MHZ)
229    }
230    #[doc = "2.2 MHz"]
231    #[inline(always)]
232    pub fn _2_2_mhz(self) -> &'a mut W {
233        self.variant(FREQSEL_A::_2_2_MHZ)
234    }
235    #[doc = "2.4 MHz"]
236    #[inline(always)]
237    pub fn _2_4_mhz(self) -> &'a mut W {
238        self.variant(FREQSEL_A::_2_4_MHZ)
239    }
240    #[doc = "2.6 MHz"]
241    #[inline(always)]
242    pub fn _2_6_mhz(self) -> &'a mut W {
243        self.variant(FREQSEL_A::_2_6_MHZ)
244    }
245    #[doc = "2.7 MHz"]
246    #[inline(always)]
247    pub fn _2_7_mhz(self) -> &'a mut W {
248        self.variant(FREQSEL_A::_2_7_MHZ)
249    }
250    #[doc = "2.9 MHz"]
251    #[inline(always)]
252    pub fn _2_9_mhz(self) -> &'a mut W {
253        self.variant(FREQSEL_A::_2_9_MHZ)
254    }
255    #[doc = "3.1 MHz"]
256    #[inline(always)]
257    pub fn _3_1_mhz(self) -> &'a mut W {
258        self.variant(FREQSEL_A::_3_1_MHZ)
259    }
260    #[doc = "3.2 MHz"]
261    #[inline(always)]
262    pub fn _3_2_mhz(self) -> &'a mut W {
263        self.variant(FREQSEL_A::_3_2_MHZ)
264    }
265    #[doc = "3.4 MHz"]
266    #[inline(always)]
267    pub fn _3_4_mhz(self) -> &'a mut W {
268        self.variant(FREQSEL_A::_3_4_MHZ)
269    }
270    #[doc = r"Writes raw bits to the field"]
271    #[inline(always)]
272    pub unsafe fn bits(self, value: u8) -> &'a mut W {
273        self.w.bits = (self.w.bits & !(0x0f << 5)) | (((value as u32) & 0x0f) << 5);
274        self.w
275    }
276}
277impl R {
278    #[doc = "Bits 0:4 - Select divider for Fclkana. wdt_osc_clk = Fclkana/ (2 x (1 + DIVSEL)) 00000: 2 x (1 + DIVSEL) = 2 00001: 2 x (1 + DIVSEL) = 4 to 11111: 2 x (1 + DIVSEL) = 64."]
279    #[inline(always)]
280    pub fn divsel(&self) -> DIVSEL_R {
281        DIVSEL_R::new((self.bits & 0x1f) as u8)
282    }
283    #[doc = "Bits 5:8 - Select watchdog oscillator analog output frequency (Fclkana)."]
284    #[inline(always)]
285    pub fn freqsel(&self) -> FREQSEL_R {
286        FREQSEL_R::new(((self.bits >> 5) & 0x0f) as u8)
287    }
288}
289impl W {
290    #[doc = "Bits 0:4 - Select divider for Fclkana. wdt_osc_clk = Fclkana/ (2 x (1 + DIVSEL)) 00000: 2 x (1 + DIVSEL) = 2 00001: 2 x (1 + DIVSEL) = 4 to 11111: 2 x (1 + DIVSEL) = 64."]
291    #[inline(always)]
292    pub fn divsel(&mut self) -> DIVSEL_W {
293        DIVSEL_W { w: self }
294    }
295    #[doc = "Bits 5:8 - Select watchdog oscillator analog output frequency (Fclkana)."]
296    #[inline(always)]
297    pub fn freqsel(&mut self) -> FREQSEL_W {
298        FREQSEL_W { w: self }
299    }
300}