efm32pg12_pac/cmu/
lfapresc0.rs1#[doc = "Reader of register LFAPRESC0"]
2pub type R = crate::R<u32, super::LFAPRESC0>;
3#[doc = "Writer for register LFAPRESC0"]
4pub type W = crate::W<u32, super::LFAPRESC0>;
5#[doc = "Register LFAPRESC0 `reset()`'s with value 0"]
6impl crate::ResetValue for super::LFAPRESC0 {
7 type Type = u32;
8 #[inline(always)]
9 fn reset_value() -> Self::Type {
10 0
11 }
12}
13#[doc = "Low Energy Timer 0 Prescaler\n\nValue on reset: 0"]
14#[derive(Clone, Copy, Debug, PartialEq)]
15#[repr(u8)]
16pub enum LETIMER0_A {
17 #[doc = "0: LFACLKLETIMER0 = LFACLK"]
18 DIV1 = 0,
19 #[doc = "1: LFACLKLETIMER0 = LFACLK/2"]
20 DIV2 = 1,
21 #[doc = "2: LFACLKLETIMER0 = LFACLK/4"]
22 DIV4 = 2,
23 #[doc = "3: LFACLKLETIMER0 = LFACLK/8"]
24 DIV8 = 3,
25 #[doc = "4: LFACLKLETIMER0 = LFACLK/16"]
26 DIV16 = 4,
27 #[doc = "5: LFACLKLETIMER0 = LFACLK/32"]
28 DIV32 = 5,
29 #[doc = "6: LFACLKLETIMER0 = LFACLK/64"]
30 DIV64 = 6,
31 #[doc = "7: LFACLKLETIMER0 = LFACLK/128"]
32 DIV128 = 7,
33 #[doc = "8: LFACLKLETIMER0 = LFACLK/256"]
34 DIV256 = 8,
35 #[doc = "9: LFACLKLETIMER0 = LFACLK/512"]
36 DIV512 = 9,
37 #[doc = "10: LFACLKLETIMER0 = LFACLK/1024"]
38 DIV1024 = 10,
39 #[doc = "11: LFACLKLETIMER0 = LFACLK/2048"]
40 DIV2048 = 11,
41 #[doc = "12: LFACLKLETIMER0 = LFACLK/4096"]
42 DIV4096 = 12,
43 #[doc = "13: LFACLKLETIMER0 = LFACLK/8192"]
44 DIV8192 = 13,
45 #[doc = "14: LFACLKLETIMER0 = LFACLK/16384"]
46 DIV16384 = 14,
47 #[doc = "15: LFACLKLETIMER0 = LFACLK/32768"]
48 DIV32768 = 15,
49}
50impl From<LETIMER0_A> for u8 {
51 #[inline(always)]
52 fn from(variant: LETIMER0_A) -> Self {
53 variant as _
54 }
55}
56#[doc = "Reader of field `LETIMER0`"]
57pub type LETIMER0_R = crate::R<u8, LETIMER0_A>;
58impl LETIMER0_R {
59 #[doc = r"Get enumerated values variant"]
60 #[inline(always)]
61 pub fn variant(&self) -> LETIMER0_A {
62 match self.bits {
63 0 => LETIMER0_A::DIV1,
64 1 => LETIMER0_A::DIV2,
65 2 => LETIMER0_A::DIV4,
66 3 => LETIMER0_A::DIV8,
67 4 => LETIMER0_A::DIV16,
68 5 => LETIMER0_A::DIV32,
69 6 => LETIMER0_A::DIV64,
70 7 => LETIMER0_A::DIV128,
71 8 => LETIMER0_A::DIV256,
72 9 => LETIMER0_A::DIV512,
73 10 => LETIMER0_A::DIV1024,
74 11 => LETIMER0_A::DIV2048,
75 12 => LETIMER0_A::DIV4096,
76 13 => LETIMER0_A::DIV8192,
77 14 => LETIMER0_A::DIV16384,
78 15 => LETIMER0_A::DIV32768,
79 _ => unreachable!(),
80 }
81 }
82 #[doc = "Checks if the value of the field is `DIV1`"]
83 #[inline(always)]
84 pub fn is_div1(&self) -> bool {
85 *self == LETIMER0_A::DIV1
86 }
87 #[doc = "Checks if the value of the field is `DIV2`"]
88 #[inline(always)]
89 pub fn is_div2(&self) -> bool {
90 *self == LETIMER0_A::DIV2
91 }
92 #[doc = "Checks if the value of the field is `DIV4`"]
93 #[inline(always)]
94 pub fn is_div4(&self) -> bool {
95 *self == LETIMER0_A::DIV4
96 }
97 #[doc = "Checks if the value of the field is `DIV8`"]
98 #[inline(always)]
99 pub fn is_div8(&self) -> bool {
100 *self == LETIMER0_A::DIV8
101 }
102 #[doc = "Checks if the value of the field is `DIV16`"]
103 #[inline(always)]
104 pub fn is_div16(&self) -> bool {
105 *self == LETIMER0_A::DIV16
106 }
107 #[doc = "Checks if the value of the field is `DIV32`"]
108 #[inline(always)]
109 pub fn is_div32(&self) -> bool {
110 *self == LETIMER0_A::DIV32
111 }
112 #[doc = "Checks if the value of the field is `DIV64`"]
113 #[inline(always)]
114 pub fn is_div64(&self) -> bool {
115 *self == LETIMER0_A::DIV64
116 }
117 #[doc = "Checks if the value of the field is `DIV128`"]
118 #[inline(always)]
119 pub fn is_div128(&self) -> bool {
120 *self == LETIMER0_A::DIV128
121 }
122 #[doc = "Checks if the value of the field is `DIV256`"]
123 #[inline(always)]
124 pub fn is_div256(&self) -> bool {
125 *self == LETIMER0_A::DIV256
126 }
127 #[doc = "Checks if the value of the field is `DIV512`"]
128 #[inline(always)]
129 pub fn is_div512(&self) -> bool {
130 *self == LETIMER0_A::DIV512
131 }
132 #[doc = "Checks if the value of the field is `DIV1024`"]
133 #[inline(always)]
134 pub fn is_div1024(&self) -> bool {
135 *self == LETIMER0_A::DIV1024
136 }
137 #[doc = "Checks if the value of the field is `DIV2048`"]
138 #[inline(always)]
139 pub fn is_div2048(&self) -> bool {
140 *self == LETIMER0_A::DIV2048
141 }
142 #[doc = "Checks if the value of the field is `DIV4096`"]
143 #[inline(always)]
144 pub fn is_div4096(&self) -> bool {
145 *self == LETIMER0_A::DIV4096
146 }
147 #[doc = "Checks if the value of the field is `DIV8192`"]
148 #[inline(always)]
149 pub fn is_div8192(&self) -> bool {
150 *self == LETIMER0_A::DIV8192
151 }
152 #[doc = "Checks if the value of the field is `DIV16384`"]
153 #[inline(always)]
154 pub fn is_div16384(&self) -> bool {
155 *self == LETIMER0_A::DIV16384
156 }
157 #[doc = "Checks if the value of the field is `DIV32768`"]
158 #[inline(always)]
159 pub fn is_div32768(&self) -> bool {
160 *self == LETIMER0_A::DIV32768
161 }
162}
163#[doc = "Write proxy for field `LETIMER0`"]
164pub struct LETIMER0_W<'a> {
165 w: &'a mut W,
166}
167impl<'a> LETIMER0_W<'a> {
168 #[doc = r"Writes `variant` to the field"]
169 #[inline(always)]
170 pub fn variant(self, variant: LETIMER0_A) -> &'a mut W {
171 {
172 self.bits(variant.into())
173 }
174 }
175 #[doc = "LFACLKLETIMER0 = LFACLK"]
176 #[inline(always)]
177 pub fn div1(self) -> &'a mut W {
178 self.variant(LETIMER0_A::DIV1)
179 }
180 #[doc = "LFACLKLETIMER0 = LFACLK/2"]
181 #[inline(always)]
182 pub fn div2(self) -> &'a mut W {
183 self.variant(LETIMER0_A::DIV2)
184 }
185 #[doc = "LFACLKLETIMER0 = LFACLK/4"]
186 #[inline(always)]
187 pub fn div4(self) -> &'a mut W {
188 self.variant(LETIMER0_A::DIV4)
189 }
190 #[doc = "LFACLKLETIMER0 = LFACLK/8"]
191 #[inline(always)]
192 pub fn div8(self) -> &'a mut W {
193 self.variant(LETIMER0_A::DIV8)
194 }
195 #[doc = "LFACLKLETIMER0 = LFACLK/16"]
196 #[inline(always)]
197 pub fn div16(self) -> &'a mut W {
198 self.variant(LETIMER0_A::DIV16)
199 }
200 #[doc = "LFACLKLETIMER0 = LFACLK/32"]
201 #[inline(always)]
202 pub fn div32(self) -> &'a mut W {
203 self.variant(LETIMER0_A::DIV32)
204 }
205 #[doc = "LFACLKLETIMER0 = LFACLK/64"]
206 #[inline(always)]
207 pub fn div64(self) -> &'a mut W {
208 self.variant(LETIMER0_A::DIV64)
209 }
210 #[doc = "LFACLKLETIMER0 = LFACLK/128"]
211 #[inline(always)]
212 pub fn div128(self) -> &'a mut W {
213 self.variant(LETIMER0_A::DIV128)
214 }
215 #[doc = "LFACLKLETIMER0 = LFACLK/256"]
216 #[inline(always)]
217 pub fn div256(self) -> &'a mut W {
218 self.variant(LETIMER0_A::DIV256)
219 }
220 #[doc = "LFACLKLETIMER0 = LFACLK/512"]
221 #[inline(always)]
222 pub fn div512(self) -> &'a mut W {
223 self.variant(LETIMER0_A::DIV512)
224 }
225 #[doc = "LFACLKLETIMER0 = LFACLK/1024"]
226 #[inline(always)]
227 pub fn div1024(self) -> &'a mut W {
228 self.variant(LETIMER0_A::DIV1024)
229 }
230 #[doc = "LFACLKLETIMER0 = LFACLK/2048"]
231 #[inline(always)]
232 pub fn div2048(self) -> &'a mut W {
233 self.variant(LETIMER0_A::DIV2048)
234 }
235 #[doc = "LFACLKLETIMER0 = LFACLK/4096"]
236 #[inline(always)]
237 pub fn div4096(self) -> &'a mut W {
238 self.variant(LETIMER0_A::DIV4096)
239 }
240 #[doc = "LFACLKLETIMER0 = LFACLK/8192"]
241 #[inline(always)]
242 pub fn div8192(self) -> &'a mut W {
243 self.variant(LETIMER0_A::DIV8192)
244 }
245 #[doc = "LFACLKLETIMER0 = LFACLK/16384"]
246 #[inline(always)]
247 pub fn div16384(self) -> &'a mut W {
248 self.variant(LETIMER0_A::DIV16384)
249 }
250 #[doc = "LFACLKLETIMER0 = LFACLK/32768"]
251 #[inline(always)]
252 pub fn div32768(self) -> &'a mut W {
253 self.variant(LETIMER0_A::DIV32768)
254 }
255 #[doc = r"Writes raw bits to the field"]
256 #[inline(always)]
257 pub fn bits(self, value: u8) -> &'a mut W {
258 self.w.bits = (self.w.bits & !0x0f) | ((value as u32) & 0x0f);
259 self.w
260 }
261}
262#[doc = "Low Energy Sensor Interface Prescaler\n\nValue on reset: 0"]
263#[derive(Clone, Copy, Debug, PartialEq)]
264#[repr(u8)]
265pub enum LESENSE_A {
266 #[doc = "0: LFACLKLESENSE = LFACLK"]
267 DIV1 = 0,
268 #[doc = "1: LFACLKLESENSE = LFACLK/2"]
269 DIV2 = 1,
270 #[doc = "2: LFACLKLESENSE = LFACLK/4"]
271 DIV4 = 2,
272 #[doc = "3: LFACLKLESENSE = LFACLK/8"]
273 DIV8 = 3,
274}
275impl From<LESENSE_A> for u8 {
276 #[inline(always)]
277 fn from(variant: LESENSE_A) -> Self {
278 variant as _
279 }
280}
281#[doc = "Reader of field `LESENSE`"]
282pub type LESENSE_R = crate::R<u8, LESENSE_A>;
283impl LESENSE_R {
284 #[doc = r"Get enumerated values variant"]
285 #[inline(always)]
286 pub fn variant(&self) -> LESENSE_A {
287 match self.bits {
288 0 => LESENSE_A::DIV1,
289 1 => LESENSE_A::DIV2,
290 2 => LESENSE_A::DIV4,
291 3 => LESENSE_A::DIV8,
292 _ => unreachable!(),
293 }
294 }
295 #[doc = "Checks if the value of the field is `DIV1`"]
296 #[inline(always)]
297 pub fn is_div1(&self) -> bool {
298 *self == LESENSE_A::DIV1
299 }
300 #[doc = "Checks if the value of the field is `DIV2`"]
301 #[inline(always)]
302 pub fn is_div2(&self) -> bool {
303 *self == LESENSE_A::DIV2
304 }
305 #[doc = "Checks if the value of the field is `DIV4`"]
306 #[inline(always)]
307 pub fn is_div4(&self) -> bool {
308 *self == LESENSE_A::DIV4
309 }
310 #[doc = "Checks if the value of the field is `DIV8`"]
311 #[inline(always)]
312 pub fn is_div8(&self) -> bool {
313 *self == LESENSE_A::DIV8
314 }
315}
316#[doc = "Write proxy for field `LESENSE`"]
317pub struct LESENSE_W<'a> {
318 w: &'a mut W,
319}
320impl<'a> LESENSE_W<'a> {
321 #[doc = r"Writes `variant` to the field"]
322 #[inline(always)]
323 pub fn variant(self, variant: LESENSE_A) -> &'a mut W {
324 {
325 self.bits(variant.into())
326 }
327 }
328 #[doc = "LFACLKLESENSE = LFACLK"]
329 #[inline(always)]
330 pub fn div1(self) -> &'a mut W {
331 self.variant(LESENSE_A::DIV1)
332 }
333 #[doc = "LFACLKLESENSE = LFACLK/2"]
334 #[inline(always)]
335 pub fn div2(self) -> &'a mut W {
336 self.variant(LESENSE_A::DIV2)
337 }
338 #[doc = "LFACLKLESENSE = LFACLK/4"]
339 #[inline(always)]
340 pub fn div4(self) -> &'a mut W {
341 self.variant(LESENSE_A::DIV4)
342 }
343 #[doc = "LFACLKLESENSE = LFACLK/8"]
344 #[inline(always)]
345 pub fn div8(self) -> &'a mut W {
346 self.variant(LESENSE_A::DIV8)
347 }
348 #[doc = r"Writes raw bits to the field"]
349 #[inline(always)]
350 pub fn bits(self, value: u8) -> &'a mut W {
351 self.w.bits = (self.w.bits & !(0x03 << 4)) | (((value as u32) & 0x03) << 4);
352 self.w
353 }
354}
355impl R {
356 #[doc = "Bits 0:3 - Low Energy Timer 0 Prescaler"]
357 #[inline(always)]
358 pub fn letimer0(&self) -> LETIMER0_R {
359 LETIMER0_R::new((self.bits & 0x0f) as u8)
360 }
361 #[doc = "Bits 4:5 - Low Energy Sensor Interface Prescaler"]
362 #[inline(always)]
363 pub fn lesense(&self) -> LESENSE_R {
364 LESENSE_R::new(((self.bits >> 4) & 0x03) as u8)
365 }
366}
367impl W {
368 #[doc = "Bits 0:3 - Low Energy Timer 0 Prescaler"]
369 #[inline(always)]
370 pub fn letimer0(&mut self) -> LETIMER0_W {
371 LETIMER0_W { w: self }
372 }
373 #[doc = "Bits 4:5 - Low Energy Sensor Interface Prescaler"]
374 #[inline(always)]
375 pub fn lesense(&mut self) -> LESENSE_W {
376 LESENSE_W { w: self }
377 }
378}