aboutsummaryrefslogtreecommitdiff
path: root/examples/nrf/src/bin/saadc.rs
diff options
context:
space:
mode:
authorhuntc <[email protected]>2021-10-12 11:24:26 +1100
committerhuntc <[email protected]>2021-10-18 10:26:11 +1100
commit103a3305e2a7bb9ef87d72a1237cbc5237aa8156 (patch)
tree5523c43673d7a885b4f059fff0c34872878fd137 /examples/nrf/src/bin/saadc.rs
parent90f6b56cba8123d51631aec2ceea7262eee149c5 (diff)
Implements continuous sampling for the nRF SAADC
Implements continuous sampling for the nRF SAADC and also renames `OneShot` to `Saadc`. The one-shot behaviour is retained with the `sample` method and a new `run_sampler` method is provided for efficiently (i.e. zero copying) sampler processing. A double buffer is used for continuously sampling, which wlll be swapped once sampling has taken place. A sample frequency is provided and will set the internal timer of the SAADC when there is just the one channel being sampled. Otherwise, PPI will be used to hook up the TIMER peripheral to drive the sampling task.
Diffstat (limited to 'examples/nrf/src/bin/saadc.rs')
-rw-r--r--examples/nrf/src/bin/saadc.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/examples/nrf/src/bin/saadc.rs b/examples/nrf/src/bin/saadc.rs
index d12717c04..c6eac555b 100644
--- a/examples/nrf/src/bin/saadc.rs
+++ b/examples/nrf/src/bin/saadc.rs
@@ -7,7 +7,7 @@ mod example_common;
7use defmt::panic; 7use defmt::panic;
8use embassy::executor::Spawner; 8use embassy::executor::Spawner;
9use embassy::time::{Duration, Timer}; 9use embassy::time::{Duration, Timer};
10use embassy_nrf::saadc::{ChannelConfig, Config, OneShot}; 10use embassy_nrf::saadc::{ChannelConfig, Config, Saadc};
11use embassy_nrf::{interrupt, Peripherals}; 11use embassy_nrf::{interrupt, Peripherals};
12use example_common::*; 12use example_common::*;
13 13
@@ -15,7 +15,7 @@ use example_common::*;
15async fn main(_spawner: Spawner, mut p: Peripherals) { 15async fn main(_spawner: Spawner, mut p: Peripherals) {
16 let config = Config::default(); 16 let config = Config::default();
17 let channel_config = ChannelConfig::single_ended(&mut p.P0_02); 17 let channel_config = ChannelConfig::single_ended(&mut p.P0_02);
18 let mut saadc = OneShot::new(p.SAADC, interrupt::take!(SAADC), config, [channel_config]); 18 let mut saadc = Saadc::new(p.SAADC, interrupt::take!(SAADC), config, [channel_config]);
19 19
20 loop { 20 loop {
21 let mut buf = [0; 1]; 21 let mut buf = [0; 1];