diff options
| -rw-r--r-- | embassy-stm32/src/adc/v2.rs | 62 |
1 files changed, 29 insertions, 33 deletions
diff --git a/embassy-stm32/src/adc/v2.rs b/embassy-stm32/src/adc/v2.rs index f70170a6a..b6451c9de 100644 --- a/embassy-stm32/src/adc/v2.rs +++ b/embassy-stm32/src/adc/v2.rs | |||
| @@ -71,46 +71,42 @@ impl<T: Instance> super::sealed::AdcPin<T> for Vbat { | |||
| 71 | } | 71 | } |
| 72 | } | 72 | } |
| 73 | 73 | ||
| 74 | mod sample_time { | 74 | /// ADC sample time |
| 75 | /// ADC sample time | 75 | /// |
| 76 | /// | 76 | /// The default setting is 3 ADC clock cycles. |
| 77 | /// The default setting is 3 ADC clock cycles. | 77 | #[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd)] |
| 78 | #[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd)] | 78 | pub enum SampleTime { |
| 79 | pub enum SampleTime { | 79 | Cycles3 = 0b000, |
| 80 | Cycles3 = 0b000, | 80 | Cycles15 = 0b001, |
| 81 | Cycles15 = 0b001, | 81 | Cycles28 = 0b010, |
| 82 | Cycles28 = 0b010, | 82 | Cycles56 = 0b011, |
| 83 | Cycles56 = 0b011, | 83 | Cycles85 = 0b100, |
| 84 | Cycles85 = 0b100, | 84 | Cycles112 = 0b101, |
| 85 | Cycles112 = 0b101, | 85 | Cycles144 = 0b110, |
| 86 | Cycles144 = 0b110, | 86 | Cycles480 = 0b111, |
| 87 | Cycles480 = 0b111, | 87 | } |
| 88 | } | ||
| 89 | 88 | ||
| 90 | impl SampleTime { | 89 | impl SampleTime { |
| 91 | pub(crate) fn sample_time(&self) -> crate::pac::adc::vals::Smp { | 90 | pub(crate) fn sample_time(&self) -> crate::pac::adc::vals::Smp { |
| 92 | match self { | 91 | match self { |
| 93 | SampleTime::Cycles3 => crate::pac::adc::vals::Smp::CYCLES3, | 92 | SampleTime::Cycles3 => crate::pac::adc::vals::Smp::CYCLES3, |
| 94 | SampleTime::Cycles15 => crate::pac::adc::vals::Smp::CYCLES15, | 93 | SampleTime::Cycles15 => crate::pac::adc::vals::Smp::CYCLES15, |
| 95 | SampleTime::Cycles28 => crate::pac::adc::vals::Smp::CYCLES28, | 94 | SampleTime::Cycles28 => crate::pac::adc::vals::Smp::CYCLES28, |
| 96 | SampleTime::Cycles56 => crate::pac::adc::vals::Smp::CYCLES56, | 95 | SampleTime::Cycles56 => crate::pac::adc::vals::Smp::CYCLES56, |
| 97 | SampleTime::Cycles85 => crate::pac::adc::vals::Smp::CYCLES84, | 96 | SampleTime::Cycles85 => crate::pac::adc::vals::Smp::CYCLES84, |
| 98 | SampleTime::Cycles112 => crate::pac::adc::vals::Smp::CYCLES112, | 97 | SampleTime::Cycles112 => crate::pac::adc::vals::Smp::CYCLES112, |
| 99 | SampleTime::Cycles144 => crate::pac::adc::vals::Smp::CYCLES144, | 98 | SampleTime::Cycles144 => crate::pac::adc::vals::Smp::CYCLES144, |
| 100 | SampleTime::Cycles480 => crate::pac::adc::vals::Smp::CYCLES480, | 99 | SampleTime::Cycles480 => crate::pac::adc::vals::Smp::CYCLES480, |
| 101 | } | ||
| 102 | } | 100 | } |
| 103 | } | 101 | } |
| 102 | } | ||
| 104 | 103 | ||
| 105 | impl Default for SampleTime { | 104 | impl Default for SampleTime { |
| 106 | fn default() -> Self { | 105 | fn default() -> Self { |
| 107 | Self::Cycles3 | 106 | Self::Cycles3 |
| 108 | } | ||
| 109 | } | 107 | } |
| 110 | } | 108 | } |
| 111 | 109 | ||
| 112 | pub use sample_time::SampleTime; | ||
| 113 | |||
| 114 | pub struct Adc<'d, T: Instance> { | 110 | pub struct Adc<'d, T: Instance> { |
| 115 | sample_time: SampleTime, | 111 | sample_time: SampleTime, |
| 116 | calibrated_vdda: u32, | 112 | calibrated_vdda: u32, |
