diff --git a/CHANGELOG.md b/CHANGELOG.md index 1f1007297ab..a7ea93f6b91 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -37,6 +37,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - `Pin::is_acore_interrupt_set` (#793) - `Pin::is_acore_non_maskable_interrupt_set` (#793) - `Pin::enable_hold` (#793) +- Removed the generic return type for ADC reads (#792) ### Breaking diff --git a/esp-hal-common/src/analog/adc/esp32.rs b/esp-hal-common/src/analog/adc/esp32.rs index 87a7160e175..4d19e3a8f2a 100644 --- a/esp-hal-common/src/analog/adc/esp32.rs +++ b/esp-hal-common/src/analog/adc/esp32.rs @@ -352,15 +352,14 @@ impl<'d, ADC1> ADC<'d, ADC1> { } } -impl<'d, ADCI, WORD, PIN> OneShot> for ADC<'d, ADCI> +impl<'d, ADCI, PIN> OneShot> for ADC<'d, ADCI> where - WORD: From, PIN: Channel, ADCI: RegisterAccess, { type Error = (); - fn read(&mut self, _pin: &mut AdcPin) -> nb::Result { + fn read(&mut self, _pin: &mut AdcPin) -> nb::Result { if self.attenuations[AdcPin::::channel() as usize] == None { panic!( "Channel {} is not configured reading!", @@ -397,7 +396,7 @@ where // Mark that no conversions are currently in progress self.active_channel = None; - Ok(converted_value.into()) + Ok(converted_value) } } diff --git a/esp-hal-common/src/analog/adc/riscv.rs b/esp-hal-common/src/analog/adc/riscv.rs index 5643e777c16..16b227dd0d0 100644 --- a/esp-hal-common/src/analog/adc/riscv.rs +++ b/esp-hal-common/src/analog/adc/riscv.rs @@ -613,16 +613,15 @@ impl AdcCalEfuse for ADC2 { } } -impl<'d, ADCI, WORD, PIN, CS> OneShot> for ADC<'d, ADCI> +impl<'d, ADCI, PIN, CS> OneShot> for ADC<'d, ADCI> where - WORD: From, PIN: Channel, ADCI: RegisterAccess, CS: AdcCalScheme, { type Error = (); - fn read(&mut self, pin: &mut AdcPin) -> nb::Result { + fn read(&mut self, pin: &mut AdcPin) -> nb::Result { if self.attenuations[AdcPin::::channel() as usize] == None { panic!( "Channel {} is not configured reading!", @@ -676,7 +675,7 @@ where // Mark that no conversions are currently in progress self.active_channel = None; - Ok(converted_value.into()) + Ok(converted_value) } } diff --git a/esp-hal-common/src/analog/adc/xtensa.rs b/esp-hal-common/src/analog/adc/xtensa.rs index 191c4f1432c..50baa4b3477 100644 --- a/esp-hal-common/src/analog/adc/xtensa.rs +++ b/esp-hal-common/src/analog/adc/xtensa.rs @@ -679,16 +679,15 @@ impl AdcCalEfuse for ADC2 { } } -impl<'d, ADCI, WORD, PIN, CS> OneShot> for ADC<'d, ADCI> +impl<'d, ADCI, PIN, CS> OneShot> for ADC<'d, ADCI> where - WORD: From, PIN: Channel, ADCI: RegisterAccess, CS: AdcCalScheme, { type Error = (); - fn read(&mut self, pin: &mut AdcPin) -> nb::Result { + fn read(&mut self, pin: &mut AdcPin) -> nb::Result { if self.attenuations[AdcPin::::channel() as usize] == None { panic!( "Channel {} is not configured reading!", @@ -729,7 +728,7 @@ where // Mark that no conversions are currently in progress self.active_channel = None; - Ok(converted_value.into()) + Ok(converted_value) } } diff --git a/esp32c3-hal/examples/adc.rs b/esp32c3-hal/examples/adc.rs index b49616c82db..acdf5162160 100644 --- a/esp32c3-hal/examples/adc.rs +++ b/esp32c3-hal/examples/adc.rs @@ -41,7 +41,7 @@ fn main() -> ! { let mut delay = Delay::new(&clocks); loop { - let pin_value: u16 = nb::block!(adc1.read(&mut pin)).unwrap(); + let pin_value = nb::block!(adc1.read(&mut pin)).unwrap(); println!("PIN2 ADC reading = {}", pin_value); delay.delay_ms(1500u32); } diff --git a/esp32c3-hal/examples/adc_cal.rs b/esp32c3-hal/examples/adc_cal.rs index 7b4337f5b52..21c4658f448 100644 --- a/esp32c3-hal/examples/adc_cal.rs +++ b/esp32c3-hal/examples/adc_cal.rs @@ -50,7 +50,7 @@ fn main() -> ! { let mut delay = Delay::new(&clocks); loop { - let pin_value: u16 = nb::block!(adc1.read(&mut pin)).unwrap(); + let pin_value = nb::block!(adc1.read(&mut pin)).unwrap(); let pin_value_mv = pin_value as u32 * atten.ref_mv() as u32 / 4096; println!("PIN2 ADC reading = {pin_value} ({pin_value_mv} mV)"); delay.delay_ms(1500u32);