stm32f1_staging/stm32f102/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)] [(); 8][n as usize];
24 MODE_R::new(((self.bits >> (n * 4)) & 3) as u8)
25 }
26 #[inline(always)]
29 pub fn mode_iter(&self) -> impl Iterator<Item = MODE_R> + '_ {
30 (0..8).map(move |n| MODE_R::new(((self.bits >> (n * 4)) & 3) as u8))
31 }
32 #[inline(always)]
34 pub fn mode8(&self) -> MODE_R {
35 MODE_R::new((self.bits & 3) as u8)
36 }
37 #[inline(always)]
39 pub fn mode9(&self) -> MODE_R {
40 MODE_R::new(((self.bits >> 4) & 3) as u8)
41 }
42 #[inline(always)]
44 pub fn mode10(&self) -> MODE_R {
45 MODE_R::new(((self.bits >> 8) & 3) as u8)
46 }
47 #[inline(always)]
49 pub fn mode11(&self) -> MODE_R {
50 MODE_R::new(((self.bits >> 12) & 3) as u8)
51 }
52 #[inline(always)]
54 pub fn mode12(&self) -> MODE_R {
55 MODE_R::new(((self.bits >> 16) & 3) as u8)
56 }
57 #[inline(always)]
59 pub fn mode13(&self) -> MODE_R {
60 MODE_R::new(((self.bits >> 20) & 3) as u8)
61 }
62 #[inline(always)]
64 pub fn mode14(&self) -> MODE_R {
65 MODE_R::new(((self.bits >> 24) & 3) as u8)
66 }
67 #[inline(always)]
69 pub fn mode15(&self) -> MODE_R {
70 MODE_R::new(((self.bits >> 28) & 3) as u8)
71 }
72 #[inline(always)]
76 pub fn cnf(&self, n: u8) -> CNF_R {
77 #[allow(clippy::no_effect)] [(); 8][n as usize];
78 CNF_R::new(((self.bits >> (n * 4 + 2)) & 3) as u8)
79 }
80 #[inline(always)]
83 pub fn cnf_iter(&self) -> impl Iterator<Item = CNF_R> + '_ {
84 (0..8).map(move |n| CNF_R::new(((self.bits >> (n * 4 + 2)) & 3) as u8))
85 }
86 #[inline(always)]
88 pub fn cnf8(&self) -> CNF_R {
89 CNF_R::new(((self.bits >> 2) & 3) as u8)
90 }
91 #[inline(always)]
93 pub fn cnf9(&self) -> CNF_R {
94 CNF_R::new(((self.bits >> 6) & 3) as u8)
95 }
96 #[inline(always)]
98 pub fn cnf10(&self) -> CNF_R {
99 CNF_R::new(((self.bits >> 10) & 3) as u8)
100 }
101 #[inline(always)]
103 pub fn cnf11(&self) -> CNF_R {
104 CNF_R::new(((self.bits >> 14) & 3) as u8)
105 }
106 #[inline(always)]
108 pub fn cnf12(&self) -> CNF_R {
109 CNF_R::new(((self.bits >> 18) & 3) as u8)
110 }
111 #[inline(always)]
113 pub fn cnf13(&self) -> CNF_R {
114 CNF_R::new(((self.bits >> 22) & 3) as u8)
115 }
116 #[inline(always)]
118 pub fn cnf14(&self) -> CNF_R {
119 CNF_R::new(((self.bits >> 26) & 3) as u8)
120 }
121 #[inline(always)]
123 pub fn cnf15(&self) -> CNF_R {
124 CNF_R::new(((self.bits >> 30) & 3) as u8)
125 }
126}
127impl core::fmt::Debug for R {
128 fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
129 f.debug_struct("CRH")
130 .field("mode8", &self.mode8())
131 .field("mode9", &self.mode9())
132 .field("mode10", &self.mode10())
133 .field("mode11", &self.mode11())
134 .field("mode12", &self.mode12())
135 .field("mode13", &self.mode13())
136 .field("mode14", &self.mode14())
137 .field("mode15", &self.mode15())
138 .field("cnf8", &self.cnf8())
139 .field("cnf9", &self.cnf9())
140 .field("cnf10", &self.cnf10())
141 .field("cnf11", &self.cnf11())
142 .field("cnf12", &self.cnf12())
143 .field("cnf13", &self.cnf13())
144 .field("cnf14", &self.cnf14())
145 .field("cnf15", &self.cnf15())
146 .finish()
147 }
148}
149impl W {
150 #[inline(always)]
154 pub fn mode(&mut self, n: u8) -> MODE_W<CRHrs> {
155 #[allow(clippy::no_effect)] [(); 8][n as usize];
156 MODE_W::new(self, n * 4)
157 }
158 #[inline(always)]
160 pub fn mode8(&mut self) -> MODE_W<CRHrs> {
161 MODE_W::new(self, 0)
162 }
163 #[inline(always)]
165 pub fn mode9(&mut self) -> MODE_W<CRHrs> {
166 MODE_W::new(self, 4)
167 }
168 #[inline(always)]
170 pub fn mode10(&mut self) -> MODE_W<CRHrs> {
171 MODE_W::new(self, 8)
172 }
173 #[inline(always)]
175 pub fn mode11(&mut self) -> MODE_W<CRHrs> {
176 MODE_W::new(self, 12)
177 }
178 #[inline(always)]
180 pub fn mode12(&mut self) -> MODE_W<CRHrs> {
181 MODE_W::new(self, 16)
182 }
183 #[inline(always)]
185 pub fn mode13(&mut self) -> MODE_W<CRHrs> {
186 MODE_W::new(self, 20)
187 }
188 #[inline(always)]
190 pub fn mode14(&mut self) -> MODE_W<CRHrs> {
191 MODE_W::new(self, 24)
192 }
193 #[inline(always)]
195 pub fn mode15(&mut self) -> MODE_W<CRHrs> {
196 MODE_W::new(self, 28)
197 }
198 #[inline(always)]
202 pub fn cnf(&mut self, n: u8) -> CNF_W<CRHrs> {
203 #[allow(clippy::no_effect)] [(); 8][n as usize];
204 CNF_W::new(self, n * 4 + 2)
205 }
206 #[inline(always)]
208 pub fn cnf8(&mut self) -> CNF_W<CRHrs> {
209 CNF_W::new(self, 2)
210 }
211 #[inline(always)]
213 pub fn cnf9(&mut self) -> CNF_W<CRHrs> {
214 CNF_W::new(self, 6)
215 }
216 #[inline(always)]
218 pub fn cnf10(&mut self) -> CNF_W<CRHrs> {
219 CNF_W::new(self, 10)
220 }
221 #[inline(always)]
223 pub fn cnf11(&mut self) -> CNF_W<CRHrs> {
224 CNF_W::new(self, 14)
225 }
226 #[inline(always)]
228 pub fn cnf12(&mut self) -> CNF_W<CRHrs> {
229 CNF_W::new(self, 18)
230 }
231 #[inline(always)]
233 pub fn cnf13(&mut self) -> CNF_W<CRHrs> {
234 CNF_W::new(self, 22)
235 }
236 #[inline(always)]
238 pub fn cnf14(&mut self) -> CNF_W<CRHrs> {
239 CNF_W::new(self, 26)
240 }
241 #[inline(always)]
243 pub fn cnf15(&mut self) -> CNF_W<CRHrs> {
244 CNF_W::new(self, 30)
245 }
246}
247pub struct CRHrs;
253impl crate::RegisterSpec for CRHrs {
254 type Ux = u32;
255}
256impl crate::Readable for CRHrs {}
258impl crate::Writable for CRHrs {
260 type Safety = crate::Unsafe;
261}
262impl crate::Resettable for CRHrs {
264 const RESET_VALUE: u32 = 0x4444_4444;
265}