diff options
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/nrf/src/bin/saadc_continuous.rs | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/examples/nrf/src/bin/saadc_continuous.rs b/examples/nrf/src/bin/saadc_continuous.rs index fba00ebdf..8bbdca665 100644 --- a/examples/nrf/src/bin/saadc_continuous.rs +++ b/examples/nrf/src/bin/saadc_continuous.rs | |||
| @@ -40,9 +40,24 @@ async fn main(_spawner: Spawner, mut p: Peripherals) { | |||
| 40 | timer.start(); | 40 | timer.start(); |
| 41 | 41 | ||
| 42 | let mut bufs = [[0; 3 * 500]; 2]; // Each buffer of the double buffer has to be large enough for all channels. | 42 | let mut bufs = [[0; 3 * 500]; 2]; // Each buffer of the double buffer has to be large enough for all channels. |
| 43 | |||
| 44 | let mut c = 0; | ||
| 45 | let mut a: i32 = 0; | ||
| 46 | |||
| 43 | saadc | 47 | saadc |
| 44 | .run_sampler(&mut bufs, Mode::Task, |buf| { | 48 | .run_sampler(&mut bufs, Mode::Task, move |buf| { |
| 45 | info!("sample len={}", buf.len()); | 49 | for (i, b) in buf.iter().enumerate() { |
| 50 | if i % 3 == 0 { | ||
| 51 | a += *b as i32; | ||
| 52 | c += 1; | ||
| 53 | } | ||
| 54 | } | ||
| 55 | if c > 10000 { | ||
| 56 | a = a / c as i32; | ||
| 57 | info!("sample: {=i32}", a); | ||
| 58 | c = 0; | ||
| 59 | a = 0; | ||
| 60 | } | ||
| 46 | SamplerState::Sampled | 61 | SamplerState::Sampled |
| 47 | }) | 62 | }) |
| 48 | .await; | 63 | .await; |
