atsamv71j21/mcan0/
mcan_rxesc.rs1#[doc = "Register `MCAN_RXESC` reader"]
2pub struct R(crate::R<MCAN_RXESC_SPEC>);
3impl core::ops::Deref for R {
4 type Target = crate::R<MCAN_RXESC_SPEC>;
5 #[inline(always)]
6 fn deref(&self) -> &Self::Target {
7 &self.0
8 }
9}
10impl From<crate::R<MCAN_RXESC_SPEC>> for R {
11 #[inline(always)]
12 fn from(reader: crate::R<MCAN_RXESC_SPEC>) -> Self {
13 R(reader)
14 }
15}
16#[doc = "Register `MCAN_RXESC` writer"]
17pub struct W(crate::W<MCAN_RXESC_SPEC>);
18impl core::ops::Deref for W {
19 type Target = crate::W<MCAN_RXESC_SPEC>;
20 #[inline(always)]
21 fn deref(&self) -> &Self::Target {
22 &self.0
23 }
24}
25impl core::ops::DerefMut for W {
26 #[inline(always)]
27 fn deref_mut(&mut self) -> &mut Self::Target {
28 &mut self.0
29 }
30}
31impl From<crate::W<MCAN_RXESC_SPEC>> for W {
32 #[inline(always)]
33 fn from(writer: crate::W<MCAN_RXESC_SPEC>) -> Self {
34 W(writer)
35 }
36}
37#[doc = "Receive FIFO 0 Data Field Size\n\nValue on reset: 0"]
38#[derive(Clone, Copy, Debug, PartialEq)]
39#[repr(u8)]
40pub enum F0DS_A {
41 #[doc = "0: 8-byte data field"]
42 _8_BYTE = 0,
43 #[doc = "1: 12-byte data field"]
44 _12_BYTE = 1,
45 #[doc = "2: 16-byte data field"]
46 _16_BYTE = 2,
47 #[doc = "3: 20-byte data field"]
48 _20_BYTE = 3,
49 #[doc = "4: 24-byte data field"]
50 _24_BYTE = 4,
51 #[doc = "5: 32-byte data field"]
52 _32_BYTE = 5,
53 #[doc = "6: 48-byte data field"]
54 _48_BYTE = 6,
55 #[doc = "7: 64-byte data field"]
56 _64_BYTE = 7,
57}
58impl From<F0DS_A> for u8 {
59 #[inline(always)]
60 fn from(variant: F0DS_A) -> Self {
61 variant as _
62 }
63}
64#[doc = "Field `F0DS` reader - Receive FIFO 0 Data Field Size"]
65pub struct F0DS_R(crate::FieldReader<u8, F0DS_A>);
66impl F0DS_R {
67 #[inline(always)]
68 pub(crate) fn new(bits: u8) -> Self {
69 F0DS_R(crate::FieldReader::new(bits))
70 }
71 #[doc = r"Get enumerated values variant"]
72 #[inline(always)]
73 pub fn variant(&self) -> F0DS_A {
74 match self.bits {
75 0 => F0DS_A::_8_BYTE,
76 1 => F0DS_A::_12_BYTE,
77 2 => F0DS_A::_16_BYTE,
78 3 => F0DS_A::_20_BYTE,
79 4 => F0DS_A::_24_BYTE,
80 5 => F0DS_A::_32_BYTE,
81 6 => F0DS_A::_48_BYTE,
82 7 => F0DS_A::_64_BYTE,
83 _ => unreachable!(),
84 }
85 }
86 #[doc = "Checks if the value of the field is `_8_BYTE`"]
87 #[inline(always)]
88 pub fn is_8_byte(&self) -> bool {
89 **self == F0DS_A::_8_BYTE
90 }
91 #[doc = "Checks if the value of the field is `_12_BYTE`"]
92 #[inline(always)]
93 pub fn is_12_byte(&self) -> bool {
94 **self == F0DS_A::_12_BYTE
95 }
96 #[doc = "Checks if the value of the field is `_16_BYTE`"]
97 #[inline(always)]
98 pub fn is_16_byte(&self) -> bool {
99 **self == F0DS_A::_16_BYTE
100 }
101 #[doc = "Checks if the value of the field is `_20_BYTE`"]
102 #[inline(always)]
103 pub fn is_20_byte(&self) -> bool {
104 **self == F0DS_A::_20_BYTE
105 }
106 #[doc = "Checks if the value of the field is `_24_BYTE`"]
107 #[inline(always)]
108 pub fn is_24_byte(&self) -> bool {
109 **self == F0DS_A::_24_BYTE
110 }
111 #[doc = "Checks if the value of the field is `_32_BYTE`"]
112 #[inline(always)]
113 pub fn is_32_byte(&self) -> bool {
114 **self == F0DS_A::_32_BYTE
115 }
116 #[doc = "Checks if the value of the field is `_48_BYTE`"]
117 #[inline(always)]
118 pub fn is_48_byte(&self) -> bool {
119 **self == F0DS_A::_48_BYTE
120 }
121 #[doc = "Checks if the value of the field is `_64_BYTE`"]
122 #[inline(always)]
123 pub fn is_64_byte(&self) -> bool {
124 **self == F0DS_A::_64_BYTE
125 }
126}
127impl core::ops::Deref for F0DS_R {
128 type Target = crate::FieldReader<u8, F0DS_A>;
129 #[inline(always)]
130 fn deref(&self) -> &Self::Target {
131 &self.0
132 }
133}
134#[doc = "Field `F0DS` writer - Receive FIFO 0 Data Field Size"]
135pub struct F0DS_W<'a> {
136 w: &'a mut W,
137}
138impl<'a> F0DS_W<'a> {
139 #[doc = r"Writes `variant` to the field"]
140 #[inline(always)]
141 pub fn variant(self, variant: F0DS_A) -> &'a mut W {
142 self.bits(variant.into())
143 }
144 #[doc = "8-byte data field"]
145 #[inline(always)]
146 pub fn _8_byte(self) -> &'a mut W {
147 self.variant(F0DS_A::_8_BYTE)
148 }
149 #[doc = "12-byte data field"]
150 #[inline(always)]
151 pub fn _12_byte(self) -> &'a mut W {
152 self.variant(F0DS_A::_12_BYTE)
153 }
154 #[doc = "16-byte data field"]
155 #[inline(always)]
156 pub fn _16_byte(self) -> &'a mut W {
157 self.variant(F0DS_A::_16_BYTE)
158 }
159 #[doc = "20-byte data field"]
160 #[inline(always)]
161 pub fn _20_byte(self) -> &'a mut W {
162 self.variant(F0DS_A::_20_BYTE)
163 }
164 #[doc = "24-byte data field"]
165 #[inline(always)]
166 pub fn _24_byte(self) -> &'a mut W {
167 self.variant(F0DS_A::_24_BYTE)
168 }
169 #[doc = "32-byte data field"]
170 #[inline(always)]
171 pub fn _32_byte(self) -> &'a mut W {
172 self.variant(F0DS_A::_32_BYTE)
173 }
174 #[doc = "48-byte data field"]
175 #[inline(always)]
176 pub fn _48_byte(self) -> &'a mut W {
177 self.variant(F0DS_A::_48_BYTE)
178 }
179 #[doc = "64-byte data field"]
180 #[inline(always)]
181 pub fn _64_byte(self) -> &'a mut W {
182 self.variant(F0DS_A::_64_BYTE)
183 }
184 #[doc = r"Writes raw bits to the field"]
185 #[inline(always)]
186 pub fn bits(self, value: u8) -> &'a mut W {
187 self.w.bits = (self.w.bits & !0x07) | (value as u32 & 0x07);
188 self.w
189 }
190}
191#[doc = "Receive FIFO 1 Data Field Size\n\nValue on reset: 0"]
192#[derive(Clone, Copy, Debug, PartialEq)]
193#[repr(u8)]
194pub enum F1DS_A {
195 #[doc = "0: 8-byte data field"]
196 _8_BYTE = 0,
197 #[doc = "1: 12-byte data field"]
198 _12_BYTE = 1,
199 #[doc = "2: 16-byte data field"]
200 _16_BYTE = 2,
201 #[doc = "3: 20-byte data field"]
202 _20_BYTE = 3,
203 #[doc = "4: 24-byte data field"]
204 _24_BYTE = 4,
205 #[doc = "5: 32-byte data field"]
206 _32_BYTE = 5,
207 #[doc = "6: 48-byte data field"]
208 _48_BYTE = 6,
209 #[doc = "7: 64-byte data field"]
210 _64_BYTE = 7,
211}
212impl From<F1DS_A> for u8 {
213 #[inline(always)]
214 fn from(variant: F1DS_A) -> Self {
215 variant as _
216 }
217}
218#[doc = "Field `F1DS` reader - Receive FIFO 1 Data Field Size"]
219pub struct F1DS_R(crate::FieldReader<u8, F1DS_A>);
220impl F1DS_R {
221 #[inline(always)]
222 pub(crate) fn new(bits: u8) -> Self {
223 F1DS_R(crate::FieldReader::new(bits))
224 }
225 #[doc = r"Get enumerated values variant"]
226 #[inline(always)]
227 pub fn variant(&self) -> F1DS_A {
228 match self.bits {
229 0 => F1DS_A::_8_BYTE,
230 1 => F1DS_A::_12_BYTE,
231 2 => F1DS_A::_16_BYTE,
232 3 => F1DS_A::_20_BYTE,
233 4 => F1DS_A::_24_BYTE,
234 5 => F1DS_A::_32_BYTE,
235 6 => F1DS_A::_48_BYTE,
236 7 => F1DS_A::_64_BYTE,
237 _ => unreachable!(),
238 }
239 }
240 #[doc = "Checks if the value of the field is `_8_BYTE`"]
241 #[inline(always)]
242 pub fn is_8_byte(&self) -> bool {
243 **self == F1DS_A::_8_BYTE
244 }
245 #[doc = "Checks if the value of the field is `_12_BYTE`"]
246 #[inline(always)]
247 pub fn is_12_byte(&self) -> bool {
248 **self == F1DS_A::_12_BYTE
249 }
250 #[doc = "Checks if the value of the field is `_16_BYTE`"]
251 #[inline(always)]
252 pub fn is_16_byte(&self) -> bool {
253 **self == F1DS_A::_16_BYTE
254 }
255 #[doc = "Checks if the value of the field is `_20_BYTE`"]
256 #[inline(always)]
257 pub fn is_20_byte(&self) -> bool {
258 **self == F1DS_A::_20_BYTE
259 }
260 #[doc = "Checks if the value of the field is `_24_BYTE`"]
261 #[inline(always)]
262 pub fn is_24_byte(&self) -> bool {
263 **self == F1DS_A::_24_BYTE
264 }
265 #[doc = "Checks if the value of the field is `_32_BYTE`"]
266 #[inline(always)]
267 pub fn is_32_byte(&self) -> bool {
268 **self == F1DS_A::_32_BYTE
269 }
270 #[doc = "Checks if the value of the field is `_48_BYTE`"]
271 #[inline(always)]
272 pub fn is_48_byte(&self) -> bool {
273 **self == F1DS_A::_48_BYTE
274 }
275 #[doc = "Checks if the value of the field is `_64_BYTE`"]
276 #[inline(always)]
277 pub fn is_64_byte(&self) -> bool {
278 **self == F1DS_A::_64_BYTE
279 }
280}
281impl core::ops::Deref for F1DS_R {
282 type Target = crate::FieldReader<u8, F1DS_A>;
283 #[inline(always)]
284 fn deref(&self) -> &Self::Target {
285 &self.0
286 }
287}
288#[doc = "Field `F1DS` writer - Receive FIFO 1 Data Field Size"]
289pub struct F1DS_W<'a> {
290 w: &'a mut W,
291}
292impl<'a> F1DS_W<'a> {
293 #[doc = r"Writes `variant` to the field"]
294 #[inline(always)]
295 pub fn variant(self, variant: F1DS_A) -> &'a mut W {
296 self.bits(variant.into())
297 }
298 #[doc = "8-byte data field"]
299 #[inline(always)]
300 pub fn _8_byte(self) -> &'a mut W {
301 self.variant(F1DS_A::_8_BYTE)
302 }
303 #[doc = "12-byte data field"]
304 #[inline(always)]
305 pub fn _12_byte(self) -> &'a mut W {
306 self.variant(F1DS_A::_12_BYTE)
307 }
308 #[doc = "16-byte data field"]
309 #[inline(always)]
310 pub fn _16_byte(self) -> &'a mut W {
311 self.variant(F1DS_A::_16_BYTE)
312 }
313 #[doc = "20-byte data field"]
314 #[inline(always)]
315 pub fn _20_byte(self) -> &'a mut W {
316 self.variant(F1DS_A::_20_BYTE)
317 }
318 #[doc = "24-byte data field"]
319 #[inline(always)]
320 pub fn _24_byte(self) -> &'a mut W {
321 self.variant(F1DS_A::_24_BYTE)
322 }
323 #[doc = "32-byte data field"]
324 #[inline(always)]
325 pub fn _32_byte(self) -> &'a mut W {
326 self.variant(F1DS_A::_32_BYTE)
327 }
328 #[doc = "48-byte data field"]
329 #[inline(always)]
330 pub fn _48_byte(self) -> &'a mut W {
331 self.variant(F1DS_A::_48_BYTE)
332 }
333 #[doc = "64-byte data field"]
334 #[inline(always)]
335 pub fn _64_byte(self) -> &'a mut W {
336 self.variant(F1DS_A::_64_BYTE)
337 }
338 #[doc = r"Writes raw bits to the field"]
339 #[inline(always)]
340 pub fn bits(self, value: u8) -> &'a mut W {
341 self.w.bits = (self.w.bits & !(0x07 << 4)) | ((value as u32 & 0x07) << 4);
342 self.w
343 }
344}
345#[doc = "Receive Buffer Data Field Size\n\nValue on reset: 0"]
346#[derive(Clone, Copy, Debug, PartialEq)]
347#[repr(u8)]
348pub enum RBDS_A {
349 #[doc = "0: 8-byte data field"]
350 _8_BYTE = 0,
351 #[doc = "1: 12-byte data field"]
352 _12_BYTE = 1,
353 #[doc = "2: 16-byte data field"]
354 _16_BYTE = 2,
355 #[doc = "3: 20-byte data field"]
356 _20_BYTE = 3,
357 #[doc = "4: 24-byte data field"]
358 _24_BYTE = 4,
359 #[doc = "5: 32-byte data field"]
360 _32_BYTE = 5,
361 #[doc = "6: 48-byte data field"]
362 _48_BYTE = 6,
363 #[doc = "7: 64-byte data field"]
364 _64_BYTE = 7,
365}
366impl From<RBDS_A> for u8 {
367 #[inline(always)]
368 fn from(variant: RBDS_A) -> Self {
369 variant as _
370 }
371}
372#[doc = "Field `RBDS` reader - Receive Buffer Data Field Size"]
373pub struct RBDS_R(crate::FieldReader<u8, RBDS_A>);
374impl RBDS_R {
375 #[inline(always)]
376 pub(crate) fn new(bits: u8) -> Self {
377 RBDS_R(crate::FieldReader::new(bits))
378 }
379 #[doc = r"Get enumerated values variant"]
380 #[inline(always)]
381 pub fn variant(&self) -> RBDS_A {
382 match self.bits {
383 0 => RBDS_A::_8_BYTE,
384 1 => RBDS_A::_12_BYTE,
385 2 => RBDS_A::_16_BYTE,
386 3 => RBDS_A::_20_BYTE,
387 4 => RBDS_A::_24_BYTE,
388 5 => RBDS_A::_32_BYTE,
389 6 => RBDS_A::_48_BYTE,
390 7 => RBDS_A::_64_BYTE,
391 _ => unreachable!(),
392 }
393 }
394 #[doc = "Checks if the value of the field is `_8_BYTE`"]
395 #[inline(always)]
396 pub fn is_8_byte(&self) -> bool {
397 **self == RBDS_A::_8_BYTE
398 }
399 #[doc = "Checks if the value of the field is `_12_BYTE`"]
400 #[inline(always)]
401 pub fn is_12_byte(&self) -> bool {
402 **self == RBDS_A::_12_BYTE
403 }
404 #[doc = "Checks if the value of the field is `_16_BYTE`"]
405 #[inline(always)]
406 pub fn is_16_byte(&self) -> bool {
407 **self == RBDS_A::_16_BYTE
408 }
409 #[doc = "Checks if the value of the field is `_20_BYTE`"]
410 #[inline(always)]
411 pub fn is_20_byte(&self) -> bool {
412 **self == RBDS_A::_20_BYTE
413 }
414 #[doc = "Checks if the value of the field is `_24_BYTE`"]
415 #[inline(always)]
416 pub fn is_24_byte(&self) -> bool {
417 **self == RBDS_A::_24_BYTE
418 }
419 #[doc = "Checks if the value of the field is `_32_BYTE`"]
420 #[inline(always)]
421 pub fn is_32_byte(&self) -> bool {
422 **self == RBDS_A::_32_BYTE
423 }
424 #[doc = "Checks if the value of the field is `_48_BYTE`"]
425 #[inline(always)]
426 pub fn is_48_byte(&self) -> bool {
427 **self == RBDS_A::_48_BYTE
428 }
429 #[doc = "Checks if the value of the field is `_64_BYTE`"]
430 #[inline(always)]
431 pub fn is_64_byte(&self) -> bool {
432 **self == RBDS_A::_64_BYTE
433 }
434}
435impl core::ops::Deref for RBDS_R {
436 type Target = crate::FieldReader<u8, RBDS_A>;
437 #[inline(always)]
438 fn deref(&self) -> &Self::Target {
439 &self.0
440 }
441}
442#[doc = "Field `RBDS` writer - Receive Buffer Data Field Size"]
443pub struct RBDS_W<'a> {
444 w: &'a mut W,
445}
446impl<'a> RBDS_W<'a> {
447 #[doc = r"Writes `variant` to the field"]
448 #[inline(always)]
449 pub fn variant(self, variant: RBDS_A) -> &'a mut W {
450 self.bits(variant.into())
451 }
452 #[doc = "8-byte data field"]
453 #[inline(always)]
454 pub fn _8_byte(self) -> &'a mut W {
455 self.variant(RBDS_A::_8_BYTE)
456 }
457 #[doc = "12-byte data field"]
458 #[inline(always)]
459 pub fn _12_byte(self) -> &'a mut W {
460 self.variant(RBDS_A::_12_BYTE)
461 }
462 #[doc = "16-byte data field"]
463 #[inline(always)]
464 pub fn _16_byte(self) -> &'a mut W {
465 self.variant(RBDS_A::_16_BYTE)
466 }
467 #[doc = "20-byte data field"]
468 #[inline(always)]
469 pub fn _20_byte(self) -> &'a mut W {
470 self.variant(RBDS_A::_20_BYTE)
471 }
472 #[doc = "24-byte data field"]
473 #[inline(always)]
474 pub fn _24_byte(self) -> &'a mut W {
475 self.variant(RBDS_A::_24_BYTE)
476 }
477 #[doc = "32-byte data field"]
478 #[inline(always)]
479 pub fn _32_byte(self) -> &'a mut W {
480 self.variant(RBDS_A::_32_BYTE)
481 }
482 #[doc = "48-byte data field"]
483 #[inline(always)]
484 pub fn _48_byte(self) -> &'a mut W {
485 self.variant(RBDS_A::_48_BYTE)
486 }
487 #[doc = "64-byte data field"]
488 #[inline(always)]
489 pub fn _64_byte(self) -> &'a mut W {
490 self.variant(RBDS_A::_64_BYTE)
491 }
492 #[doc = r"Writes raw bits to the field"]
493 #[inline(always)]
494 pub fn bits(self, value: u8) -> &'a mut W {
495 self.w.bits = (self.w.bits & !(0x07 << 8)) | ((value as u32 & 0x07) << 8);
496 self.w
497 }
498}
499impl R {
500 #[doc = "Bits 0:2 - Receive FIFO 0 Data Field Size"]
501 #[inline(always)]
502 pub fn f0ds(&self) -> F0DS_R {
503 F0DS_R::new((self.bits & 0x07) as u8)
504 }
505 #[doc = "Bits 4:6 - Receive FIFO 1 Data Field Size"]
506 #[inline(always)]
507 pub fn f1ds(&self) -> F1DS_R {
508 F1DS_R::new(((self.bits >> 4) & 0x07) as u8)
509 }
510 #[doc = "Bits 8:10 - Receive Buffer Data Field Size"]
511 #[inline(always)]
512 pub fn rbds(&self) -> RBDS_R {
513 RBDS_R::new(((self.bits >> 8) & 0x07) as u8)
514 }
515}
516impl W {
517 #[doc = "Bits 0:2 - Receive FIFO 0 Data Field Size"]
518 #[inline(always)]
519 pub fn f0ds(&mut self) -> F0DS_W {
520 F0DS_W { w: self }
521 }
522 #[doc = "Bits 4:6 - Receive FIFO 1 Data Field Size"]
523 #[inline(always)]
524 pub fn f1ds(&mut self) -> F1DS_W {
525 F1DS_W { w: self }
526 }
527 #[doc = "Bits 8:10 - Receive Buffer Data Field Size"]
528 #[inline(always)]
529 pub fn rbds(&mut self) -> RBDS_W {
530 RBDS_W { w: self }
531 }
532 #[doc = "Writes raw bits to the register."]
533 #[inline(always)]
534 pub unsafe fn bits(&mut self, bits: u32) -> &mut Self {
535 self.0.bits(bits);
536 self
537 }
538}
539#[doc = "Receive Buffer / FIFO Element Size Configuration Register\n\nThis register you can [`read`](crate::generic::Reg::read), [`write_with_zero`](crate::generic::Reg::write_with_zero), [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`modify`](crate::generic::Reg::modify). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [mcan_rxesc](index.html) module"]
540pub struct MCAN_RXESC_SPEC;
541impl crate::RegisterSpec for MCAN_RXESC_SPEC {
542 type Ux = u32;
543}
544#[doc = "`read()` method returns [mcan_rxesc::R](R) reader structure"]
545impl crate::Readable for MCAN_RXESC_SPEC {
546 type Reader = R;
547}
548#[doc = "`write(|w| ..)` method takes [mcan_rxesc::W](W) writer structure"]
549impl crate::Writable for MCAN_RXESC_SPEC {
550 type Writer = W;
551}
552#[doc = "`reset()` method sets MCAN_RXESC to value 0"]
553impl crate::Resettable for MCAN_RXESC_SPEC {
554 #[inline(always)]
555 fn reset_value() -> Self::Ux {
556 0
557 }
558}