stm32f1/stm32f103/gpioa/
crh.rs1pub type R = crate::R<CRHrs>;
3pub type W = crate::W<CRHrs>;
5pub use super::crl::CNF_R;
7pub use super::crl::CNF_W;
9pub use super::crl::CONFIG;
11pub use super::crl::MODE;
13pub use super::crl::MODE_R;
15pub use super::crl::MODE_W;
17impl R {
18 #[inline(always)]
22 pub fn mode(&self, n: u8) -> MODE_R {
23 #[allow(clippy::no_effect)]
24 [(); 8][n as usize];
25 MODE_R::new(((self.bits >> (n * 4)) & 3) as u8)
26 }
27 #[inline(always)]
30 pub fn mode_iter(&self) -> impl Iterator<Item = MODE_R> + '_ {
31 (0..8).map(move |n| MODE_R::new(((self.bits >> (n * 4)) & 3) as u8))
32 }
33 #[inline(always)]
35 pub fn mode8(&self) -> MODE_R {
36 MODE_R::new((self.bits & 3) as u8)
37 }
38 #[inline(always)]
40 pub fn mode9(&self) -> MODE_R {
41 MODE_R::new(((self.bits >> 4) & 3) as u8)
42 }
43 #[inline(always)]
45 pub fn mode10(&self) -> MODE_R {
46 MODE_R::new(((self.bits >> 8) & 3) as u8)
47 }
48 #[inline(always)]
50 pub fn mode11(&self) -> MODE_R {
51 MODE_R::new(((self.bits >> 12) & 3) as u8)
52 }
53 #[inline(always)]
55 pub fn mode12(&self) -> MODE_R {
56 MODE_R::new(((self.bits >> 16) & 3) as u8)
57 }
58 #[inline(always)]
60 pub fn mode13(&self) -> MODE_R {
61 MODE_R::new(((self.bits >> 20) & 3) as u8)
62 }
63 #[inline(always)]
65 pub fn mode14(&self) -> MODE_R {
66 MODE_R::new(((self.bits >> 24) & 3) as u8)
67 }
68 #[inline(always)]
70 pub fn mode15(&self) -> MODE_R {
71 MODE_R::new(((self.bits >> 28) & 3) as u8)
72 }
73 #[inline(always)]
77 pub fn cnf(&self, n: u8) -> CNF_R {
78 #[allow(clippy::no_effect)]
79 [(); 8][n as usize];
80 CNF_R::new(((self.bits >> (n * 4 + 2)) & 3) as u8)
81 }
82 #[inline(always)]
85 pub fn cnf_iter(&self) -> impl Iterator<Item = CNF_R> + '_ {
86 (0..8).map(move |n| CNF_R::new(((self.bits >> (n * 4 + 2)) & 3) as u8))
87 }
88 #[inline(always)]
90 pub fn cnf8(&self) -> CNF_R {
91 CNF_R::new(((self.bits >> 2) & 3) as u8)
92 }
93 #[inline(always)]
95 pub fn cnf9(&self) -> CNF_R {
96 CNF_R::new(((self.bits >> 6) & 3) as u8)
97 }
98 #[inline(always)]
100 pub fn cnf10(&self) -> CNF_R {
101 CNF_R::new(((self.bits >> 10) & 3) as u8)
102 }
103 #[inline(always)]
105 pub fn cnf11(&self) -> CNF_R {
106 CNF_R::new(((self.bits >> 14) & 3) as u8)
107 }
108 #[inline(always)]
110 pub fn cnf12(&self) -> CNF_R {
111 CNF_R::new(((self.bits >> 18) & 3) as u8)
112 }
113 #[inline(always)]
115 pub fn cnf13(&self) -> CNF_R {
116 CNF_R::new(((self.bits >> 22) & 3) as u8)
117 }
118 #[inline(always)]
120 pub fn cnf14(&self) -> CNF_R {
121 CNF_R::new(((self.bits >> 26) & 3) as u8)
122 }
123 #[inline(always)]
125 pub fn cnf15(&self) -> CNF_R {
126 CNF_R::new(((self.bits >> 30) & 3) as u8)
127 }
128}
129impl core::fmt::Debug for R {
130 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
131 f.debug_struct("CRH")
132 .field("mode8", &self.mode8())
133 .field("mode9", &self.mode9())
134 .field("mode10", &self.mode10())
135 .field("mode11", &self.mode11())
136 .field("mode12", &self.mode12())
137 .field("mode13", &self.mode13())
138 .field("mode14", &self.mode14())
139 .field("mode15", &self.mode15())
140 .field("cnf8", &self.cnf8())
141 .field("cnf9", &self.cnf9())
142 .field("cnf10", &self.cnf10())
143 .field("cnf11", &self.cnf11())
144 .field("cnf12", &self.cnf12())
145 .field("cnf13", &self.cnf13())
146 .field("cnf14", &self.cnf14())
147 .field("cnf15", &self.cnf15())
148 .finish()
149 }
150}
151impl W {
152 #[inline(always)]
156 pub fn mode(&mut self, n: u8) -> MODE_W<CRHrs> {
157 #[allow(clippy::no_effect)]
158 [(); 8][n as usize];
159 MODE_W::new(self, n * 4)
160 }
161 #[inline(always)]
163 pub fn mode8(&mut self) -> MODE_W<CRHrs> {
164 MODE_W::new(self, 0)
165 }
166 #[inline(always)]
168 pub fn mode9(&mut self) -> MODE_W<CRHrs> {
169 MODE_W::new(self, 4)
170 }
171 #[inline(always)]
173 pub fn mode10(&mut self) -> MODE_W<CRHrs> {
174 MODE_W::new(self, 8)
175 }
176 #[inline(always)]
178 pub fn mode11(&mut self) -> MODE_W<CRHrs> {
179 MODE_W::new(self, 12)
180 }
181 #[inline(always)]
183 pub fn mode12(&mut self) -> MODE_W<CRHrs> {
184 MODE_W::new(self, 16)
185 }
186 #[inline(always)]
188 pub fn mode13(&mut self) -> MODE_W<CRHrs> {
189 MODE_W::new(self, 20)
190 }
191 #[inline(always)]
193 pub fn mode14(&mut self) -> MODE_W<CRHrs> {
194 MODE_W::new(self, 24)
195 }
196 #[inline(always)]
198 pub fn mode15(&mut self) -> MODE_W<CRHrs> {
199 MODE_W::new(self, 28)
200 }
201 #[inline(always)]
205 pub fn cnf(&mut self, n: u8) -> CNF_W<CRHrs> {
206 #[allow(clippy::no_effect)]
207 [(); 8][n as usize];
208 CNF_W::new(self, n * 4 + 2)
209 }
210 #[inline(always)]
212 pub fn cnf8(&mut self) -> CNF_W<CRHrs> {
213 CNF_W::new(self, 2)
214 }
215 #[inline(always)]
217 pub fn cnf9(&mut self) -> CNF_W<CRHrs> {
218 CNF_W::new(self, 6)
219 }
220 #[inline(always)]
222 pub fn cnf10(&mut self) -> CNF_W<CRHrs> {
223 CNF_W::new(self, 10)
224 }
225 #[inline(always)]
227 pub fn cnf11(&mut self) -> CNF_W<CRHrs> {
228 CNF_W::new(self, 14)
229 }
230 #[inline(always)]
232 pub fn cnf12(&mut self) -> CNF_W<CRHrs> {
233 CNF_W::new(self, 18)
234 }
235 #[inline(always)]
237 pub fn cnf13(&mut self) -> CNF_W<CRHrs> {
238 CNF_W::new(self, 22)
239 }
240 #[inline(always)]
242 pub fn cnf14(&mut self) -> CNF_W<CRHrs> {
243 CNF_W::new(self, 26)
244 }
245 #[inline(always)]
247 pub fn cnf15(&mut self) -> CNF_W<CRHrs> {
248 CNF_W::new(self, 30)
249 }
250}
251pub struct CRHrs;
257impl crate::RegisterSpec for CRHrs {
258 type Ux = u32;
259}
260impl crate::Readable for CRHrs {}
262impl crate::Writable for CRHrs {
264 type Safety = crate::Unsafe;
265}
266impl crate::Resettable for CRHrs {
268 const RESET_VALUE: u32 = 0x4444_4444;
269}