py32f0/py32f003/rcc/
icscr.rs1pub struct R(crate::R<ICSCR_SPEC>);
3impl core::ops::Deref for R {
4 type Target = crate::R<ICSCR_SPEC>;
5 #[inline(always)]
6 fn deref(&self) -> &Self::Target {
7 &self.0
8 }
9}
10impl From<crate::R<ICSCR_SPEC>> for R {
11 #[inline(always)]
12 fn from(reader: crate::R<ICSCR_SPEC>) -> Self {
13 R(reader)
14 }
15}
16pub struct W(crate::W<ICSCR_SPEC>);
18impl core::ops::Deref for W {
19 type Target = crate::W<ICSCR_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<ICSCR_SPEC>> for W {
32 #[inline(always)]
33 fn from(writer: crate::W<ICSCR_SPEC>) -> Self {
34 W(writer)
35 }
36}
37pub type HSI_TRIM_R = crate::FieldReader<u16, u16>;
39pub type HSI_TRIM_W<'a, const O: u8> = crate::FieldWriter<'a, u32, ICSCR_SPEC, u16, u16, 13, O>;
41pub type HSI_FS_R = crate::FieldReader<u8, HSI_FS_A>;
43#[derive(Clone, Copy, Debug, PartialEq, Eq)]
47#[repr(u8)]
48pub enum HSI_FS_A {
49 Freq4mhz = 0,
51 Freq8mhz = 1,
53 Freq16mhz = 2,
55 Freq2212mhz = 3,
57 Freq24mhz = 4,
59}
60impl From<HSI_FS_A> for u8 {
61 #[inline(always)]
62 fn from(variant: HSI_FS_A) -> Self {
63 variant as _
64 }
65}
66impl HSI_FS_R {
67 #[inline(always)]
69 pub fn variant(&self) -> Option<HSI_FS_A> {
70 match self.bits {
71 0 => Some(HSI_FS_A::Freq4mhz),
72 1 => Some(HSI_FS_A::Freq8mhz),
73 2 => Some(HSI_FS_A::Freq16mhz),
74 3 => Some(HSI_FS_A::Freq2212mhz),
75 4 => Some(HSI_FS_A::Freq24mhz),
76 _ => None,
77 }
78 }
79 #[inline(always)]
81 pub fn is_freq4mhz(&self) -> bool {
82 *self == HSI_FS_A::Freq4mhz
83 }
84 #[inline(always)]
86 pub fn is_freq8mhz(&self) -> bool {
87 *self == HSI_FS_A::Freq8mhz
88 }
89 #[inline(always)]
91 pub fn is_freq16mhz(&self) -> bool {
92 *self == HSI_FS_A::Freq16mhz
93 }
94 #[inline(always)]
96 pub fn is_freq22_12mhz(&self) -> bool {
97 *self == HSI_FS_A::Freq2212mhz
98 }
99 #[inline(always)]
101 pub fn is_freq24mhz(&self) -> bool {
102 *self == HSI_FS_A::Freq24mhz
103 }
104}
105pub type HSI_FS_W<'a, const O: u8> = crate::FieldWriter<'a, u32, ICSCR_SPEC, u8, HSI_FS_A, 3, O>;
107impl<'a, const O: u8> HSI_FS_W<'a, O> {
108 #[inline(always)]
110 pub fn freq4mhz(self) -> &'a mut W {
111 self.variant(HSI_FS_A::Freq4mhz)
112 }
113 #[inline(always)]
115 pub fn freq8mhz(self) -> &'a mut W {
116 self.variant(HSI_FS_A::Freq8mhz)
117 }
118 #[inline(always)]
120 pub fn freq16mhz(self) -> &'a mut W {
121 self.variant(HSI_FS_A::Freq16mhz)
122 }
123 #[inline(always)]
125 pub fn freq22_12mhz(self) -> &'a mut W {
126 self.variant(HSI_FS_A::Freq2212mhz)
127 }
128 #[inline(always)]
130 pub fn freq24mhz(self) -> &'a mut W {
131 self.variant(HSI_FS_A::Freq24mhz)
132 }
133}
134pub type LSI_TRIM_R = crate::FieldReader<u16, u16>;
136pub type LSI_TRIM_W<'a, const O: u8> = crate::FieldWriter<'a, u32, ICSCR_SPEC, u16, u16, 9, O>;
138pub type LSI_STARTUP_R = crate::FieldReader<u8, LSI_STARTUP_A>;
140#[derive(Clone, Copy, Debug, PartialEq, Eq)]
144#[repr(u8)]
145pub enum LSI_STARTUP_A {
146 Cycles4 = 0,
148 Cycles16 = 1,
150 Cycles64 = 2,
152 Cycles256 = 3,
154}
155impl From<LSI_STARTUP_A> for u8 {
156 #[inline(always)]
157 fn from(variant: LSI_STARTUP_A) -> Self {
158 variant as _
159 }
160}
161impl LSI_STARTUP_R {
162 #[inline(always)]
164 pub fn variant(&self) -> LSI_STARTUP_A {
165 match self.bits {
166 0 => LSI_STARTUP_A::Cycles4,
167 1 => LSI_STARTUP_A::Cycles16,
168 2 => LSI_STARTUP_A::Cycles64,
169 3 => LSI_STARTUP_A::Cycles256,
170 _ => unreachable!(),
171 }
172 }
173 #[inline(always)]
175 pub fn is_cycles4(&self) -> bool {
176 *self == LSI_STARTUP_A::Cycles4
177 }
178 #[inline(always)]
180 pub fn is_cycles16(&self) -> bool {
181 *self == LSI_STARTUP_A::Cycles16
182 }
183 #[inline(always)]
185 pub fn is_cycles64(&self) -> bool {
186 *self == LSI_STARTUP_A::Cycles64
187 }
188 #[inline(always)]
190 pub fn is_cycles256(&self) -> bool {
191 *self == LSI_STARTUP_A::Cycles256
192 }
193}
194pub type LSI_STARTUP_W<'a, const O: u8> =
196 crate::FieldWriterSafe<'a, u32, ICSCR_SPEC, u8, LSI_STARTUP_A, 2, O>;
197impl<'a, const O: u8> LSI_STARTUP_W<'a, O> {
198 #[inline(always)]
200 pub fn cycles4(self) -> &'a mut W {
201 self.variant(LSI_STARTUP_A::Cycles4)
202 }
203 #[inline(always)]
205 pub fn cycles16(self) -> &'a mut W {
206 self.variant(LSI_STARTUP_A::Cycles16)
207 }
208 #[inline(always)]
210 pub fn cycles64(self) -> &'a mut W {
211 self.variant(LSI_STARTUP_A::Cycles64)
212 }
213 #[inline(always)]
215 pub fn cycles256(self) -> &'a mut W {
216 self.variant(LSI_STARTUP_A::Cycles256)
217 }
218}
219impl R {
220 #[inline(always)]
222 pub fn hsi_trim(&self) -> HSI_TRIM_R {
223 HSI_TRIM_R::new((self.bits & 0x1fff) as u16)
224 }
225 #[inline(always)]
227 pub fn hsi_fs(&self) -> HSI_FS_R {
228 HSI_FS_R::new(((self.bits >> 13) & 7) as u8)
229 }
230 #[inline(always)]
232 pub fn lsi_trim(&self) -> LSI_TRIM_R {
233 LSI_TRIM_R::new(((self.bits >> 16) & 0x01ff) as u16)
234 }
235 #[inline(always)]
237 pub fn lsi_startup(&self) -> LSI_STARTUP_R {
238 LSI_STARTUP_R::new(((self.bits >> 26) & 3) as u8)
239 }
240}
241impl W {
242 #[inline(always)]
244 #[must_use]
245 pub fn hsi_trim(&mut self) -> HSI_TRIM_W<0> {
246 HSI_TRIM_W::new(self)
247 }
248 #[inline(always)]
250 #[must_use]
251 pub fn hsi_fs(&mut self) -> HSI_FS_W<13> {
252 HSI_FS_W::new(self)
253 }
254 #[inline(always)]
256 #[must_use]
257 pub fn lsi_trim(&mut self) -> LSI_TRIM_W<16> {
258 LSI_TRIM_W::new(self)
259 }
260 #[inline(always)]
262 #[must_use]
263 pub fn lsi_startup(&mut self) -> LSI_STARTUP_W<26> {
264 LSI_STARTUP_W::new(self)
265 }
266 #[inline(always)]
268 pub unsafe fn bits(&mut self, bits: u32) -> &mut Self {
269 self.0.bits(bits);
270 self
271 }
272}
273pub struct ICSCR_SPEC;
279impl crate::RegisterSpec for ICSCR_SPEC {
280 type Ux = u32;
281}
282impl crate::Readable for ICSCR_SPEC {
284 type Reader = R;
285}
286impl crate::Writable for ICSCR_SPEC {
288 type Writer = W;
289 const ZERO_TO_MODIFY_FIELDS_BITMAP: Self::Ux = 0;
290 const ONE_TO_MODIFY_FIELDS_BITMAP: Self::Ux = 0;
291}
292impl crate::Resettable for ICSCR_SPEC {
294 const RESET_VALUE: Self::Ux = 0x1000_0000;
295}