atsamd21j/adc/
avgctrl.rs
1#[doc = "Register `AVGCTRL` reader"]
2pub type R = crate::R<AvgctrlSpec>;
3#[doc = "Register `AVGCTRL` writer"]
4pub type W = crate::W<AvgctrlSpec>;
5#[doc = "Number of Samples to be Collected\n\nValue on reset: 0"]
6#[derive(Clone, Copy, Debug, PartialEq, Eq)]
7#[repr(u8)]
8pub enum Samplenumselect {
9 #[doc = "0: 1 sample"]
10 _1 = 0,
11 #[doc = "1: 2 samples"]
12 _2 = 1,
13 #[doc = "2: 4 samples"]
14 _4 = 2,
15 #[doc = "3: 8 samples"]
16 _8 = 3,
17 #[doc = "4: 16 samples"]
18 _16 = 4,
19 #[doc = "5: 32 samples"]
20 _32 = 5,
21 #[doc = "6: 64 samples"]
22 _64 = 6,
23 #[doc = "7: 128 samples"]
24 _128 = 7,
25 #[doc = "8: 256 samples"]
26 _256 = 8,
27 #[doc = "9: 512 samples"]
28 _512 = 9,
29 #[doc = "10: 1024 samples"]
30 _1024 = 10,
31}
32impl From<Samplenumselect> for u8 {
33 #[inline(always)]
34 fn from(variant: Samplenumselect) -> Self {
35 variant as _
36 }
37}
38impl crate::FieldSpec for Samplenumselect {
39 type Ux = u8;
40}
41impl crate::IsEnum for Samplenumselect {}
42#[doc = "Field `SAMPLENUM` reader - Number of Samples to be Collected"]
43pub type SamplenumR = crate::FieldReader<Samplenumselect>;
44impl SamplenumR {
45 #[doc = "Get enumerated values variant"]
46 #[inline(always)]
47 pub const fn variant(&self) -> Option<Samplenumselect> {
48 match self.bits {
49 0 => Some(Samplenumselect::_1),
50 1 => Some(Samplenumselect::_2),
51 2 => Some(Samplenumselect::_4),
52 3 => Some(Samplenumselect::_8),
53 4 => Some(Samplenumselect::_16),
54 5 => Some(Samplenumselect::_32),
55 6 => Some(Samplenumselect::_64),
56 7 => Some(Samplenumselect::_128),
57 8 => Some(Samplenumselect::_256),
58 9 => Some(Samplenumselect::_512),
59 10 => Some(Samplenumselect::_1024),
60 _ => None,
61 }
62 }
63 #[doc = "1 sample"]
64 #[inline(always)]
65 pub fn is_1(&self) -> bool {
66 *self == Samplenumselect::_1
67 }
68 #[doc = "2 samples"]
69 #[inline(always)]
70 pub fn is_2(&self) -> bool {
71 *self == Samplenumselect::_2
72 }
73 #[doc = "4 samples"]
74 #[inline(always)]
75 pub fn is_4(&self) -> bool {
76 *self == Samplenumselect::_4
77 }
78 #[doc = "8 samples"]
79 #[inline(always)]
80 pub fn is_8(&self) -> bool {
81 *self == Samplenumselect::_8
82 }
83 #[doc = "16 samples"]
84 #[inline(always)]
85 pub fn is_16(&self) -> bool {
86 *self == Samplenumselect::_16
87 }
88 #[doc = "32 samples"]
89 #[inline(always)]
90 pub fn is_32(&self) -> bool {
91 *self == Samplenumselect::_32
92 }
93 #[doc = "64 samples"]
94 #[inline(always)]
95 pub fn is_64(&self) -> bool {
96 *self == Samplenumselect::_64
97 }
98 #[doc = "128 samples"]
99 #[inline(always)]
100 pub fn is_128(&self) -> bool {
101 *self == Samplenumselect::_128
102 }
103 #[doc = "256 samples"]
104 #[inline(always)]
105 pub fn is_256(&self) -> bool {
106 *self == Samplenumselect::_256
107 }
108 #[doc = "512 samples"]
109 #[inline(always)]
110 pub fn is_512(&self) -> bool {
111 *self == Samplenumselect::_512
112 }
113 #[doc = "1024 samples"]
114 #[inline(always)]
115 pub fn is_1024(&self) -> bool {
116 *self == Samplenumselect::_1024
117 }
118}
119#[doc = "Field `SAMPLENUM` writer - Number of Samples to be Collected"]
120pub type SamplenumW<'a, REG> = crate::FieldWriter<'a, REG, 4, Samplenumselect>;
121impl<'a, REG> SamplenumW<'a, REG>
122where
123 REG: crate::Writable + crate::RegisterSpec,
124 REG::Ux: From<u8>,
125{
126 #[doc = "1 sample"]
127 #[inline(always)]
128 pub fn _1(self) -> &'a mut crate::W<REG> {
129 self.variant(Samplenumselect::_1)
130 }
131 #[doc = "2 samples"]
132 #[inline(always)]
133 pub fn _2(self) -> &'a mut crate::W<REG> {
134 self.variant(Samplenumselect::_2)
135 }
136 #[doc = "4 samples"]
137 #[inline(always)]
138 pub fn _4(self) -> &'a mut crate::W<REG> {
139 self.variant(Samplenumselect::_4)
140 }
141 #[doc = "8 samples"]
142 #[inline(always)]
143 pub fn _8(self) -> &'a mut crate::W<REG> {
144 self.variant(Samplenumselect::_8)
145 }
146 #[doc = "16 samples"]
147 #[inline(always)]
148 pub fn _16(self) -> &'a mut crate::W<REG> {
149 self.variant(Samplenumselect::_16)
150 }
151 #[doc = "32 samples"]
152 #[inline(always)]
153 pub fn _32(self) -> &'a mut crate::W<REG> {
154 self.variant(Samplenumselect::_32)
155 }
156 #[doc = "64 samples"]
157 #[inline(always)]
158 pub fn _64(self) -> &'a mut crate::W<REG> {
159 self.variant(Samplenumselect::_64)
160 }
161 #[doc = "128 samples"]
162 #[inline(always)]
163 pub fn _128(self) -> &'a mut crate::W<REG> {
164 self.variant(Samplenumselect::_128)
165 }
166 #[doc = "256 samples"]
167 #[inline(always)]
168 pub fn _256(self) -> &'a mut crate::W<REG> {
169 self.variant(Samplenumselect::_256)
170 }
171 #[doc = "512 samples"]
172 #[inline(always)]
173 pub fn _512(self) -> &'a mut crate::W<REG> {
174 self.variant(Samplenumselect::_512)
175 }
176 #[doc = "1024 samples"]
177 #[inline(always)]
178 pub fn _1024(self) -> &'a mut crate::W<REG> {
179 self.variant(Samplenumselect::_1024)
180 }
181}
182#[doc = "Field `ADJRES` reader - Adjusting Result / Division Coefficient"]
183pub type AdjresR = crate::FieldReader;
184#[doc = "Field `ADJRES` writer - Adjusting Result / Division Coefficient"]
185pub type AdjresW<'a, REG> = crate::FieldWriter<'a, REG, 3>;
186impl R {
187 #[doc = "Bits 0:3 - Number of Samples to be Collected"]
188 #[inline(always)]
189 pub fn samplenum(&self) -> SamplenumR {
190 SamplenumR::new(self.bits & 0x0f)
191 }
192 #[doc = "Bits 4:6 - Adjusting Result / Division Coefficient"]
193 #[inline(always)]
194 pub fn adjres(&self) -> AdjresR {
195 AdjresR::new((self.bits >> 4) & 7)
196 }
197}
198impl W {
199 #[doc = "Bits 0:3 - Number of Samples to be Collected"]
200 #[inline(always)]
201 #[must_use]
202 pub fn samplenum(&mut self) -> SamplenumW<AvgctrlSpec> {
203 SamplenumW::new(self, 0)
204 }
205 #[doc = "Bits 4:6 - Adjusting Result / Division Coefficient"]
206 #[inline(always)]
207 #[must_use]
208 pub fn adjres(&mut self) -> AdjresW<AvgctrlSpec> {
209 AdjresW::new(self, 4)
210 }
211}
212#[doc = "Average Control\n\nYou can [`read`](crate::Reg::read) this register and get [`avgctrl::R`](R). You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`avgctrl::W`](W). You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api)."]
213pub struct AvgctrlSpec;
214impl crate::RegisterSpec for AvgctrlSpec {
215 type Ux = u8;
216}
217#[doc = "`read()` method returns [`avgctrl::R`](R) reader structure"]
218impl crate::Readable for AvgctrlSpec {}
219#[doc = "`write(|w| ..)` method takes [`avgctrl::W`](W) writer structure"]
220impl crate::Writable for AvgctrlSpec {
221 type Safety = crate::Unsafe;
222 const ZERO_TO_MODIFY_FIELDS_BITMAP: u8 = 0;
223 const ONE_TO_MODIFY_FIELDS_BITMAP: u8 = 0;
224}
225#[doc = "`reset()` method sets AVGCTRL to value 0"]
226impl crate::Resettable for AvgctrlSpec {
227 const RESET_VALUE: u8 = 0;
228}