atsamd51j/wdt/
config.rs
1#[doc = "Register `CONFIG` reader"]
2pub type R = crate::R<ConfigSpec>;
3#[doc = "Register `CONFIG` writer"]
4pub type W = crate::W<ConfigSpec>;
5#[doc = "Time-Out Period\n\nValue on reset: 11"]
6#[derive(Clone, Copy, Debug, PartialEq, Eq)]
7#[repr(u8)]
8pub enum Perselect {
9 #[doc = "0: 8 clock cycles"]
10 Cyc8 = 0,
11 #[doc = "1: 16 clock cycles"]
12 Cyc16 = 1,
13 #[doc = "2: 32 clock cycles"]
14 Cyc32 = 2,
15 #[doc = "3: 64 clock cycles"]
16 Cyc64 = 3,
17 #[doc = "4: 128 clock cycles"]
18 Cyc128 = 4,
19 #[doc = "5: 256 clock cycles"]
20 Cyc256 = 5,
21 #[doc = "6: 512 clock cycles"]
22 Cyc512 = 6,
23 #[doc = "7: 1024 clock cycles"]
24 Cyc1024 = 7,
25 #[doc = "8: 2048 clock cycles"]
26 Cyc2048 = 8,
27 #[doc = "9: 4096 clock cycles"]
28 Cyc4096 = 9,
29 #[doc = "10: 8192 clock cycles"]
30 Cyc8192 = 10,
31 #[doc = "11: 16384 clock cycles"]
32 Cyc16384 = 11,
33}
34impl From<Perselect> for u8 {
35 #[inline(always)]
36 fn from(variant: Perselect) -> Self {
37 variant as _
38 }
39}
40impl crate::FieldSpec for Perselect {
41 type Ux = u8;
42}
43impl crate::IsEnum for Perselect {}
44#[doc = "Field `PER` reader - Time-Out Period"]
45pub type PerR = crate::FieldReader<Perselect>;
46impl PerR {
47 #[doc = "Get enumerated values variant"]
48 #[inline(always)]
49 pub const fn variant(&self) -> Option<Perselect> {
50 match self.bits {
51 0 => Some(Perselect::Cyc8),
52 1 => Some(Perselect::Cyc16),
53 2 => Some(Perselect::Cyc32),
54 3 => Some(Perselect::Cyc64),
55 4 => Some(Perselect::Cyc128),
56 5 => Some(Perselect::Cyc256),
57 6 => Some(Perselect::Cyc512),
58 7 => Some(Perselect::Cyc1024),
59 8 => Some(Perselect::Cyc2048),
60 9 => Some(Perselect::Cyc4096),
61 10 => Some(Perselect::Cyc8192),
62 11 => Some(Perselect::Cyc16384),
63 _ => None,
64 }
65 }
66 #[doc = "8 clock cycles"]
67 #[inline(always)]
68 pub fn is_cyc8(&self) -> bool {
69 *self == Perselect::Cyc8
70 }
71 #[doc = "16 clock cycles"]
72 #[inline(always)]
73 pub fn is_cyc16(&self) -> bool {
74 *self == Perselect::Cyc16
75 }
76 #[doc = "32 clock cycles"]
77 #[inline(always)]
78 pub fn is_cyc32(&self) -> bool {
79 *self == Perselect::Cyc32
80 }
81 #[doc = "64 clock cycles"]
82 #[inline(always)]
83 pub fn is_cyc64(&self) -> bool {
84 *self == Perselect::Cyc64
85 }
86 #[doc = "128 clock cycles"]
87 #[inline(always)]
88 pub fn is_cyc128(&self) -> bool {
89 *self == Perselect::Cyc128
90 }
91 #[doc = "256 clock cycles"]
92 #[inline(always)]
93 pub fn is_cyc256(&self) -> bool {
94 *self == Perselect::Cyc256
95 }
96 #[doc = "512 clock cycles"]
97 #[inline(always)]
98 pub fn is_cyc512(&self) -> bool {
99 *self == Perselect::Cyc512
100 }
101 #[doc = "1024 clock cycles"]
102 #[inline(always)]
103 pub fn is_cyc1024(&self) -> bool {
104 *self == Perselect::Cyc1024
105 }
106 #[doc = "2048 clock cycles"]
107 #[inline(always)]
108 pub fn is_cyc2048(&self) -> bool {
109 *self == Perselect::Cyc2048
110 }
111 #[doc = "4096 clock cycles"]
112 #[inline(always)]
113 pub fn is_cyc4096(&self) -> bool {
114 *self == Perselect::Cyc4096
115 }
116 #[doc = "8192 clock cycles"]
117 #[inline(always)]
118 pub fn is_cyc8192(&self) -> bool {
119 *self == Perselect::Cyc8192
120 }
121 #[doc = "16384 clock cycles"]
122 #[inline(always)]
123 pub fn is_cyc16384(&self) -> bool {
124 *self == Perselect::Cyc16384
125 }
126}
127#[doc = "Field `PER` writer - Time-Out Period"]
128pub type PerW<'a, REG> = crate::FieldWriter<'a, REG, 4, Perselect>;
129impl<'a, REG> PerW<'a, REG>
130where
131 REG: crate::Writable + crate::RegisterSpec,
132 REG::Ux: From<u8>,
133{
134 #[doc = "8 clock cycles"]
135 #[inline(always)]
136 pub fn cyc8(self) -> &'a mut crate::W<REG> {
137 self.variant(Perselect::Cyc8)
138 }
139 #[doc = "16 clock cycles"]
140 #[inline(always)]
141 pub fn cyc16(self) -> &'a mut crate::W<REG> {
142 self.variant(Perselect::Cyc16)
143 }
144 #[doc = "32 clock cycles"]
145 #[inline(always)]
146 pub fn cyc32(self) -> &'a mut crate::W<REG> {
147 self.variant(Perselect::Cyc32)
148 }
149 #[doc = "64 clock cycles"]
150 #[inline(always)]
151 pub fn cyc64(self) -> &'a mut crate::W<REG> {
152 self.variant(Perselect::Cyc64)
153 }
154 #[doc = "128 clock cycles"]
155 #[inline(always)]
156 pub fn cyc128(self) -> &'a mut crate::W<REG> {
157 self.variant(Perselect::Cyc128)
158 }
159 #[doc = "256 clock cycles"]
160 #[inline(always)]
161 pub fn cyc256(self) -> &'a mut crate::W<REG> {
162 self.variant(Perselect::Cyc256)
163 }
164 #[doc = "512 clock cycles"]
165 #[inline(always)]
166 pub fn cyc512(self) -> &'a mut crate::W<REG> {
167 self.variant(Perselect::Cyc512)
168 }
169 #[doc = "1024 clock cycles"]
170 #[inline(always)]
171 pub fn cyc1024(self) -> &'a mut crate::W<REG> {
172 self.variant(Perselect::Cyc1024)
173 }
174 #[doc = "2048 clock cycles"]
175 #[inline(always)]
176 pub fn cyc2048(self) -> &'a mut crate::W<REG> {
177 self.variant(Perselect::Cyc2048)
178 }
179 #[doc = "4096 clock cycles"]
180 #[inline(always)]
181 pub fn cyc4096(self) -> &'a mut crate::W<REG> {
182 self.variant(Perselect::Cyc4096)
183 }
184 #[doc = "8192 clock cycles"]
185 #[inline(always)]
186 pub fn cyc8192(self) -> &'a mut crate::W<REG> {
187 self.variant(Perselect::Cyc8192)
188 }
189 #[doc = "16384 clock cycles"]
190 #[inline(always)]
191 pub fn cyc16384(self) -> &'a mut crate::W<REG> {
192 self.variant(Perselect::Cyc16384)
193 }
194}
195#[doc = "Window Mode Time-Out Period\n\nValue on reset: 11"]
196#[derive(Clone, Copy, Debug, PartialEq, Eq)]
197#[repr(u8)]
198pub enum Windowselect {
199 #[doc = "0: 8 clock cycles"]
200 Cyc8 = 0,
201 #[doc = "1: 16 clock cycles"]
202 Cyc16 = 1,
203 #[doc = "2: 32 clock cycles"]
204 Cyc32 = 2,
205 #[doc = "3: 64 clock cycles"]
206 Cyc64 = 3,
207 #[doc = "4: 128 clock cycles"]
208 Cyc128 = 4,
209 #[doc = "5: 256 clock cycles"]
210 Cyc256 = 5,
211 #[doc = "6: 512 clock cycles"]
212 Cyc512 = 6,
213 #[doc = "7: 1024 clock cycles"]
214 Cyc1024 = 7,
215 #[doc = "8: 2048 clock cycles"]
216 Cyc2048 = 8,
217 #[doc = "9: 4096 clock cycles"]
218 Cyc4096 = 9,
219 #[doc = "10: 8192 clock cycles"]
220 Cyc8192 = 10,
221 #[doc = "11: 16384 clock cycles"]
222 Cyc16384 = 11,
223}
224impl From<Windowselect> for u8 {
225 #[inline(always)]
226 fn from(variant: Windowselect) -> Self {
227 variant as _
228 }
229}
230impl crate::FieldSpec for Windowselect {
231 type Ux = u8;
232}
233impl crate::IsEnum for Windowselect {}
234#[doc = "Field `WINDOW` reader - Window Mode Time-Out Period"]
235pub type WindowR = crate::FieldReader<Windowselect>;
236impl WindowR {
237 #[doc = "Get enumerated values variant"]
238 #[inline(always)]
239 pub const fn variant(&self) -> Option<Windowselect> {
240 match self.bits {
241 0 => Some(Windowselect::Cyc8),
242 1 => Some(Windowselect::Cyc16),
243 2 => Some(Windowselect::Cyc32),
244 3 => Some(Windowselect::Cyc64),
245 4 => Some(Windowselect::Cyc128),
246 5 => Some(Windowselect::Cyc256),
247 6 => Some(Windowselect::Cyc512),
248 7 => Some(Windowselect::Cyc1024),
249 8 => Some(Windowselect::Cyc2048),
250 9 => Some(Windowselect::Cyc4096),
251 10 => Some(Windowselect::Cyc8192),
252 11 => Some(Windowselect::Cyc16384),
253 _ => None,
254 }
255 }
256 #[doc = "8 clock cycles"]
257 #[inline(always)]
258 pub fn is_cyc8(&self) -> bool {
259 *self == Windowselect::Cyc8
260 }
261 #[doc = "16 clock cycles"]
262 #[inline(always)]
263 pub fn is_cyc16(&self) -> bool {
264 *self == Windowselect::Cyc16
265 }
266 #[doc = "32 clock cycles"]
267 #[inline(always)]
268 pub fn is_cyc32(&self) -> bool {
269 *self == Windowselect::Cyc32
270 }
271 #[doc = "64 clock cycles"]
272 #[inline(always)]
273 pub fn is_cyc64(&self) -> bool {
274 *self == Windowselect::Cyc64
275 }
276 #[doc = "128 clock cycles"]
277 #[inline(always)]
278 pub fn is_cyc128(&self) -> bool {
279 *self == Windowselect::Cyc128
280 }
281 #[doc = "256 clock cycles"]
282 #[inline(always)]
283 pub fn is_cyc256(&self) -> bool {
284 *self == Windowselect::Cyc256
285 }
286 #[doc = "512 clock cycles"]
287 #[inline(always)]
288 pub fn is_cyc512(&self) -> bool {
289 *self == Windowselect::Cyc512
290 }
291 #[doc = "1024 clock cycles"]
292 #[inline(always)]
293 pub fn is_cyc1024(&self) -> bool {
294 *self == Windowselect::Cyc1024
295 }
296 #[doc = "2048 clock cycles"]
297 #[inline(always)]
298 pub fn is_cyc2048(&self) -> bool {
299 *self == Windowselect::Cyc2048
300 }
301 #[doc = "4096 clock cycles"]
302 #[inline(always)]
303 pub fn is_cyc4096(&self) -> bool {
304 *self == Windowselect::Cyc4096
305 }
306 #[doc = "8192 clock cycles"]
307 #[inline(always)]
308 pub fn is_cyc8192(&self) -> bool {
309 *self == Windowselect::Cyc8192
310 }
311 #[doc = "16384 clock cycles"]
312 #[inline(always)]
313 pub fn is_cyc16384(&self) -> bool {
314 *self == Windowselect::Cyc16384
315 }
316}
317#[doc = "Field `WINDOW` writer - Window Mode Time-Out Period"]
318pub type WindowW<'a, REG> = crate::FieldWriter<'a, REG, 4, Windowselect>;
319impl<'a, REG> WindowW<'a, REG>
320where
321 REG: crate::Writable + crate::RegisterSpec,
322 REG::Ux: From<u8>,
323{
324 #[doc = "8 clock cycles"]
325 #[inline(always)]
326 pub fn cyc8(self) -> &'a mut crate::W<REG> {
327 self.variant(Windowselect::Cyc8)
328 }
329 #[doc = "16 clock cycles"]
330 #[inline(always)]
331 pub fn cyc16(self) -> &'a mut crate::W<REG> {
332 self.variant(Windowselect::Cyc16)
333 }
334 #[doc = "32 clock cycles"]
335 #[inline(always)]
336 pub fn cyc32(self) -> &'a mut crate::W<REG> {
337 self.variant(Windowselect::Cyc32)
338 }
339 #[doc = "64 clock cycles"]
340 #[inline(always)]
341 pub fn cyc64(self) -> &'a mut crate::W<REG> {
342 self.variant(Windowselect::Cyc64)
343 }
344 #[doc = "128 clock cycles"]
345 #[inline(always)]
346 pub fn cyc128(self) -> &'a mut crate::W<REG> {
347 self.variant(Windowselect::Cyc128)
348 }
349 #[doc = "256 clock cycles"]
350 #[inline(always)]
351 pub fn cyc256(self) -> &'a mut crate::W<REG> {
352 self.variant(Windowselect::Cyc256)
353 }
354 #[doc = "512 clock cycles"]
355 #[inline(always)]
356 pub fn cyc512(self) -> &'a mut crate::W<REG> {
357 self.variant(Windowselect::Cyc512)
358 }
359 #[doc = "1024 clock cycles"]
360 #[inline(always)]
361 pub fn cyc1024(self) -> &'a mut crate::W<REG> {
362 self.variant(Windowselect::Cyc1024)
363 }
364 #[doc = "2048 clock cycles"]
365 #[inline(always)]
366 pub fn cyc2048(self) -> &'a mut crate::W<REG> {
367 self.variant(Windowselect::Cyc2048)
368 }
369 #[doc = "4096 clock cycles"]
370 #[inline(always)]
371 pub fn cyc4096(self) -> &'a mut crate::W<REG> {
372 self.variant(Windowselect::Cyc4096)
373 }
374 #[doc = "8192 clock cycles"]
375 #[inline(always)]
376 pub fn cyc8192(self) -> &'a mut crate::W<REG> {
377 self.variant(Windowselect::Cyc8192)
378 }
379 #[doc = "16384 clock cycles"]
380 #[inline(always)]
381 pub fn cyc16384(self) -> &'a mut crate::W<REG> {
382 self.variant(Windowselect::Cyc16384)
383 }
384}
385impl R {
386 #[doc = "Bits 0:3 - Time-Out Period"]
387 #[inline(always)]
388 pub fn per(&self) -> PerR {
389 PerR::new(self.bits & 0x0f)
390 }
391 #[doc = "Bits 4:7 - Window Mode Time-Out Period"]
392 #[inline(always)]
393 pub fn window(&self) -> WindowR {
394 WindowR::new((self.bits >> 4) & 0x0f)
395 }
396}
397impl W {
398 #[doc = "Bits 0:3 - Time-Out Period"]
399 #[inline(always)]
400 #[must_use]
401 pub fn per(&mut self) -> PerW<ConfigSpec> {
402 PerW::new(self, 0)
403 }
404 #[doc = "Bits 4:7 - Window Mode Time-Out Period"]
405 #[inline(always)]
406 #[must_use]
407 pub fn window(&mut self) -> WindowW<ConfigSpec> {
408 WindowW::new(self, 4)
409 }
410}
411#[doc = "Configuration\n\nYou can [`read`](crate::Reg::read) this register and get [`config::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`config::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
412pub struct ConfigSpec;
413impl crate::RegisterSpec for ConfigSpec {
414 type Ux = u8;
415}
416#[doc = "`read()` method returns [`config::R`](R) reader structure"]
417impl crate::Readable for ConfigSpec {}
418#[doc = "`write(|w| ..)` method takes [`config::W`](W) writer structure"]
419impl crate::Writable for ConfigSpec {
420 type Safety = crate::Unsafe;
421 const ZERO_TO_MODIFY_FIELDS_BITMAP: u8 = 0;
422 const ONE_TO_MODIFY_FIELDS_BITMAP: u8 = 0;
423}
424#[doc = "`reset()` method sets CONFIG to value 0xbb"]
425impl crate::Resettable for ConfigSpec {
426 const RESET_VALUE: u8 = 0xbb;
427}