diff options
| author | Mathis Deroo <[email protected]> | 2025-12-08 15:09:05 -0800 |
|---|---|---|
| committer | Mathis Deroo <[email protected]> | 2025-12-09 10:52:11 -0800 |
| commit | 759ab109806f447a1193954a453828b860104c3a (patch) | |
| tree | 29b87b9a86a4c1186da6933863ee824c4d09e902 /examples | |
| parent | e75e8dddb63f758419ef5d8d7c321c631f5b0a59 (diff) | |
Add Mode trait for Async and Blocking behavior
Signed-off-by: Mathis Deroo <[email protected]>
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/mcxa/src/bin/adc_interrupt.rs | 2 | ||||
| -rw-r--r-- | examples/mcxa/src/bin/adc_polling.rs | 20 |
2 files changed, 13 insertions, 9 deletions
diff --git a/examples/mcxa/src/bin/adc_interrupt.rs b/examples/mcxa/src/bin/adc_interrupt.rs index a0e392634..67fcf6361 100644 --- a/examples/mcxa/src/bin/adc_interrupt.rs +++ b/examples/mcxa/src/bin/adc_interrupt.rs | |||
| @@ -44,7 +44,7 @@ async fn main(_spawner: Spawner) { | |||
| 44 | source: AdcClockSel::FroLfDiv, | 44 | source: AdcClockSel::FroLfDiv, |
| 45 | div: Div4::no_div(), | 45 | div: Div4::no_div(), |
| 46 | }; | 46 | }; |
| 47 | let mut adc = Adc::new(p.ADC1, p.P1_10, Irqs, adc_config); | 47 | let mut adc = Adc::new_async(p.ADC1, p.P1_10, Irqs, adc_config).unwrap(); |
| 48 | 48 | ||
| 49 | adc.do_offset_calibration(); | 49 | adc.do_offset_calibration(); |
| 50 | adc.do_auto_calibration(); | 50 | adc.do_auto_calibration(); |
diff --git a/examples/mcxa/src/bin/adc_polling.rs b/examples/mcxa/src/bin/adc_polling.rs index 65b66c8dd..14d47329a 100644 --- a/examples/mcxa/src/bin/adc_polling.rs +++ b/examples/mcxa/src/bin/adc_polling.rs | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | #![no_main] | 2 | #![no_main] |
| 3 | 3 | ||
| 4 | use embassy_executor::Spawner; | 4 | use embassy_executor::Spawner; |
| 5 | use hal::adc::{Adc, ConvResult, LpadcConfig, TriggerPriorityPolicy}; | 5 | use hal::adc::{Adc, LpadcConfig, TriggerPriorityPolicy}; |
| 6 | use hal::clocks::PoweredClock; | 6 | use hal::clocks::PoweredClock; |
| 7 | use hal::config::Config; | 7 | use hal::config::Config; |
| 8 | use hal::clocks::config::Div8; | 8 | use hal::clocks::config::Div8; |
| @@ -39,7 +39,7 @@ async fn main(_spawner: Spawner) { | |||
| 39 | source: AdcClockSel::FroLfDiv, | 39 | source: AdcClockSel::FroLfDiv, |
| 40 | div: Div4::no_div(), | 40 | div: Div4::no_div(), |
| 41 | }; | 41 | }; |
| 42 | let adc = Adc::new_polling(p.ADC1, p.P1_10, adc_config); | 42 | let adc = Adc::new_blocking(p.ADC1, p.P1_10, adc_config).unwrap(); |
| 43 | 43 | ||
| 44 | adc.do_offset_calibration(); | 44 | adc.do_offset_calibration(); |
| 45 | adc.do_auto_calibration(); | 45 | adc.do_auto_calibration(); |
| @@ -58,11 +58,15 @@ async fn main(_spawner: Spawner) { | |||
| 58 | 58 | ||
| 59 | loop { | 59 | loop { |
| 60 | adc.do_software_trigger(1); | 60 | adc.do_software_trigger(1); |
| 61 | let mut result: Option<ConvResult> = None; | 61 | let result = loop { |
| 62 | while result.is_none() { | 62 | match adc.get_conv_result() { |
| 63 | result = adc.get_conv_result(); | 63 | Ok(res) => break res, |
| 64 | } | 64 | Err(_) => { |
| 65 | let value = result.unwrap().conv_value >> G_LPADC_RESULT_SHIFT; | 65 | // Conversion not ready, continue polling |
| 66 | defmt::info!("value: {=u16}", value); | 66 | } |
| 67 | } | ||
| 68 | }; | ||
| 69 | let value = result.conv_value >> G_LPADC_RESULT_SHIFT; | ||
| 70 | defmt::info!("ADC value: {=u16}", value); | ||
| 67 | } | 71 | } |
| 68 | } | 72 | } |
