stm32wl/stm32wl5x_cm4/rcc/
extcfgr.rs1pub type R = crate::R<EXTCFGRrs>;
3pub type W = crate::W<EXTCFGRrs>;
5#[cfg_attr(feature = "defmt", derive(defmt::Format))]
9#[derive(Clone, Copy, Debug, PartialEq, Eq)]
10#[repr(u8)]
11pub enum SHDHPRE {
12 Div3 = 1,
14 Div5 = 2,
16 Div6 = 5,
18 Div10 = 6,
20 Div32 = 7,
22 Div2 = 8,
24 Div4 = 9,
26 Div8 = 10,
28 Div16 = 11,
30 Div64 = 12,
32 Div128 = 13,
34 Div256 = 14,
36 Div512 = 15,
38 Div1 = 0,
40}
41impl From<SHDHPRE> for u8 {
42 #[inline(always)]
43 fn from(variant: SHDHPRE) -> Self {
44 variant as _
45 }
46}
47impl crate::FieldSpec for SHDHPRE {
48 type Ux = u8;
49}
50impl crate::IsEnum for SHDHPRE {}
51pub type SHDHPRE_R = crate::FieldReader<SHDHPRE>;
53impl SHDHPRE_R {
54 #[inline(always)]
56 pub const fn variant(&self) -> SHDHPRE {
57 match self.bits {
58 1 => SHDHPRE::Div3,
59 2 => SHDHPRE::Div5,
60 5 => SHDHPRE::Div6,
61 6 => SHDHPRE::Div10,
62 7 => SHDHPRE::Div32,
63 8 => SHDHPRE::Div2,
64 9 => SHDHPRE::Div4,
65 10 => SHDHPRE::Div8,
66 11 => SHDHPRE::Div16,
67 12 => SHDHPRE::Div64,
68 13 => SHDHPRE::Div128,
69 14 => SHDHPRE::Div256,
70 15 => SHDHPRE::Div512,
71 _ => SHDHPRE::Div1,
72 }
73 }
74 #[inline(always)]
76 pub fn is_div3(&self) -> bool {
77 *self == SHDHPRE::Div3
78 }
79 #[inline(always)]
81 pub fn is_div5(&self) -> bool {
82 *self == SHDHPRE::Div5
83 }
84 #[inline(always)]
86 pub fn is_div6(&self) -> bool {
87 *self == SHDHPRE::Div6
88 }
89 #[inline(always)]
91 pub fn is_div10(&self) -> bool {
92 *self == SHDHPRE::Div10
93 }
94 #[inline(always)]
96 pub fn is_div32(&self) -> bool {
97 *self == SHDHPRE::Div32
98 }
99 #[inline(always)]
101 pub fn is_div2(&self) -> bool {
102 *self == SHDHPRE::Div2
103 }
104 #[inline(always)]
106 pub fn is_div4(&self) -> bool {
107 *self == SHDHPRE::Div4
108 }
109 #[inline(always)]
111 pub fn is_div8(&self) -> bool {
112 *self == SHDHPRE::Div8
113 }
114 #[inline(always)]
116 pub fn is_div16(&self) -> bool {
117 *self == SHDHPRE::Div16
118 }
119 #[inline(always)]
121 pub fn is_div64(&self) -> bool {
122 *self == SHDHPRE::Div64
123 }
124 #[inline(always)]
126 pub fn is_div128(&self) -> bool {
127 *self == SHDHPRE::Div128
128 }
129 #[inline(always)]
131 pub fn is_div256(&self) -> bool {
132 *self == SHDHPRE::Div256
133 }
134 #[inline(always)]
136 pub fn is_div512(&self) -> bool {
137 *self == SHDHPRE::Div512
138 }
139 #[inline(always)]
141 pub fn is_div1(&self) -> bool {
142 matches!(self.variant(), SHDHPRE::Div1)
143 }
144}
145pub type SHDHPRE_W<'a, REG> = crate::FieldWriter<'a, REG, 4, SHDHPRE, crate::Safe>;
147impl<'a, REG> SHDHPRE_W<'a, REG>
148where
149 REG: crate::Writable + crate::RegisterSpec,
150 REG::Ux: From<u8>,
151{
152 #[inline(always)]
154 pub fn div3(self) -> &'a mut crate::W<REG> {
155 self.variant(SHDHPRE::Div3)
156 }
157 #[inline(always)]
159 pub fn div5(self) -> &'a mut crate::W<REG> {
160 self.variant(SHDHPRE::Div5)
161 }
162 #[inline(always)]
164 pub fn div6(self) -> &'a mut crate::W<REG> {
165 self.variant(SHDHPRE::Div6)
166 }
167 #[inline(always)]
169 pub fn div10(self) -> &'a mut crate::W<REG> {
170 self.variant(SHDHPRE::Div10)
171 }
172 #[inline(always)]
174 pub fn div32(self) -> &'a mut crate::W<REG> {
175 self.variant(SHDHPRE::Div32)
176 }
177 #[inline(always)]
179 pub fn div2(self) -> &'a mut crate::W<REG> {
180 self.variant(SHDHPRE::Div2)
181 }
182 #[inline(always)]
184 pub fn div4(self) -> &'a mut crate::W<REG> {
185 self.variant(SHDHPRE::Div4)
186 }
187 #[inline(always)]
189 pub fn div8(self) -> &'a mut crate::W<REG> {
190 self.variant(SHDHPRE::Div8)
191 }
192 #[inline(always)]
194 pub fn div16(self) -> &'a mut crate::W<REG> {
195 self.variant(SHDHPRE::Div16)
196 }
197 #[inline(always)]
199 pub fn div64(self) -> &'a mut crate::W<REG> {
200 self.variant(SHDHPRE::Div64)
201 }
202 #[inline(always)]
204 pub fn div128(self) -> &'a mut crate::W<REG> {
205 self.variant(SHDHPRE::Div128)
206 }
207 #[inline(always)]
209 pub fn div256(self) -> &'a mut crate::W<REG> {
210 self.variant(SHDHPRE::Div256)
211 }
212 #[inline(always)]
214 pub fn div512(self) -> &'a mut crate::W<REG> {
215 self.variant(SHDHPRE::Div512)
216 }
217 #[inline(always)]
219 pub fn div1(self) -> &'a mut crate::W<REG> {
220 self.variant(SHDHPRE::Div1)
221 }
222}
223pub type C2HPRE_R = crate::FieldReader;
225pub type C2HPRE_W<'a, REG> = crate::FieldWriter<'a, REG, 4>;
227#[cfg_attr(feature = "defmt", derive(defmt::Format))]
231#[derive(Clone, Copy, Debug, PartialEq, Eq)]
232pub enum SHDHPREF {
233 NotApplied = 0,
235 Applied = 1,
237}
238impl From<SHDHPREF> for bool {
239 #[inline(always)]
240 fn from(variant: SHDHPREF) -> Self {
241 variant as u8 != 0
242 }
243}
244pub type SHDHPREF_R = crate::BitReader<SHDHPREF>;
246impl SHDHPREF_R {
247 #[inline(always)]
249 pub const fn variant(&self) -> SHDHPREF {
250 match self.bits {
251 false => SHDHPREF::NotApplied,
252 true => SHDHPREF::Applied,
253 }
254 }
255 #[inline(always)]
257 pub fn is_not_applied(&self) -> bool {
258 *self == SHDHPREF::NotApplied
259 }
260 #[inline(always)]
262 pub fn is_applied(&self) -> bool {
263 *self == SHDHPREF::Applied
264 }
265}
266pub type C2HPREF_R = crate::BitReader;
268impl R {
269 #[inline(always)]
271 pub fn shdhpre(&self) -> SHDHPRE_R {
272 SHDHPRE_R::new((self.bits & 0x0f) as u8)
273 }
274 #[inline(always)]
276 pub fn c2hpre(&self) -> C2HPRE_R {
277 C2HPRE_R::new(((self.bits >> 4) & 0x0f) as u8)
278 }
279 #[inline(always)]
281 pub fn shdhpref(&self) -> SHDHPREF_R {
282 SHDHPREF_R::new(((self.bits >> 16) & 1) != 0)
283 }
284 #[inline(always)]
286 pub fn c2hpref(&self) -> C2HPREF_R {
287 C2HPREF_R::new(((self.bits >> 17) & 1) != 0)
288 }
289}
290impl core::fmt::Debug for R {
291 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
292 f.debug_struct("EXTCFGR")
293 .field("c2hpref", &self.c2hpref())
294 .field("shdhpref", &self.shdhpref())
295 .field("c2hpre", &self.c2hpre())
296 .field("shdhpre", &self.shdhpre())
297 .finish()
298 }
299}
300impl W {
301 #[inline(always)]
303 pub fn shdhpre(&mut self) -> SHDHPRE_W<EXTCFGRrs> {
304 SHDHPRE_W::new(self, 0)
305 }
306 #[inline(always)]
308 pub fn c2hpre(&mut self) -> C2HPRE_W<EXTCFGRrs> {
309 C2HPRE_W::new(self, 4)
310 }
311}
312pub struct EXTCFGRrs;
318impl crate::RegisterSpec for EXTCFGRrs {
319 type Ux = u32;
320}
321impl crate::Readable for EXTCFGRrs {}
323impl crate::Writable for EXTCFGRrs {
325 type Safety = crate::Unsafe;
326}
327impl crate::Resettable for EXTCFGRrs {
329 const RESET_VALUE: u32 = 0x0003_0000;
330}