diff options
| author | seth <[email protected]> | 2024-06-24 23:15:00 -0700 |
|---|---|---|
| committer | seth <[email protected]> | 2024-06-24 23:15:00 -0700 |
| commit | 6926e9e07154c72d68ef099d5f28178274f86032 (patch) | |
| tree | 5ce808617ab42ce7b5628c1341b14a0551eb4197 | |
| parent | 7056783fa23eb25629e1e57da0021916a073a432 (diff) | |
CI
| -rw-r--r-- | examples/stm32f4/src/bin/adc_dma.rs | 21 |
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; | |||
| 4 | use defmt::*; | 4 | use defmt::*; |
| 5 | use embassy_executor::Spawner; | 5 | use embassy_executor::Spawner; |
| 6 | use embassy_stm32::adc::{Adc, RingBufferedAdc, SampleTime, Sequence}; | 6 | use embassy_stm32::adc::{Adc, RingBufferedAdc, SampleTime, Sequence}; |
| 7 | use embassy_time::{Instant, Timer}; | 7 | use embassy_stm32::Peripherals; |
| 8 | use embassy_time::Instant; | ||
| 8 | use {defmt_rtt as _, panic_probe as _}; | 9 | use {defmt_rtt as _, panic_probe as _}; |
| 9 | 10 | ||
| 10 | #[embassy_executor::main] | 11 | #[embassy_executor::main] |
| 11 | async fn main(_spawner: Spawner) { | 12 | async 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] | ||
| 18 | async 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 | } |
