diff options
| author | xoviat <[email protected]> | 2025-11-13 07:38:06 -0600 |
|---|---|---|
| committer | xoviat <[email protected]> | 2025-11-13 07:38:06 -0600 |
| commit | c17d24d0cc8fedbe69b22032ea7323997ddfe4dc (patch) | |
| tree | d0c94234a9ec9bbd471a0382a752267f763fd50a /embassy-stm32 | |
| parent | 4dedc1307cb088d5d28655b8427ae3a6176a216d (diff) | |
extract averaging enum
Diffstat (limited to 'embassy-stm32')
| -rw-r--r-- | embassy-stm32/src/adc/c0.rs | 19 | ||||
| -rw-r--r-- | embassy-stm32/src/adc/mod.rs | 20 | ||||
| -rw-r--r-- | embassy-stm32/src/adc/v3.rs | 17 | ||||
| -rw-r--r-- | embassy-stm32/src/adc/v4.rs | 19 |
4 files changed, 22 insertions, 53 deletions
diff --git a/embassy-stm32/src/adc/c0.rs b/embassy-stm32/src/adc/c0.rs index bc97a7c4b..8992d6e6e 100644 --- a/embassy-stm32/src/adc/c0.rs +++ b/embassy-stm32/src/adc/c0.rs | |||
| @@ -119,25 +119,6 @@ impl<'a> defmt::Format for Prescaler { | |||
| 119 | } | 119 | } |
| 120 | } | 120 | } |
| 121 | 121 | ||
| 122 | /// Number of samples used for averaging. | ||
| 123 | /// TODO: Implement hardware averaging setting. | ||
| 124 | #[allow(unused)] | ||
| 125 | #[derive(Copy, Clone, Debug)] | ||
| 126 | #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| 127 | pub enum Averaging { | ||
| 128 | Disabled, | ||
| 129 | Samples2, | ||
| 130 | Samples4, | ||
| 131 | Samples8, | ||
| 132 | Samples16, | ||
| 133 | Samples32, | ||
| 134 | Samples64, | ||
| 135 | Samples128, | ||
| 136 | Samples256, | ||
| 137 | Samples512, | ||
| 138 | Samples1024, | ||
| 139 | } | ||
| 140 | |||
| 141 | impl<'d, T: Instance> Adc<'d, T> { | 122 | impl<'d, T: Instance> Adc<'d, T> { |
| 142 | /// Create a new ADC driver. | 123 | /// Create a new ADC driver. |
| 143 | pub fn new(adc: Peri<'d, T>, resolution: Resolution) -> Self { | 124 | pub fn new(adc: Peri<'d, T>, resolution: Resolution) -> Self { |
diff --git a/embassy-stm32/src/adc/mod.rs b/embassy-stm32/src/adc/mod.rs index 856c2e61e..c91d68e87 100644 --- a/embassy-stm32/src/adc/mod.rs +++ b/embassy-stm32/src/adc/mod.rs | |||
| @@ -148,6 +148,26 @@ pub(crate) fn blocking_delay_us(us: u32) { | |||
| 148 | } | 148 | } |
| 149 | } | 149 | } |
| 150 | 150 | ||
| 151 | #[cfg(any(adc_c0, adc_v3, adc_g0, adc_h5, adc_h7rs, adc_u0, adc_v4, adc_u5))] | ||
| 152 | /// Number of samples used for averaging. | ||
| 153 | #[derive(Copy, Clone, Debug)] | ||
| 154 | #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| 155 | pub enum Averaging { | ||
| 156 | Disabled, | ||
| 157 | Samples2, | ||
| 158 | Samples4, | ||
| 159 | Samples8, | ||
| 160 | Samples16, | ||
| 161 | Samples32, | ||
| 162 | Samples64, | ||
| 163 | Samples128, | ||
| 164 | Samples256, | ||
| 165 | #[cfg(any(adc_c0, adc_v4, adc_u5))] | ||
| 166 | Samples512, | ||
| 167 | #[cfg(any(adc_c0, adc_v4, adc_u5))] | ||
| 168 | Samples1024, | ||
| 169 | } | ||
| 170 | |||
| 151 | #[cfg(any(adc_v2, adc_g4, adc_v3, adc_g0, adc_h5, adc_h7rs, adc_u0, adc_v4, adc_u5, adc_wba))] | 171 | #[cfg(any(adc_v2, adc_g4, adc_v3, adc_g0, adc_h5, adc_h7rs, adc_u0, adc_v4, adc_u5, adc_wba))] |
| 152 | #[allow(dead_code)] | 172 | #[allow(dead_code)] |
| 153 | pub(crate) enum ConversionMode { | 173 | pub(crate) enum ConversionMode { |
diff --git a/embassy-stm32/src/adc/v3.rs b/embassy-stm32/src/adc/v3.rs index 4cce1dac3..fa191c663 100644 --- a/embassy-stm32/src/adc/v3.rs +++ b/embassy-stm32/src/adc/v3.rs | |||
| @@ -11,7 +11,7 @@ pub use pac::adc::vals::{Ovsr, Ovss, Presc}; | |||
| 11 | 11 | ||
| 12 | #[allow(unused_imports)] | 12 | #[allow(unused_imports)] |
| 13 | use super::SealedAdcChannel; | 13 | use super::SealedAdcChannel; |
| 14 | use super::{Adc, Instance, Resolution, SampleTime, Temperature, Vbat, VrefInt, blocking_delay_us}; | 14 | use super::{Adc, Averaging, Instance, Resolution, SampleTime, Temperature, Vbat, VrefInt, blocking_delay_us}; |
| 15 | use crate::adc::ConversionMode; | 15 | use crate::adc::ConversionMode; |
| 16 | use crate::{Peri, pac, rcc}; | 16 | use crate::{Peri, pac, rcc}; |
| 17 | 17 | ||
| @@ -100,21 +100,6 @@ cfg_if! { | |||
| 100 | } | 100 | } |
| 101 | } | 101 | } |
| 102 | 102 | ||
| 103 | /// Number of samples used for averaging. | ||
| 104 | #[derive(Copy, Clone, Debug)] | ||
| 105 | #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| 106 | pub enum Averaging { | ||
| 107 | Disabled, | ||
| 108 | Samples2, | ||
| 109 | Samples4, | ||
| 110 | Samples8, | ||
| 111 | Samples16, | ||
| 112 | Samples32, | ||
| 113 | Samples64, | ||
| 114 | Samples128, | ||
| 115 | Samples256, | ||
| 116 | } | ||
| 117 | |||
| 118 | cfg_if! { if #[cfg(adc_g0)] { | 103 | cfg_if! { if #[cfg(adc_g0)] { |
| 119 | 104 | ||
| 120 | /// Synchronous PCLK prescaler | 105 | /// Synchronous PCLK prescaler |
diff --git a/embassy-stm32/src/adc/v4.rs b/embassy-stm32/src/adc/v4.rs index 43eb16fd5..1b17b744f 100644 --- a/embassy-stm32/src/adc/v4.rs +++ b/embassy-stm32/src/adc/v4.rs | |||
| @@ -4,7 +4,7 @@ use pac::adc::vals::{Adcaldif, Boost}; | |||
| 4 | use pac::adc::vals::{Adstp, Difsel, Dmngt, Exten, Pcsel}; | 4 | use pac::adc::vals::{Adstp, Difsel, Dmngt, Exten, Pcsel}; |
| 5 | use pac::adccommon::vals::Presc; | 5 | use pac::adccommon::vals::Presc; |
| 6 | 6 | ||
| 7 | use super::{Adc, Instance, Resolution, SampleTime, Temperature, Vbat, VrefInt, blocking_delay_us}; | 7 | use super::{Adc, Averaging, Instance, Resolution, SampleTime, Temperature, Vbat, VrefInt, blocking_delay_us}; |
| 8 | use crate::adc::ConversionMode; | 8 | use crate::adc::ConversionMode; |
| 9 | use crate::time::Hertz; | 9 | use crate::time::Hertz; |
| 10 | use crate::{Peri, pac, rcc}; | 10 | use crate::{Peri, pac, rcc}; |
| @@ -127,23 +127,6 @@ impl Prescaler { | |||
| 127 | } | 127 | } |
| 128 | } | 128 | } |
| 129 | 129 | ||
| 130 | /// Number of samples used for averaging. | ||
| 131 | #[derive(Copy, Clone, Debug)] | ||
| 132 | #[cfg_attr(feature = "defmt", derive(defmt::Format))] | ||
| 133 | pub enum Averaging { | ||
| 134 | Disabled, | ||
| 135 | Samples2, | ||
| 136 | Samples4, | ||
| 137 | Samples8, | ||
| 138 | Samples16, | ||
| 139 | Samples32, | ||
| 140 | Samples64, | ||
| 141 | Samples128, | ||
| 142 | Samples256, | ||
| 143 | Samples512, | ||
| 144 | Samples1024, | ||
| 145 | } | ||
| 146 | |||
| 147 | /// Adc configuration | 130 | /// Adc configuration |
| 148 | #[derive(Default)] | 131 | #[derive(Default)] |
| 149 | pub struct AdcConfig { | 132 | pub struct AdcConfig { |
