aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorpennae <[email protected]>2023-07-21 21:31:44 +0200
committerpennae <[email protected]>2023-08-01 18:31:28 +0200
commitb166ed6b78db0737005a65c1e444ce7563de7da3 (patch)
treeb06b0742ceb839e5739e92ea4c001617eb2f5d8c /examples
parent54d31c98fe44533c955c494ea58dd16810367c4f (diff)
rp: generalize adc inputs from pins to channels
this lets us treat pins and the temperature sensor uniformly using the same interface. uniformity in turn lets us add more adc features without combinatorial explosion of methods and types needed to handle them all.
Diffstat (limited to 'examples')
-rw-r--r--examples/rp/src/bin/adc.rs11
1 files changed, 6 insertions, 5 deletions
diff --git a/examples/rp/src/bin/adc.rs b/examples/rp/src/bin/adc.rs
index 81a8b8340..c58695512 100644
--- a/examples/rp/src/bin/adc.rs
+++ b/examples/rp/src/bin/adc.rs
@@ -7,7 +7,7 @@
7 7
8use defmt::*; 8use defmt::*;
9use embassy_executor::Spawner; 9use embassy_executor::Spawner;
10use embassy_rp::adc::{Adc, Config, InterruptHandler, Pin}; 10use embassy_rp::adc::{Adc, Channel, Config, InterruptHandler};
11use embassy_rp::bind_interrupts; 11use embassy_rp::bind_interrupts;
12use embassy_rp::gpio::Pull; 12use embassy_rp::gpio::Pull;
13use embassy_time::{Duration, Timer}; 13use embassy_time::{Duration, Timer};
@@ -22,9 +22,10 @@ async fn main(_spawner: Spawner) {
22 let p = embassy_rp::init(Default::default()); 22 let p = embassy_rp::init(Default::default());
23 let mut adc = Adc::new(p.ADC, Irqs, Config::default()); 23 let mut adc = Adc::new(p.ADC, Irqs, Config::default());
24 24
25 let mut p26 = Pin::new(p.PIN_26, Pull::None); 25 let mut p26 = Channel::new_pin(p.PIN_26, Pull::None);
26 let mut p27 = Pin::new(p.PIN_27, Pull::None); 26 let mut p27 = Channel::new_pin(p.PIN_27, Pull::None);
27 let mut p28 = Pin::new(p.PIN_28, Pull::None); 27 let mut p28 = Channel::new_pin(p.PIN_28, Pull::None);
28 let mut ts = Channel::new_sensor(p.ADC_TEMP_SENSOR);
28 29
29 loop { 30 loop {
30 let level = adc.read(&mut p26).await.unwrap(); 31 let level = adc.read(&mut p26).await.unwrap();
@@ -33,7 +34,7 @@ async fn main(_spawner: Spawner) {
33 info!("Pin 27 ADC: {}", level); 34 info!("Pin 27 ADC: {}", level);
34 let level = adc.read(&mut p28).await.unwrap(); 35 let level = adc.read(&mut p28).await.unwrap();
35 info!("Pin 28 ADC: {}", level); 36 info!("Pin 28 ADC: {}", level);
36 let temp = adc.read_temperature().await.unwrap(); 37 let temp = adc.read(&mut ts).await.unwrap();
37 info!("Temp: {} degrees", convert_to_celsius(temp)); 38 info!("Temp: {} degrees", convert_to_celsius(temp));
38 Timer::after(Duration::from_secs(1)).await; 39 Timer::after(Duration::from_secs(1)).await;
39 } 40 }