py32f0/py32f002a/gpioa/
pupdr.rs1pub struct R(crate::R<PUPDR_SPEC>);
3impl core::ops::Deref for R {
4 type Target = crate::R<PUPDR_SPEC>;
5 #[inline(always)]
6 fn deref(&self) -> &Self::Target {
7 &self.0
8 }
9}
10impl From<crate::R<PUPDR_SPEC>> for R {
11 #[inline(always)]
12 fn from(reader: crate::R<PUPDR_SPEC>) -> Self {
13 R(reader)
14 }
15}
16pub struct W(crate::W<PUPDR_SPEC>);
18impl core::ops::Deref for W {
19 type Target = crate::W<PUPDR_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<PUPDR_SPEC>> for W {
32 #[inline(always)]
33 fn from(writer: crate::W<PUPDR_SPEC>) -> Self {
34 W(writer)
35 }
36}
37pub type PUPD0_R = crate::FieldReader<u8, PUPD0_A>;
39#[derive(Clone, Copy, Debug, PartialEq, Eq)]
43#[repr(u8)]
44pub enum PUPD0_A {
45 Floating = 0,
47 PullUp = 1,
49 PullDown = 2,
51}
52impl From<PUPD0_A> for u8 {
53 #[inline(always)]
54 fn from(variant: PUPD0_A) -> Self {
55 variant as _
56 }
57}
58impl PUPD0_R {
59 #[inline(always)]
61 pub fn variant(&self) -> Option<PUPD0_A> {
62 match self.bits {
63 0 => Some(PUPD0_A::Floating),
64 1 => Some(PUPD0_A::PullUp),
65 2 => Some(PUPD0_A::PullDown),
66 _ => None,
67 }
68 }
69 #[inline(always)]
71 pub fn is_floating(&self) -> bool {
72 *self == PUPD0_A::Floating
73 }
74 #[inline(always)]
76 pub fn is_pull_up(&self) -> bool {
77 *self == PUPD0_A::PullUp
78 }
79 #[inline(always)]
81 pub fn is_pull_down(&self) -> bool {
82 *self == PUPD0_A::PullDown
83 }
84}
85pub type PUPD0_W<'a, const O: u8> = crate::FieldWriter<'a, u32, PUPDR_SPEC, u8, PUPD0_A, 2, O>;
87impl<'a, const O: u8> PUPD0_W<'a, O> {
88 #[inline(always)]
90 pub fn floating(self) -> &'a mut W {
91 self.variant(PUPD0_A::Floating)
92 }
93 #[inline(always)]
95 pub fn pull_up(self) -> &'a mut W {
96 self.variant(PUPD0_A::PullUp)
97 }
98 #[inline(always)]
100 pub fn pull_down(self) -> &'a mut W {
101 self.variant(PUPD0_A::PullDown)
102 }
103}
104pub use PUPD0_R as PUPD1_R;
106pub use PUPD0_R as PUPD2_R;
108pub use PUPD0_R as PUPD3_R;
110pub use PUPD0_R as PUPD4_R;
112pub use PUPD0_R as PUPD5_R;
114pub use PUPD0_R as PUPD6_R;
116pub use PUPD0_R as PUPD7_R;
118pub use PUPD0_R as PUPD8_R;
120pub use PUPD0_R as PUPD9_R;
122pub use PUPD0_R as PUPD10_R;
124pub use PUPD0_R as PUPD11_R;
126pub use PUPD0_R as PUPD12_R;
128pub use PUPD0_R as PUPD13_R;
130pub use PUPD0_R as PUPD14_R;
132pub use PUPD0_R as PUPD15_R;
134pub use PUPD0_W as PUPD1_W;
136pub use PUPD0_W as PUPD2_W;
138pub use PUPD0_W as PUPD3_W;
140pub use PUPD0_W as PUPD4_W;
142pub use PUPD0_W as PUPD5_W;
144pub use PUPD0_W as PUPD6_W;
146pub use PUPD0_W as PUPD7_W;
148pub use PUPD0_W as PUPD8_W;
150pub use PUPD0_W as PUPD9_W;
152pub use PUPD0_W as PUPD10_W;
154pub use PUPD0_W as PUPD11_W;
156pub use PUPD0_W as PUPD12_W;
158pub use PUPD0_W as PUPD13_W;
160pub use PUPD0_W as PUPD14_W;
162pub use PUPD0_W as PUPD15_W;
164impl R {
165 #[inline(always)]
167 pub fn pupd0(&self) -> PUPD0_R {
168 PUPD0_R::new((self.bits & 3) as u8)
169 }
170 #[inline(always)]
172 pub fn pupd1(&self) -> PUPD1_R {
173 PUPD1_R::new(((self.bits >> 2) & 3) as u8)
174 }
175 #[inline(always)]
177 pub fn pupd2(&self) -> PUPD2_R {
178 PUPD2_R::new(((self.bits >> 4) & 3) as u8)
179 }
180 #[inline(always)]
182 pub fn pupd3(&self) -> PUPD3_R {
183 PUPD3_R::new(((self.bits >> 6) & 3) as u8)
184 }
185 #[inline(always)]
187 pub fn pupd4(&self) -> PUPD4_R {
188 PUPD4_R::new(((self.bits >> 8) & 3) as u8)
189 }
190 #[inline(always)]
192 pub fn pupd5(&self) -> PUPD5_R {
193 PUPD5_R::new(((self.bits >> 10) & 3) as u8)
194 }
195 #[inline(always)]
197 pub fn pupd6(&self) -> PUPD6_R {
198 PUPD6_R::new(((self.bits >> 12) & 3) as u8)
199 }
200 #[inline(always)]
202 pub fn pupd7(&self) -> PUPD7_R {
203 PUPD7_R::new(((self.bits >> 14) & 3) as u8)
204 }
205 #[inline(always)]
207 pub fn pupd8(&self) -> PUPD8_R {
208 PUPD8_R::new(((self.bits >> 16) & 3) as u8)
209 }
210 #[inline(always)]
212 pub fn pupd9(&self) -> PUPD9_R {
213 PUPD9_R::new(((self.bits >> 18) & 3) as u8)
214 }
215 #[inline(always)]
217 pub fn pupd10(&self) -> PUPD10_R {
218 PUPD10_R::new(((self.bits >> 20) & 3) as u8)
219 }
220 #[inline(always)]
222 pub fn pupd11(&self) -> PUPD11_R {
223 PUPD11_R::new(((self.bits >> 22) & 3) as u8)
224 }
225 #[inline(always)]
227 pub fn pupd12(&self) -> PUPD12_R {
228 PUPD12_R::new(((self.bits >> 24) & 3) as u8)
229 }
230 #[inline(always)]
232 pub fn pupd13(&self) -> PUPD13_R {
233 PUPD13_R::new(((self.bits >> 26) & 3) as u8)
234 }
235 #[inline(always)]
237 pub fn pupd14(&self) -> PUPD14_R {
238 PUPD14_R::new(((self.bits >> 28) & 3) as u8)
239 }
240 #[inline(always)]
242 pub fn pupd15(&self) -> PUPD15_R {
243 PUPD15_R::new(((self.bits >> 30) & 3) as u8)
244 }
245}
246impl W {
247 #[inline(always)]
249 #[must_use]
250 pub fn pupd0(&mut self) -> PUPD0_W<0> {
251 PUPD0_W::new(self)
252 }
253 #[inline(always)]
255 #[must_use]
256 pub fn pupd1(&mut self) -> PUPD1_W<2> {
257 PUPD1_W::new(self)
258 }
259 #[inline(always)]
261 #[must_use]
262 pub fn pupd2(&mut self) -> PUPD2_W<4> {
263 PUPD2_W::new(self)
264 }
265 #[inline(always)]
267 #[must_use]
268 pub fn pupd3(&mut self) -> PUPD3_W<6> {
269 PUPD3_W::new(self)
270 }
271 #[inline(always)]
273 #[must_use]
274 pub fn pupd4(&mut self) -> PUPD4_W<8> {
275 PUPD4_W::new(self)
276 }
277 #[inline(always)]
279 #[must_use]
280 pub fn pupd5(&mut self) -> PUPD5_W<10> {
281 PUPD5_W::new(self)
282 }
283 #[inline(always)]
285 #[must_use]
286 pub fn pupd6(&mut self) -> PUPD6_W<12> {
287 PUPD6_W::new(self)
288 }
289 #[inline(always)]
291 #[must_use]
292 pub fn pupd7(&mut self) -> PUPD7_W<14> {
293 PUPD7_W::new(self)
294 }
295 #[inline(always)]
297 #[must_use]
298 pub fn pupd8(&mut self) -> PUPD8_W<16> {
299 PUPD8_W::new(self)
300 }
301 #[inline(always)]
303 #[must_use]
304 pub fn pupd9(&mut self) -> PUPD9_W<18> {
305 PUPD9_W::new(self)
306 }
307 #[inline(always)]
309 #[must_use]
310 pub fn pupd10(&mut self) -> PUPD10_W<20> {
311 PUPD10_W::new(self)
312 }
313 #[inline(always)]
315 #[must_use]
316 pub fn pupd11(&mut self) -> PUPD11_W<22> {
317 PUPD11_W::new(self)
318 }
319 #[inline(always)]
321 #[must_use]
322 pub fn pupd12(&mut self) -> PUPD12_W<24> {
323 PUPD12_W::new(self)
324 }
325 #[inline(always)]
327 #[must_use]
328 pub fn pupd13(&mut self) -> PUPD13_W<26> {
329 PUPD13_W::new(self)
330 }
331 #[inline(always)]
333 #[must_use]
334 pub fn pupd14(&mut self) -> PUPD14_W<28> {
335 PUPD14_W::new(self)
336 }
337 #[inline(always)]
339 #[must_use]
340 pub fn pupd15(&mut self) -> PUPD15_W<30> {
341 PUPD15_W::new(self)
342 }
343 #[inline(always)]
345 pub unsafe fn bits(&mut self, bits: u32) -> &mut Self {
346 self.0.bits(bits);
347 self
348 }
349}
350pub struct PUPDR_SPEC;
356impl crate::RegisterSpec for PUPDR_SPEC {
357 type Ux = u32;
358}
359impl crate::Readable for PUPDR_SPEC {
361 type Reader = R;
362}
363impl crate::Writable for PUPDR_SPEC {
365 type Writer = W;
366 const ZERO_TO_MODIFY_FIELDS_BITMAP: Self::Ux = 0;
367 const ONE_TO_MODIFY_FIELDS_BITMAP: Self::Ux = 0;
368}
369impl crate::Resettable for PUPDR_SPEC {
371 const RESET_VALUE: Self::Ux = 0x2400_0000;
372}