xmc4200/scu_reset/
rststat.rs

1#[doc = "Register `RSTSTAT` reader"]
2pub type R = crate::R<RSTSTAT_SPEC>;
3#[doc = "Reset Status Information\n\nValue on reset: 0"]
4#[derive(Clone, Copy, Debug, PartialEq, Eq)]
5#[repr(u8)]
6pub enum RSTSTAT_A {
7    #[doc = "1: PORST reset"]
8    VALUE1 = 1,
9    #[doc = "2: SWD reset"]
10    VALUE2 = 2,
11    #[doc = "4: PV reset"]
12    VALUE3 = 4,
13    #[doc = "8: CPU system reset"]
14    VALUE4 = 8,
15    #[doc = "16: CPU lockup reset"]
16    VALUE5 = 16,
17    #[doc = "32: WDT reset"]
18    VALUE6 = 32,
19    #[doc = "128: Parity Error reset"]
20    VALUE8 = 128,
21}
22impl From<RSTSTAT_A> for u8 {
23    #[inline(always)]
24    fn from(variant: RSTSTAT_A) -> Self {
25        variant as _
26    }
27}
28impl crate::FieldSpec for RSTSTAT_A {
29    type Ux = u8;
30}
31impl crate::IsEnum for RSTSTAT_A {}
32#[doc = "Field `RSTSTAT` reader - Reset Status Information"]
33pub type RSTSTAT_R = crate::FieldReader<RSTSTAT_A>;
34impl RSTSTAT_R {
35    #[doc = "Get enumerated values variant"]
36    #[inline(always)]
37    pub const fn variant(&self) -> Option<RSTSTAT_A> {
38        match self.bits {
39            1 => Some(RSTSTAT_A::VALUE1),
40            2 => Some(RSTSTAT_A::VALUE2),
41            4 => Some(RSTSTAT_A::VALUE3),
42            8 => Some(RSTSTAT_A::VALUE4),
43            16 => Some(RSTSTAT_A::VALUE5),
44            32 => Some(RSTSTAT_A::VALUE6),
45            128 => Some(RSTSTAT_A::VALUE8),
46            _ => None,
47        }
48    }
49    #[doc = "PORST reset"]
50    #[inline(always)]
51    pub fn is_value1(&self) -> bool {
52        *self == RSTSTAT_A::VALUE1
53    }
54    #[doc = "SWD reset"]
55    #[inline(always)]
56    pub fn is_value2(&self) -> bool {
57        *self == RSTSTAT_A::VALUE2
58    }
59    #[doc = "PV reset"]
60    #[inline(always)]
61    pub fn is_value3(&self) -> bool {
62        *self == RSTSTAT_A::VALUE3
63    }
64    #[doc = "CPU system reset"]
65    #[inline(always)]
66    pub fn is_value4(&self) -> bool {
67        *self == RSTSTAT_A::VALUE4
68    }
69    #[doc = "CPU lockup reset"]
70    #[inline(always)]
71    pub fn is_value5(&self) -> bool {
72        *self == RSTSTAT_A::VALUE5
73    }
74    #[doc = "WDT reset"]
75    #[inline(always)]
76    pub fn is_value6(&self) -> bool {
77        *self == RSTSTAT_A::VALUE6
78    }
79    #[doc = "Parity Error reset"]
80    #[inline(always)]
81    pub fn is_value8(&self) -> bool {
82        *self == RSTSTAT_A::VALUE8
83    }
84}
85#[doc = "Hibernate Wake-up Status\n\nValue on reset: 0"]
86#[derive(Clone, Copy, Debug, PartialEq, Eq)]
87pub enum HIBWK_A {
88    #[doc = "0: No Wake-up"]
89    VALUE1 = 0,
90    #[doc = "1: Wake-up event"]
91    VALUE2 = 1,
92}
93impl From<HIBWK_A> for bool {
94    #[inline(always)]
95    fn from(variant: HIBWK_A) -> Self {
96        variant as u8 != 0
97    }
98}
99#[doc = "Field `HIBWK` reader - Hibernate Wake-up Status"]
100pub type HIBWK_R = crate::BitReader<HIBWK_A>;
101impl HIBWK_R {
102    #[doc = "Get enumerated values variant"]
103    #[inline(always)]
104    pub const fn variant(&self) -> HIBWK_A {
105        match self.bits {
106            false => HIBWK_A::VALUE1,
107            true => HIBWK_A::VALUE2,
108        }
109    }
110    #[doc = "No Wake-up"]
111    #[inline(always)]
112    pub fn is_value1(&self) -> bool {
113        *self == HIBWK_A::VALUE1
114    }
115    #[doc = "Wake-up event"]
116    #[inline(always)]
117    pub fn is_value2(&self) -> bool {
118        *self == HIBWK_A::VALUE2
119    }
120}
121#[doc = "Hibernate Reset Status\n\nValue on reset: 0"]
122#[derive(Clone, Copy, Debug, PartialEq, Eq)]
123pub enum HIBRS_A {
124    #[doc = "0: Reset de-asserted"]
125    VALUE1 = 0,
126    #[doc = "1: Reset asserted"]
127    VALUE2 = 1,
128}
129impl From<HIBRS_A> for bool {
130    #[inline(always)]
131    fn from(variant: HIBRS_A) -> Self {
132        variant as u8 != 0
133    }
134}
135#[doc = "Field `HIBRS` reader - Hibernate Reset Status"]
136pub type HIBRS_R = crate::BitReader<HIBRS_A>;
137impl HIBRS_R {
138    #[doc = "Get enumerated values variant"]
139    #[inline(always)]
140    pub const fn variant(&self) -> HIBRS_A {
141        match self.bits {
142            false => HIBRS_A::VALUE1,
143            true => HIBRS_A::VALUE2,
144        }
145    }
146    #[doc = "Reset de-asserted"]
147    #[inline(always)]
148    pub fn is_value1(&self) -> bool {
149        *self == HIBRS_A::VALUE1
150    }
151    #[doc = "Reset asserted"]
152    #[inline(always)]
153    pub fn is_value2(&self) -> bool {
154        *self == HIBRS_A::VALUE2
155    }
156}
157#[doc = "Enable Lockup Status\n\nValue on reset: 0"]
158#[derive(Clone, Copy, Debug, PartialEq, Eq)]
159pub enum LCKEN_A {
160    #[doc = "0: Reset by Lockup disabled"]
161    VALUE1 = 0,
162    #[doc = "1: Reset by Lockup enabled"]
163    VALUE2 = 1,
164}
165impl From<LCKEN_A> for bool {
166    #[inline(always)]
167    fn from(variant: LCKEN_A) -> Self {
168        variant as u8 != 0
169    }
170}
171#[doc = "Field `LCKEN` reader - Enable Lockup Status"]
172pub type LCKEN_R = crate::BitReader<LCKEN_A>;
173impl LCKEN_R {
174    #[doc = "Get enumerated values variant"]
175    #[inline(always)]
176    pub const fn variant(&self) -> LCKEN_A {
177        match self.bits {
178            false => LCKEN_A::VALUE1,
179            true => LCKEN_A::VALUE2,
180        }
181    }
182    #[doc = "Reset by Lockup disabled"]
183    #[inline(always)]
184    pub fn is_value1(&self) -> bool {
185        *self == LCKEN_A::VALUE1
186    }
187    #[doc = "Reset by Lockup enabled"]
188    #[inline(always)]
189    pub fn is_value2(&self) -> bool {
190        *self == LCKEN_A::VALUE2
191    }
192}
193impl R {
194    #[doc = "Bits 0:7 - Reset Status Information"]
195    #[inline(always)]
196    pub fn rststat(&self) -> RSTSTAT_R {
197        RSTSTAT_R::new((self.bits & 0xff) as u8)
198    }
199    #[doc = "Bit 8 - Hibernate Wake-up Status"]
200    #[inline(always)]
201    pub fn hibwk(&self) -> HIBWK_R {
202        HIBWK_R::new(((self.bits >> 8) & 1) != 0)
203    }
204    #[doc = "Bit 9 - Hibernate Reset Status"]
205    #[inline(always)]
206    pub fn hibrs(&self) -> HIBRS_R {
207        HIBRS_R::new(((self.bits >> 9) & 1) != 0)
208    }
209    #[doc = "Bit 10 - Enable Lockup Status"]
210    #[inline(always)]
211    pub fn lcken(&self) -> LCKEN_R {
212        LCKEN_R::new(((self.bits >> 10) & 1) != 0)
213    }
214}
215#[doc = "RCU Reset Status\n\nYou can [`read`](crate::Reg::read) this register and get [`rststat::R`](R). See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
216pub struct RSTSTAT_SPEC;
217impl crate::RegisterSpec for RSTSTAT_SPEC {
218    type Ux = u32;
219}
220#[doc = "`read()` method returns [`rststat::R`](R) reader structure"]
221impl crate::Readable for RSTSTAT_SPEC {}
222#[doc = "`reset()` method sets RSTSTAT to value 0"]
223impl crate::Resettable for RSTSTAT_SPEC {
224    const RESET_VALUE: u32 = 0;
225}