From 9d353d251c644cc039679a30c0f8ab563181c1b9 Mon Sep 17 00:00:00 2001 From: flippette Date: Thu, 30 Jan 2025 00:13:56 +0200 Subject: [PATCH] Correct ADC channels for RP2350XB --- embassy-rp/src/adc.rs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/embassy-rp/src/adc.rs b/embassy-rp/src/adc.rs index 19441f194..8defb5231 100644 --- a/embassy-rp/src/adc.rs +++ b/embassy-rp/src/adc.rs @@ -58,11 +58,21 @@ impl<'p> Channel<'p> { } fn channel(&self) -> u8 { + #[cfg(any(feature = "rp2040", feature = "rp235xa"))] + const CH_OFFSET: u8 = 26; + #[cfg(feature = "rp235xb")] + const CH_OFFSET: u8 = 40; + + #[cfg(any(feature = "rp2040", feature = "rp235xa"))] + const TS_CHAN: u8 = 4; + #[cfg(feature = "rp235xb")] + const TS_CHAN: u8 = 8; + match &self.0 { // this requires adc pins to be sequential and matching the adc channels, - // which is the case for rp2040 - Source::Pin(p) => p._pin() - 26, - Source::TempSensor(_) => 4, + // which is the case for rp2040/rp235xy + Source::Pin(p) => p._pin() - CH_OFFSET, + Source::TempSensor(_) => TS_CHAN, } } }