aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorseth <[email protected]>2024-06-24 23:15:00 -0700
committerseth <[email protected]>2024-06-24 23:15:00 -0700
commit6926e9e07154c72d68ef099d5f28178274f86032 (patch)
tree5ce808617ab42ce7b5628c1341b14a0551eb4197
parent7056783fa23eb25629e1e57da0021916a073a432 (diff)
CI
-rw-r--r--examples/stm32f4/src/bin/adc_dma.rs21
1 files changed, 13 insertions, 8 deletions
diff --git a/examples/stm32f4/src/bin/adc_dma.rs b/examples/stm32f4/src/bin/adc_dma.rs
index dd19caf1d..992bed573 100644
--- a/examples/stm32f4/src/bin/adc_dma.rs
+++ b/examples/stm32f4/src/bin/adc_dma.rs
@@ -4,14 +4,19 @@ use cortex_m::singleton;
4use defmt::*; 4use defmt::*;
5use embassy_executor::Spawner; 5use embassy_executor::Spawner;
6use embassy_stm32::adc::{Adc, RingBufferedAdc, SampleTime, Sequence}; 6use embassy_stm32::adc::{Adc, RingBufferedAdc, SampleTime, Sequence};
7use embassy_time::{Instant, Timer}; 7use embassy_stm32::Peripherals;
8use embassy_time::Instant;
8use {defmt_rtt as _, panic_probe as _}; 9use {defmt_rtt as _, panic_probe as _};
9 10
10#[embassy_executor::main] 11#[embassy_executor::main]
11async fn main(_spawner: Spawner) { 12async fn main(spawner: Spawner) {
12 const ADC_BUF_SIZE: usize = 1024; 13 let p = embassy_stm32::init(Default::default());
13 let mut p = embassy_stm32::init(Default::default()); 14 spawner.must_spawn(adc_task(p));
15}
14 16
17#[embassy_executor::task]
18async fn adc_task(mut p: Peripherals) {
19 const ADC_BUF_SIZE: usize = 1024;
15 let adc_data: &mut [u16; ADC_BUF_SIZE] = singleton!(ADCDAT : [u16; ADC_BUF_SIZE] = [0u16; ADC_BUF_SIZE]).unwrap(); 20 let adc_data: &mut [u16; ADC_BUF_SIZE] = singleton!(ADCDAT : [u16; ADC_BUF_SIZE] = [0u16; ADC_BUF_SIZE]).unwrap();
16 let adc_data2: &mut [u16; ADC_BUF_SIZE] = singleton!(ADCDAT2 : [u16; ADC_BUF_SIZE] = [0u16; ADC_BUF_SIZE]).unwrap(); 21 let adc_data2: &mut [u16; ADC_BUF_SIZE] = singleton!(ADCDAT2 : [u16; ADC_BUF_SIZE] = [0u16; ADC_BUF_SIZE]).unwrap();
17 22
@@ -34,8 +39,8 @@ async fn main(_spawner: Spawner) {
34 // An interrupt executor with a higher priority than other tasks may be a good approach here, allowing this task to wake and read the buffer most 39 // An interrupt executor with a higher priority than other tasks may be a good approach here, allowing this task to wake and read the buffer most
35 // frequently. 40 // frequently.
36 let mut tic = Instant::now(); 41 let mut tic = Instant::now();
37 let mut buffer1 = [0u16; 256]; 42 let mut buffer1 = [0u16; 512];
38 let mut buffer2 = [0u16; 256]; 43 let mut buffer2 = [0u16; 512];
39 let _ = adc.start(); 44 let _ = adc.start();
40 let _ = adc2.start(); 45 let _ = adc2.start();
41 loop { 46 loop {
@@ -52,7 +57,7 @@ async fn main(_spawner: Spawner) {
52 } 57 }
53 Err(e) => { 58 Err(e) => {
54 warn!("Error: {:?}", e); 59 warn!("Error: {:?}", e);
55 buffer1 = [0u16; 256]; 60 buffer1 = [0u16; 512];
56 let _ = adc.start(); 61 let _ = adc.start();
57 } 62 }
58 } 63 }
@@ -70,7 +75,7 @@ async fn main(_spawner: Spawner) {
70 } 75 }
71 Err(e) => { 76 Err(e) => {
72 warn!("Error: {:?}", e); 77 warn!("Error: {:?}", e);
73 buffer2 = [0u16; 256]; 78 buffer2 = [0u16; 512];
74 let _ = adc2.start(); 79 let _ = adc2.start();
75 } 80 }
76 } 81 }