xmc4500/usic0_ch0/
sctr.rs

1#[doc = "Register `SCTR` reader"]
2pub type R = crate::R<SCTR_SPEC>;
3#[doc = "Register `SCTR` writer"]
4pub type W = crate::W<SCTR_SPEC>;
5#[doc = "Shift Direction\n\nValue on reset: 0"]
6#[derive(Clone, Copy, Debug, PartialEq, Eq)]
7pub enum SDIR_A {
8    #[doc = "0: Shift LSB first. The first data bit of a data word is located at bit position 0."]
9    VALUE1 = 0,
10    #[doc = "1: Shift MSB first. The first data bit of a data word is located at the bit position given by bit field SCTR.WLE."]
11    VALUE2 = 1,
12}
13impl From<SDIR_A> for bool {
14    #[inline(always)]
15    fn from(variant: SDIR_A) -> Self {
16        variant as u8 != 0
17    }
18}
19#[doc = "Field `SDIR` reader - Shift Direction"]
20pub type SDIR_R = crate::BitReader<SDIR_A>;
21impl SDIR_R {
22    #[doc = "Get enumerated values variant"]
23    #[inline(always)]
24    pub const fn variant(&self) -> SDIR_A {
25        match self.bits {
26            false => SDIR_A::VALUE1,
27            true => SDIR_A::VALUE2,
28        }
29    }
30    #[doc = "Shift LSB first. The first data bit of a data word is located at bit position 0."]
31    #[inline(always)]
32    pub fn is_value1(&self) -> bool {
33        *self == SDIR_A::VALUE1
34    }
35    #[doc = "Shift MSB first. The first data bit of a data word is located at the bit position given by bit field SCTR.WLE."]
36    #[inline(always)]
37    pub fn is_value2(&self) -> bool {
38        *self == SDIR_A::VALUE2
39    }
40}
41#[doc = "Field `SDIR` writer - Shift Direction"]
42pub type SDIR_W<'a, REG> = crate::BitWriter<'a, REG, SDIR_A>;
43impl<'a, REG> SDIR_W<'a, REG>
44where
45    REG: crate::Writable + crate::RegisterSpec,
46{
47    #[doc = "Shift LSB first. The first data bit of a data word is located at bit position 0."]
48    #[inline(always)]
49    pub fn value1(self) -> &'a mut crate::W<REG> {
50        self.variant(SDIR_A::VALUE1)
51    }
52    #[doc = "Shift MSB first. The first data bit of a data word is located at the bit position given by bit field SCTR.WLE."]
53    #[inline(always)]
54    pub fn value2(self) -> &'a mut crate::W<REG> {
55        self.variant(SDIR_A::VALUE2)
56    }
57}
58#[doc = "Passive Data Level\n\nValue on reset: 0"]
59#[derive(Clone, Copy, Debug, PartialEq, Eq)]
60pub enum PDL_A {
61    #[doc = "0: The passive data level is 0."]
62    VALUE1 = 0,
63    #[doc = "1: The passive data level is 1."]
64    VALUE2 = 1,
65}
66impl From<PDL_A> for bool {
67    #[inline(always)]
68    fn from(variant: PDL_A) -> Self {
69        variant as u8 != 0
70    }
71}
72#[doc = "Field `PDL` reader - Passive Data Level"]
73pub type PDL_R = crate::BitReader<PDL_A>;
74impl PDL_R {
75    #[doc = "Get enumerated values variant"]
76    #[inline(always)]
77    pub const fn variant(&self) -> PDL_A {
78        match self.bits {
79            false => PDL_A::VALUE1,
80            true => PDL_A::VALUE2,
81        }
82    }
83    #[doc = "The passive data level is 0."]
84    #[inline(always)]
85    pub fn is_value1(&self) -> bool {
86        *self == PDL_A::VALUE1
87    }
88    #[doc = "The passive data level is 1."]
89    #[inline(always)]
90    pub fn is_value2(&self) -> bool {
91        *self == PDL_A::VALUE2
92    }
93}
94#[doc = "Field `PDL` writer - Passive Data Level"]
95pub type PDL_W<'a, REG> = crate::BitWriter<'a, REG, PDL_A>;
96impl<'a, REG> PDL_W<'a, REG>
97where
98    REG: crate::Writable + crate::RegisterSpec,
99{
100    #[doc = "The passive data level is 0."]
101    #[inline(always)]
102    pub fn value1(self) -> &'a mut crate::W<REG> {
103        self.variant(PDL_A::VALUE1)
104    }
105    #[doc = "The passive data level is 1."]
106    #[inline(always)]
107    pub fn value2(self) -> &'a mut crate::W<REG> {
108        self.variant(PDL_A::VALUE2)
109    }
110}
111#[doc = "Data Shift Mode\n\nValue on reset: 0"]
112#[derive(Clone, Copy, Debug, PartialEq, Eq)]
113#[repr(u8)]
114pub enum DSM_A {
115    #[doc = "0: Receive and transmit data is shifted in and out one bit at a time through DX0 and DOUT0."]
116    VALUE1 = 0,
117    #[doc = "2: Receive and transmit data is shifted in and out two bits at a time through two input stages (DX0 and DX3) and DOUT\\[1:0\\]
118respectively."]
119    VALUE3 = 2,
120    #[doc = "3: Receive and transmit data is shifted in and out four bits at a time through four input stages (DX0, DX\\[5:3\\]) and DOUT\\[3:0\\]
121respectively."]
122    VALUE4 = 3,
123}
124impl From<DSM_A> for u8 {
125    #[inline(always)]
126    fn from(variant: DSM_A) -> Self {
127        variant as _
128    }
129}
130impl crate::FieldSpec for DSM_A {
131    type Ux = u8;
132}
133impl crate::IsEnum for DSM_A {}
134#[doc = "Field `DSM` reader - Data Shift Mode"]
135pub type DSM_R = crate::FieldReader<DSM_A>;
136impl DSM_R {
137    #[doc = "Get enumerated values variant"]
138    #[inline(always)]
139    pub const fn variant(&self) -> Option<DSM_A> {
140        match self.bits {
141            0 => Some(DSM_A::VALUE1),
142            2 => Some(DSM_A::VALUE3),
143            3 => Some(DSM_A::VALUE4),
144            _ => None,
145        }
146    }
147    #[doc = "Receive and transmit data is shifted in and out one bit at a time through DX0 and DOUT0."]
148    #[inline(always)]
149    pub fn is_value1(&self) -> bool {
150        *self == DSM_A::VALUE1
151    }
152    #[doc = "Receive and transmit data is shifted in and out two bits at a time through two input stages (DX0 and DX3) and DOUT\\[1:0\\]
153respectively."]
154    #[inline(always)]
155    pub fn is_value3(&self) -> bool {
156        *self == DSM_A::VALUE3
157    }
158    #[doc = "Receive and transmit data is shifted in and out four bits at a time through four input stages (DX0, DX\\[5:3\\]) and DOUT\\[3:0\\]
159respectively."]
160    #[inline(always)]
161    pub fn is_value4(&self) -> bool {
162        *self == DSM_A::VALUE4
163    }
164}
165#[doc = "Field `DSM` writer - Data Shift Mode"]
166pub type DSM_W<'a, REG> = crate::FieldWriter<'a, REG, 2, DSM_A>;
167impl<'a, REG> DSM_W<'a, REG>
168where
169    REG: crate::Writable + crate::RegisterSpec,
170    REG::Ux: From<u8>,
171{
172    #[doc = "Receive and transmit data is shifted in and out one bit at a time through DX0 and DOUT0."]
173    #[inline(always)]
174    pub fn value1(self) -> &'a mut crate::W<REG> {
175        self.variant(DSM_A::VALUE1)
176    }
177    #[doc = "Receive and transmit data is shifted in and out two bits at a time through two input stages (DX0 and DX3) and DOUT\\[1:0\\]
178respectively."]
179    #[inline(always)]
180    pub fn value3(self) -> &'a mut crate::W<REG> {
181        self.variant(DSM_A::VALUE3)
182    }
183    #[doc = "Receive and transmit data is shifted in and out four bits at a time through four input stages (DX0, DX\\[5:3\\]) and DOUT\\[3:0\\]
184respectively."]
185    #[inline(always)]
186    pub fn value4(self) -> &'a mut crate::W<REG> {
187        self.variant(DSM_A::VALUE4)
188    }
189}
190#[doc = "Port Control Direction\n\nValue on reset: 0"]
191#[derive(Clone, Copy, Debug, PartialEq, Eq)]
192pub enum HPCDIR_A {
193    #[doc = "0: The pin(s) with hardware pin control enabled are selected to be in input mode."]
194    VALUE1 = 0,
195    #[doc = "1: The pin(s) with hardware pin control enabled are selected to be in output mode."]
196    VALUE2 = 1,
197}
198impl From<HPCDIR_A> for bool {
199    #[inline(always)]
200    fn from(variant: HPCDIR_A) -> Self {
201        variant as u8 != 0
202    }
203}
204#[doc = "Field `HPCDIR` reader - Port Control Direction"]
205pub type HPCDIR_R = crate::BitReader<HPCDIR_A>;
206impl HPCDIR_R {
207    #[doc = "Get enumerated values variant"]
208    #[inline(always)]
209    pub const fn variant(&self) -> HPCDIR_A {
210        match self.bits {
211            false => HPCDIR_A::VALUE1,
212            true => HPCDIR_A::VALUE2,
213        }
214    }
215    #[doc = "The pin(s) with hardware pin control enabled are selected to be in input mode."]
216    #[inline(always)]
217    pub fn is_value1(&self) -> bool {
218        *self == HPCDIR_A::VALUE1
219    }
220    #[doc = "The pin(s) with hardware pin control enabled are selected to be in output mode."]
221    #[inline(always)]
222    pub fn is_value2(&self) -> bool {
223        *self == HPCDIR_A::VALUE2
224    }
225}
226#[doc = "Field `HPCDIR` writer - Port Control Direction"]
227pub type HPCDIR_W<'a, REG> = crate::BitWriter<'a, REG, HPCDIR_A>;
228impl<'a, REG> HPCDIR_W<'a, REG>
229where
230    REG: crate::Writable + crate::RegisterSpec,
231{
232    #[doc = "The pin(s) with hardware pin control enabled are selected to be in input mode."]
233    #[inline(always)]
234    pub fn value1(self) -> &'a mut crate::W<REG> {
235        self.variant(HPCDIR_A::VALUE1)
236    }
237    #[doc = "The pin(s) with hardware pin control enabled are selected to be in output mode."]
238    #[inline(always)]
239    pub fn value2(self) -> &'a mut crate::W<REG> {
240        self.variant(HPCDIR_A::VALUE2)
241    }
242}
243#[doc = "Data Output Configuration\n\nValue on reset: 0"]
244#[derive(Clone, Copy, Debug, PartialEq, Eq)]
245#[repr(u8)]
246pub enum DOCFG_A {
247    #[doc = "0: DOUTx = shift data value"]
248    VALUE1 = 0,
249    #[doc = "1: DOUTx = inverted shift data value"]
250    VALUE2 = 1,
251}
252impl From<DOCFG_A> for u8 {
253    #[inline(always)]
254    fn from(variant: DOCFG_A) -> Self {
255        variant as _
256    }
257}
258impl crate::FieldSpec for DOCFG_A {
259    type Ux = u8;
260}
261impl crate::IsEnum for DOCFG_A {}
262#[doc = "Field `DOCFG` reader - Data Output Configuration"]
263pub type DOCFG_R = crate::FieldReader<DOCFG_A>;
264impl DOCFG_R {
265    #[doc = "Get enumerated values variant"]
266    #[inline(always)]
267    pub const fn variant(&self) -> Option<DOCFG_A> {
268        match self.bits {
269            0 => Some(DOCFG_A::VALUE1),
270            1 => Some(DOCFG_A::VALUE2),
271            _ => None,
272        }
273    }
274    #[doc = "DOUTx = shift data value"]
275    #[inline(always)]
276    pub fn is_value1(&self) -> bool {
277        *self == DOCFG_A::VALUE1
278    }
279    #[doc = "DOUTx = inverted shift data value"]
280    #[inline(always)]
281    pub fn is_value2(&self) -> bool {
282        *self == DOCFG_A::VALUE2
283    }
284}
285#[doc = "Field `DOCFG` writer - Data Output Configuration"]
286pub type DOCFG_W<'a, REG> = crate::FieldWriter<'a, REG, 2, DOCFG_A>;
287impl<'a, REG> DOCFG_W<'a, REG>
288where
289    REG: crate::Writable + crate::RegisterSpec,
290    REG::Ux: From<u8>,
291{
292    #[doc = "DOUTx = shift data value"]
293    #[inline(always)]
294    pub fn value1(self) -> &'a mut crate::W<REG> {
295        self.variant(DOCFG_A::VALUE1)
296    }
297    #[doc = "DOUTx = inverted shift data value"]
298    #[inline(always)]
299    pub fn value2(self) -> &'a mut crate::W<REG> {
300        self.variant(DOCFG_A::VALUE2)
301    }
302}
303#[doc = "Transmission Mode\n\nValue on reset: 0"]
304#[derive(Clone, Copy, Debug, PartialEq, Eq)]
305#[repr(u8)]
306pub enum TRM_A {
307    #[doc = "0: The shift control signal is considered as inactive and data frame transfers are not possible."]
308    VALUE1 = 0,
309    #[doc = "1: The shift control signal is considered active if it is at 1-level. This is the setting to be programmed to allow data transfers."]
310    VALUE2 = 1,
311    #[doc = "2: The shift control signal is considered active if it is at 0-level. It is recommended to avoid this setting and to use the inversion in the DX2 stage in case of a low-active signal."]
312    VALUE3 = 2,
313    #[doc = "3: The shift control signal is considered active without referring to the actual signal level. Data frame transfer is possible after each edge of the signal."]
314    VALUE4 = 3,
315}
316impl From<TRM_A> for u8 {
317    #[inline(always)]
318    fn from(variant: TRM_A) -> Self {
319        variant as _
320    }
321}
322impl crate::FieldSpec for TRM_A {
323    type Ux = u8;
324}
325impl crate::IsEnum for TRM_A {}
326#[doc = "Field `TRM` reader - Transmission Mode"]
327pub type TRM_R = crate::FieldReader<TRM_A>;
328impl TRM_R {
329    #[doc = "Get enumerated values variant"]
330    #[inline(always)]
331    pub const fn variant(&self) -> TRM_A {
332        match self.bits {
333            0 => TRM_A::VALUE1,
334            1 => TRM_A::VALUE2,
335            2 => TRM_A::VALUE3,
336            3 => TRM_A::VALUE4,
337            _ => unreachable!(),
338        }
339    }
340    #[doc = "The shift control signal is considered as inactive and data frame transfers are not possible."]
341    #[inline(always)]
342    pub fn is_value1(&self) -> bool {
343        *self == TRM_A::VALUE1
344    }
345    #[doc = "The shift control signal is considered active if it is at 1-level. This is the setting to be programmed to allow data transfers."]
346    #[inline(always)]
347    pub fn is_value2(&self) -> bool {
348        *self == TRM_A::VALUE2
349    }
350    #[doc = "The shift control signal is considered active if it is at 0-level. It is recommended to avoid this setting and to use the inversion in the DX2 stage in case of a low-active signal."]
351    #[inline(always)]
352    pub fn is_value3(&self) -> bool {
353        *self == TRM_A::VALUE3
354    }
355    #[doc = "The shift control signal is considered active without referring to the actual signal level. Data frame transfer is possible after each edge of the signal."]
356    #[inline(always)]
357    pub fn is_value4(&self) -> bool {
358        *self == TRM_A::VALUE4
359    }
360}
361#[doc = "Field `TRM` writer - Transmission Mode"]
362pub type TRM_W<'a, REG> = crate::FieldWriter<'a, REG, 2, TRM_A, crate::Safe>;
363impl<'a, REG> TRM_W<'a, REG>
364where
365    REG: crate::Writable + crate::RegisterSpec,
366    REG::Ux: From<u8>,
367{
368    #[doc = "The shift control signal is considered as inactive and data frame transfers are not possible."]
369    #[inline(always)]
370    pub fn value1(self) -> &'a mut crate::W<REG> {
371        self.variant(TRM_A::VALUE1)
372    }
373    #[doc = "The shift control signal is considered active if it is at 1-level. This is the setting to be programmed to allow data transfers."]
374    #[inline(always)]
375    pub fn value2(self) -> &'a mut crate::W<REG> {
376        self.variant(TRM_A::VALUE2)
377    }
378    #[doc = "The shift control signal is considered active if it is at 0-level. It is recommended to avoid this setting and to use the inversion in the DX2 stage in case of a low-active signal."]
379    #[inline(always)]
380    pub fn value3(self) -> &'a mut crate::W<REG> {
381        self.variant(TRM_A::VALUE3)
382    }
383    #[doc = "The shift control signal is considered active without referring to the actual signal level. Data frame transfer is possible after each edge of the signal."]
384    #[inline(always)]
385    pub fn value4(self) -> &'a mut crate::W<REG> {
386        self.variant(TRM_A::VALUE4)
387    }
388}
389#[doc = "Field `FLE` reader - Frame Length"]
390pub type FLE_R = crate::FieldReader;
391#[doc = "Field `FLE` writer - Frame Length"]
392pub type FLE_W<'a, REG> = crate::FieldWriter<'a, REG, 6>;
393#[doc = "Word Length\n\nValue on reset: 0"]
394#[derive(Clone, Copy, Debug, PartialEq, Eq)]
395#[repr(u8)]
396pub enum WLE_A {
397    #[doc = "0: The data word contains 1 data bit located at bit position 0."]
398    VALUE1 = 0,
399    #[doc = "1: The data word contains 2 data bits located at bit positions \\[1:0\\]."]
400    VALUE2 = 1,
401    #[doc = "14: The data word contains 15 data bits located at bit positions \\[14:0\\]."]
402    VALUE3 = 14,
403    #[doc = "15: The data word contains 16 data bits located at bit positions \\[15:0\\]."]
404    VALUE4 = 15,
405}
406impl From<WLE_A> for u8 {
407    #[inline(always)]
408    fn from(variant: WLE_A) -> Self {
409        variant as _
410    }
411}
412impl crate::FieldSpec for WLE_A {
413    type Ux = u8;
414}
415impl crate::IsEnum for WLE_A {}
416#[doc = "Field `WLE` reader - Word Length"]
417pub type WLE_R = crate::FieldReader<WLE_A>;
418impl WLE_R {
419    #[doc = "Get enumerated values variant"]
420    #[inline(always)]
421    pub const fn variant(&self) -> Option<WLE_A> {
422        match self.bits {
423            0 => Some(WLE_A::VALUE1),
424            1 => Some(WLE_A::VALUE2),
425            14 => Some(WLE_A::VALUE3),
426            15 => Some(WLE_A::VALUE4),
427            _ => None,
428        }
429    }
430    #[doc = "The data word contains 1 data bit located at bit position 0."]
431    #[inline(always)]
432    pub fn is_value1(&self) -> bool {
433        *self == WLE_A::VALUE1
434    }
435    #[doc = "The data word contains 2 data bits located at bit positions \\[1:0\\]."]
436    #[inline(always)]
437    pub fn is_value2(&self) -> bool {
438        *self == WLE_A::VALUE2
439    }
440    #[doc = "The data word contains 15 data bits located at bit positions \\[14:0\\]."]
441    #[inline(always)]
442    pub fn is_value3(&self) -> bool {
443        *self == WLE_A::VALUE3
444    }
445    #[doc = "The data word contains 16 data bits located at bit positions \\[15:0\\]."]
446    #[inline(always)]
447    pub fn is_value4(&self) -> bool {
448        *self == WLE_A::VALUE4
449    }
450}
451#[doc = "Field `WLE` writer - Word Length"]
452pub type WLE_W<'a, REG> = crate::FieldWriter<'a, REG, 4, WLE_A>;
453impl<'a, REG> WLE_W<'a, REG>
454where
455    REG: crate::Writable + crate::RegisterSpec,
456    REG::Ux: From<u8>,
457{
458    #[doc = "The data word contains 1 data bit located at bit position 0."]
459    #[inline(always)]
460    pub fn value1(self) -> &'a mut crate::W<REG> {
461        self.variant(WLE_A::VALUE1)
462    }
463    #[doc = "The data word contains 2 data bits located at bit positions \\[1:0\\]."]
464    #[inline(always)]
465    pub fn value2(self) -> &'a mut crate::W<REG> {
466        self.variant(WLE_A::VALUE2)
467    }
468    #[doc = "The data word contains 15 data bits located at bit positions \\[14:0\\]."]
469    #[inline(always)]
470    pub fn value3(self) -> &'a mut crate::W<REG> {
471        self.variant(WLE_A::VALUE3)
472    }
473    #[doc = "The data word contains 16 data bits located at bit positions \\[15:0\\]."]
474    #[inline(always)]
475    pub fn value4(self) -> &'a mut crate::W<REG> {
476        self.variant(WLE_A::VALUE4)
477    }
478}
479impl R {
480    #[doc = "Bit 0 - Shift Direction"]
481    #[inline(always)]
482    pub fn sdir(&self) -> SDIR_R {
483        SDIR_R::new((self.bits & 1) != 0)
484    }
485    #[doc = "Bit 1 - Passive Data Level"]
486    #[inline(always)]
487    pub fn pdl(&self) -> PDL_R {
488        PDL_R::new(((self.bits >> 1) & 1) != 0)
489    }
490    #[doc = "Bits 2:3 - Data Shift Mode"]
491    #[inline(always)]
492    pub fn dsm(&self) -> DSM_R {
493        DSM_R::new(((self.bits >> 2) & 3) as u8)
494    }
495    #[doc = "Bit 4 - Port Control Direction"]
496    #[inline(always)]
497    pub fn hpcdir(&self) -> HPCDIR_R {
498        HPCDIR_R::new(((self.bits >> 4) & 1) != 0)
499    }
500    #[doc = "Bits 6:7 - Data Output Configuration"]
501    #[inline(always)]
502    pub fn docfg(&self) -> DOCFG_R {
503        DOCFG_R::new(((self.bits >> 6) & 3) as u8)
504    }
505    #[doc = "Bits 8:9 - Transmission Mode"]
506    #[inline(always)]
507    pub fn trm(&self) -> TRM_R {
508        TRM_R::new(((self.bits >> 8) & 3) as u8)
509    }
510    #[doc = "Bits 16:21 - Frame Length"]
511    #[inline(always)]
512    pub fn fle(&self) -> FLE_R {
513        FLE_R::new(((self.bits >> 16) & 0x3f) as u8)
514    }
515    #[doc = "Bits 24:27 - Word Length"]
516    #[inline(always)]
517    pub fn wle(&self) -> WLE_R {
518        WLE_R::new(((self.bits >> 24) & 0x0f) as u8)
519    }
520}
521impl W {
522    #[doc = "Bit 0 - Shift Direction"]
523    #[inline(always)]
524    pub fn sdir(&mut self) -> SDIR_W<SCTR_SPEC> {
525        SDIR_W::new(self, 0)
526    }
527    #[doc = "Bit 1 - Passive Data Level"]
528    #[inline(always)]
529    pub fn pdl(&mut self) -> PDL_W<SCTR_SPEC> {
530        PDL_W::new(self, 1)
531    }
532    #[doc = "Bits 2:3 - Data Shift Mode"]
533    #[inline(always)]
534    pub fn dsm(&mut self) -> DSM_W<SCTR_SPEC> {
535        DSM_W::new(self, 2)
536    }
537    #[doc = "Bit 4 - Port Control Direction"]
538    #[inline(always)]
539    pub fn hpcdir(&mut self) -> HPCDIR_W<SCTR_SPEC> {
540        HPCDIR_W::new(self, 4)
541    }
542    #[doc = "Bits 6:7 - Data Output Configuration"]
543    #[inline(always)]
544    pub fn docfg(&mut self) -> DOCFG_W<SCTR_SPEC> {
545        DOCFG_W::new(self, 6)
546    }
547    #[doc = "Bits 8:9 - Transmission Mode"]
548    #[inline(always)]
549    pub fn trm(&mut self) -> TRM_W<SCTR_SPEC> {
550        TRM_W::new(self, 8)
551    }
552    #[doc = "Bits 16:21 - Frame Length"]
553    #[inline(always)]
554    pub fn fle(&mut self) -> FLE_W<SCTR_SPEC> {
555        FLE_W::new(self, 16)
556    }
557    #[doc = "Bits 24:27 - Word Length"]
558    #[inline(always)]
559    pub fn wle(&mut self) -> WLE_W<SCTR_SPEC> {
560        WLE_W::new(self, 24)
561    }
562}
563#[doc = "Shift Control Register\n\nYou can [`read`](crate::Reg::read) this register and get [`sctr::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`sctr::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
564pub struct SCTR_SPEC;
565impl crate::RegisterSpec for SCTR_SPEC {
566    type Ux = u32;
567}
568#[doc = "`read()` method returns [`sctr::R`](R) reader structure"]
569impl crate::Readable for SCTR_SPEC {}
570#[doc = "`write(|w| ..)` method takes [`sctr::W`](W) writer structure"]
571impl crate::Writable for SCTR_SPEC {
572    type Safety = crate::Unsafe;
573    const ZERO_TO_MODIFY_FIELDS_BITMAP: u32 = 0;
574    const ONE_TO_MODIFY_FIELDS_BITMAP: u32 = 0;
575}
576#[doc = "`reset()` method sets SCTR to value 0"]
577impl crate::Resettable for SCTR_SPEC {
578    const RESET_VALUE: u32 = 0;
579}