aboutsummaryrefslogtreecommitdiff
path: root/embassy-stm32
diff options
context:
space:
mode:
authorxoviat <[email protected]>2025-12-06 12:31:55 -0600
committerxoviat <[email protected]>2025-12-06 12:31:55 -0600
commitfe88223469ca872b9b30b32e1b3f4ad219cfebed (patch)
treea41ae9048c35628fd7c66fc28f8bee55c5bbfa92 /embassy-stm32
parent4f66b2f2090e2fcfd7d92f9ebd07cc9048eb70d7 (diff)
adc/g4: optimize
Diffstat (limited to 'embassy-stm32')
-rw-r--r--embassy-stm32/src/adc/g4.rs21
1 files changed, 10 insertions, 11 deletions
diff --git a/embassy-stm32/src/adc/g4.rs b/embassy-stm32/src/adc/g4.rs
index 53c1ecd31..e93ed945f 100644
--- a/embassy-stm32/src/adc/g4.rs
+++ b/embassy-stm32/src/adc/g4.rs
@@ -13,6 +13,7 @@ use super::{
13 blocking_delay_us, 13 blocking_delay_us,
14}; 14};
15use crate::adc::{AdcRegs, BasicAdcRegs, SealedAdcChannel}; 15use crate::adc::{AdcRegs, BasicAdcRegs, SealedAdcChannel};
16use crate::pac::adc::regs::{Smpr, Smpr2, Sqr1, Sqr2, Sqr3, Sqr4};
16use crate::time::Hertz; 17use crate::time::Hertz;
17use crate::{Peri, pac, rcc}; 18use crate::{Peri, pac, rcc};
18 19
@@ -174,19 +175,17 @@ impl super::AdcRegs for crate::pac::adc::Adc {
174 fn configure_sequence(&self, sequence: impl ExactSizeIterator<Item = ((u8, bool), SampleTime)>) { 175 fn configure_sequence(&self, sequence: impl ExactSizeIterator<Item = ((u8, bool), SampleTime)>) {
175 self.cr().modify(|w| w.set_aden(false)); 176 self.cr().modify(|w| w.set_aden(false));
176 177
177 // Set sequence length
178 self.sqr1().modify(|w| {
179 w.set_l(sequence.len() as u8 - 1);
180 });
181
182 #[cfg(stm32g4)] 178 #[cfg(stm32g4)]
183 let mut difsel = DifselReg::default(); 179 let mut difsel = DifselReg::default();
184 let mut smpr = self.smpr().read(); 180 let mut smpr = Smpr::default();
185 let mut smpr2 = self.smpr2().read(); 181 let mut smpr2 = Smpr2::default();
186 let mut sqr1 = self.sqr1().read(); 182 let mut sqr1 = Sqr1::default();
187 let mut sqr2 = self.sqr2().read(); 183 let mut sqr2 = Sqr2::default();
188 let mut sqr3 = self.sqr3().read(); 184 let mut sqr3 = Sqr3::default();
189 let mut sqr4 = self.sqr4().read(); 185 let mut sqr4 = Sqr4::default();
186
187 // Set sequence length
188 sqr1.set_l(sequence.len() as u8 - 1);
190 189
191 // Configure channels and ranks 190 // Configure channels and ranks
192 for (_i, ((ch, is_differential), sample_time)) in sequence.enumerate() { 191 for (_i, ((ch, is_differential), sample_time)) in sequence.enumerate() {