1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
///Register `SMPR2` reader
pub type R = crate::R<SMPR2rs>;
///Register `SMPR2` writer
pub type W = crate::W<SMPR2rs>;
///Channel %s sample time selection
pub use super::smpr1::SMP0;
///Field `SMP(10-19)` reader - Channel %s sample time selection
pub use super::smpr1::SMP_R;
///Field `SMP(10-19)` writer - Channel %s sample time selection
pub use super::smpr1::SMP_W;
impl R {
///Channel (10-19) sample time selection
///
///<div class="warning">`n` is number of field in register. `n == 0` corresponds to `SMP10` field.</div>
#[inline(always)]
pub fn smp(&self, n: u8) -> SMP_R {
#[allow(clippy::no_effect)] [(); 10][n as usize];
SMP_R::new(((self.bits >> (n * 3)) & 7) as u8)
}
///Iterator for array of:
///Channel (10-19) sample time selection
#[inline(always)]
pub fn smp_iter(&self) -> impl Iterator<Item = SMP_R> + '_ {
(0..10).map(move |n| SMP_R::new(((self.bits >> (n * 3)) & 7) as u8))
}
///Bits 0:2 - Channel 10 sample time selection
#[inline(always)]
pub fn smp10(&self) -> SMP_R {
SMP_R::new((self.bits & 7) as u8)
}
///Bits 3:5 - Channel 11 sample time selection
#[inline(always)]
pub fn smp11(&self) -> SMP_R {
SMP_R::new(((self.bits >> 3) & 7) as u8)
}
///Bits 6:8 - Channel 12 sample time selection
#[inline(always)]
pub fn smp12(&self) -> SMP_R {
SMP_R::new(((self.bits >> 6) & 7) as u8)
}
///Bits 9:11 - Channel 13 sample time selection
#[inline(always)]
pub fn smp13(&self) -> SMP_R {
SMP_R::new(((self.bits >> 9) & 7) as u8)
}
///Bits 12:14 - Channel 14 sample time selection
#[inline(always)]
pub fn smp14(&self) -> SMP_R {
SMP_R::new(((self.bits >> 12) & 7) as u8)
}
///Bits 15:17 - Channel 15 sample time selection
#[inline(always)]
pub fn smp15(&self) -> SMP_R {
SMP_R::new(((self.bits >> 15) & 7) as u8)
}
///Bits 18:20 - Channel 16 sample time selection
#[inline(always)]
pub fn smp16(&self) -> SMP_R {
SMP_R::new(((self.bits >> 18) & 7) as u8)
}
///Bits 21:23 - Channel 17 sample time selection
#[inline(always)]
pub fn smp17(&self) -> SMP_R {
SMP_R::new(((self.bits >> 21) & 7) as u8)
}
///Bits 24:26 - Channel 18 sample time selection
#[inline(always)]
pub fn smp18(&self) -> SMP_R {
SMP_R::new(((self.bits >> 24) & 7) as u8)
}
///Bits 27:29 - Channel 19 sample time selection
#[inline(always)]
pub fn smp19(&self) -> SMP_R {
SMP_R::new(((self.bits >> 27) & 7) as u8)
}
}
impl core::fmt::Debug for R {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("SMPR2")
.field("smp10", &self.smp10())
.field("smp11", &self.smp11())
.field("smp12", &self.smp12())
.field("smp13", &self.smp13())
.field("smp14", &self.smp14())
.field("smp15", &self.smp15())
.field("smp16", &self.smp16())
.field("smp17", &self.smp17())
.field("smp18", &self.smp18())
.field("smp19", &self.smp19())
.finish()
}
}
impl W {
///Channel (10-19) sample time selection
///
///<div class="warning">`n` is number of field in register. `n == 0` corresponds to `SMP10` field.</div>
#[inline(always)]
pub fn smp(&mut self, n: u8) -> SMP_W<SMPR2rs> {
#[allow(clippy::no_effect)] [(); 10][n as usize];
SMP_W::new(self, n * 3)
}
///Bits 0:2 - Channel 10 sample time selection
#[inline(always)]
pub fn smp10(&mut self) -> SMP_W<SMPR2rs> {
SMP_W::new(self, 0)
}
///Bits 3:5 - Channel 11 sample time selection
#[inline(always)]
pub fn smp11(&mut self) -> SMP_W<SMPR2rs> {
SMP_W::new(self, 3)
}
///Bits 6:8 - Channel 12 sample time selection
#[inline(always)]
pub fn smp12(&mut self) -> SMP_W<SMPR2rs> {
SMP_W::new(self, 6)
}
///Bits 9:11 - Channel 13 sample time selection
#[inline(always)]
pub fn smp13(&mut self) -> SMP_W<SMPR2rs> {
SMP_W::new(self, 9)
}
///Bits 12:14 - Channel 14 sample time selection
#[inline(always)]
pub fn smp14(&mut self) -> SMP_W<SMPR2rs> {
SMP_W::new(self, 12)
}
///Bits 15:17 - Channel 15 sample time selection
#[inline(always)]
pub fn smp15(&mut self) -> SMP_W<SMPR2rs> {
SMP_W::new(self, 15)
}
///Bits 18:20 - Channel 16 sample time selection
#[inline(always)]
pub fn smp16(&mut self) -> SMP_W<SMPR2rs> {
SMP_W::new(self, 18)
}
///Bits 21:23 - Channel 17 sample time selection
#[inline(always)]
pub fn smp17(&mut self) -> SMP_W<SMPR2rs> {
SMP_W::new(self, 21)
}
///Bits 24:26 - Channel 18 sample time selection
#[inline(always)]
pub fn smp18(&mut self) -> SMP_W<SMPR2rs> {
SMP_W::new(self, 24)
}
///Bits 27:29 - Channel 19 sample time selection
#[inline(always)]
pub fn smp19(&mut self) -> SMP_W<SMPR2rs> {
SMP_W::new(self, 27)
}
}
/**ADC sampling time register 2
You can [`read`](crate::Reg::read) this register and get [`smpr2::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`smpr2::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).*/
pub struct SMPR2rs;
impl crate::RegisterSpec for SMPR2rs {
type Ux = u32;
}
///`read()` method returns [`smpr2::R`](R) reader structure
impl crate::Readable for SMPR2rs {}
///`write(|w| ..)` method takes [`smpr2::W`](W) writer structure
impl crate::Writable for SMPR2rs {
type Safety = crate::Unsafe;
}
///`reset()` method sets SMPR2 to value 0
impl crate::Resettable for SMPR2rs {}