seperate sequence from duty cycle pwm struct

This commit is contained in:
Jacob Rosenthal
2021-11-01 19:11:37 -07:00
parent b297e5f7bd
commit 49253152cf
3 changed files with 186 additions and 92 deletions

View File

@ -7,7 +7,9 @@ mod example_common;
use defmt::*;
use embassy::executor::Spawner;
use embassy::time::{Duration, Timer};
use embassy_nrf::pwm::{CounterMode, Prescaler, Pwm, SequenceConfig, SequenceLoad, SequenceMode};
use embassy_nrf::pwm::{
CounterMode, Prescaler, PwmSeq, SequenceConfig, SequenceLoad, SequenceMode,
};
use embassy_nrf::Peripherals;
#[embassy::main]
@ -27,8 +29,9 @@ async fn main(_spawner: Spawner, p: Peripherals) {
times: SequenceMode::Times(5),
};
let pwm = Pwm::new(p.PWM0, p.P0_13, p.P0_15, p.P0_16, p.P0_14);
unwrap!(pwm.play_sequence(config));
let _pwm = unwrap!(PwmSeq::new(
p.PWM0, p.P0_13, p.P0_15, p.P0_16, p.P0_14, config
));
info!("pwm started!");
loop {

View File

@ -9,7 +9,9 @@ use defmt::*;
use embassy::executor::Spawner;
use embassy::time::{Duration, Timer};
use embassy_nrf::gpio::NoPin;
use embassy_nrf::pwm::{CounterMode, Prescaler, Pwm, SequenceConfig, SequenceLoad, SequenceMode};
use embassy_nrf::pwm::{
CounterMode, Prescaler, PwmSeq, SequenceConfig, SequenceLoad, SequenceMode,
};
use embassy_nrf::Peripherals;
use micromath::F32Ext;
@ -31,13 +33,12 @@ async fn main(_spawner: Spawner, p: Peripherals) {
times: SequenceMode::Infinite,
};
let pwm = Pwm::new(p.PWM0, p.P0_13, NoPin, NoPin, NoPin);
unwrap!(pwm.play_sequence(config));
let pwm = unwrap!(PwmSeq::new(p.PWM0, p.P0_13, NoPin, NoPin, NoPin, config));
info!("pwm started!");
Timer::after(Duration::from_millis(20000)).await;
pwm.sequence_stop();
pwm.stop();
info!("pwm stopped!");
loop {