aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/nrf/src/bin/pwm_sequence.rs25
-rw-r--r--examples/nrf/src/bin/pwm_simple_sin.rs24
2 files changed, 23 insertions, 26 deletions
diff --git a/examples/nrf/src/bin/pwm_sequence.rs b/examples/nrf/src/bin/pwm_sequence.rs
index 82575d703..3f8b051dd 100644
--- a/examples/nrf/src/bin/pwm_sequence.rs
+++ b/examples/nrf/src/bin/pwm_sequence.rs
@@ -7,9 +7,7 @@ mod example_common;
7use defmt::*; 7use defmt::*;
8use embassy::executor::Spawner; 8use embassy::executor::Spawner;
9use embassy::time::{Duration, Timer}; 9use embassy::time::{Duration, Timer};
10use embassy_nrf::pwm::{ 10use embassy_nrf::pwm::{Prescaler, SequenceConfig, SequenceLoad, SequenceMode, SequencePwm};
11 CounterMode, Prescaler, SequenceConfig, SequenceLoad, SequenceMode, SequencePwm,
12};
13use embassy_nrf::Peripherals; 11use embassy_nrf::Peripherals;
14 12
15#[embassy::main] 13#[embassy::main]
@@ -18,18 +16,19 @@ async fn main(_spawner: Spawner, p: Peripherals) {
18 0x8000, 0, 0, 0, 0, 0x8000, 0, 0, 0, 0, 0x8000, 0, 0, 0, 0, 0x8000, 16 0x8000, 0, 0, 0, 0, 0x8000, 0, 0, 0, 0, 0x8000, 0, 0, 0, 0, 0x8000,
19 ]; 17 ];
20 18
21 let config = SequenceConfig { 19 let mut config = SequenceConfig::default();
22 counter_mode: CounterMode::Up, 20 config.top = 15625;
23 top: 15625, 21 config.prescaler = Prescaler::Div128;
24 prescaler: Prescaler::Div128, 22 config.sequence_load = SequenceLoad::Individual;
25 sequence: &seq_values,
26 sequence_load: SequenceLoad::Individual,
27 refresh: 0,
28 end_delay: 0,
29 };
30 23
31 let pwm = unwrap!(SequencePwm::new( 24 let pwm = unwrap!(SequencePwm::new(
32 p.PWM0, p.P0_13, p.P0_15, p.P0_16, p.P0_14, config 25 p.PWM0,
26 p.P0_13,
27 p.P0_15,
28 p.P0_16,
29 p.P0_14,
30 config,
31 &seq_values,
33 )); 32 ));
34 let _ = pwm.start(SequenceMode::Times(5)); 33 let _ = pwm.start(SequenceMode::Times(5));
35 info!("pwm started!"); 34 info!("pwm started!");
diff --git a/examples/nrf/src/bin/pwm_simple_sin.rs b/examples/nrf/src/bin/pwm_simple_sin.rs
index afafb5d96..33fa6dcfe 100644
--- a/examples/nrf/src/bin/pwm_simple_sin.rs
+++ b/examples/nrf/src/bin/pwm_simple_sin.rs
@@ -9,9 +9,7 @@ use defmt::*;
9use embassy::executor::Spawner; 9use embassy::executor::Spawner;
10use embassy::time::{Duration, Timer}; 10use embassy::time::{Duration, Timer};
11use embassy_nrf::gpio::NoPin; 11use embassy_nrf::gpio::NoPin;
12use embassy_nrf::pwm::{ 12use embassy_nrf::pwm::{CounterMode, SequenceConfig, SequenceMode, SequencePwm};
13 CounterMode, Prescaler, SequenceConfig, SequenceLoad, SequenceMode, SequencePwm,
14};
15use embassy_nrf::Peripherals; 13use embassy_nrf::Peripherals;
16use micromath::F32Ext; 14use micromath::F32Ext;
17 15
@@ -22,18 +20,18 @@ async fn main(_spawner: Spawner, p: Peripherals) {
22 // probably not best use of resources to create the table at runtime, but makes testing fast 20 // probably not best use of resources to create the table at runtime, but makes testing fast
23 let seq_values: [u16; 220] = core::array::from_fn(|n| ((W1 * n as f32).sin() * 10000.0) as u16); 21 let seq_values: [u16; 220] = core::array::from_fn(|n| ((W1 * n as f32).sin() * 10000.0) as u16);
24 22
25 let config = SequenceConfig { 23 let mut config = SequenceConfig::default();
26 counter_mode: CounterMode::UpAndDown, 24 config.counter_mode = CounterMode::UpAndDown;
27 top: 12000, 25 config.top = 12000;
28 prescaler: Prescaler::Div16,
29 sequence: &seq_values,
30 sequence_load: SequenceLoad::Common,
31 refresh: 0,
32 end_delay: 0,
33 };
34 26
35 let pwm = unwrap!(SequencePwm::new( 27 let pwm = unwrap!(SequencePwm::new(
36 p.PWM0, p.P0_13, NoPin, NoPin, NoPin, config 28 p.PWM0,
29 p.P0_13,
30 NoPin,
31 NoPin,
32 NoPin,
33 config,
34 &seq_values
37 )); 35 ));
38 let _ = pwm.start(SequenceMode::Infinite); 36 let _ = pwm.start(SequenceMode::Infinite);
39 info!("pwm started!"); 37 info!("pwm started!");