diff options
| author | xoviat <[email protected]> | 2025-12-06 12:31:55 -0600 |
|---|---|---|
| committer | xoviat <[email protected]> | 2025-12-06 12:31:55 -0600 |
| commit | fe88223469ca872b9b30b32e1b3f4ad219cfebed (patch) | |
| tree | a41ae9048c35628fd7c66fc28f8bee55c5bbfa92 /embassy-stm32/src | |
| parent | 4f66b2f2090e2fcfd7d92f9ebd07cc9048eb70d7 (diff) | |
adc/g4: optimize
Diffstat (limited to 'embassy-stm32/src')
| -rw-r--r-- | embassy-stm32/src/adc/g4.rs | 21 |
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 | }; |
| 15 | use crate::adc::{AdcRegs, BasicAdcRegs, SealedAdcChannel}; | 15 | use crate::adc::{AdcRegs, BasicAdcRegs, SealedAdcChannel}; |
| 16 | use crate::pac::adc::regs::{Smpr, Smpr2, Sqr1, Sqr2, Sqr3, Sqr4}; | ||
| 16 | use crate::time::Hertz; | 17 | use crate::time::Hertz; |
| 17 | use crate::{Peri, pac, rcc}; | 18 | use 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() { |
