aboutsummaryrefslogtreecommitdiff
path: root/examples/stm32g4/src/bin
diff options
context:
space:
mode:
authorUlf Lilleengen <[email protected]>2024-10-23 10:30:13 +0000
committerGitHub <[email protected]>2024-10-23 10:30:13 +0000
commit8803128707b8bd9fc9dcea392a62dfd42aa822d2 (patch)
treef7ce53e194af927e02b015bf8e5dcd837169a70e /examples/stm32g4/src/bin
parent8eb80c6816a1f6ea7814acd4f48f07e79891f804 (diff)
parentf2646b29a6b0a741fc424f88c5ca3dc25fce9369 (diff)
Merge pull request #3317 from GrantM11235/simplepwmchannel
embassy-stm32: Add SimplePwmChannel
Diffstat (limited to 'examples/stm32g4/src/bin')
-rw-r--r--examples/stm32g4/src/bin/pwm.rs19
1 files changed, 9 insertions, 10 deletions
diff --git a/examples/stm32g4/src/bin/pwm.rs b/examples/stm32g4/src/bin/pwm.rs
index d4809a481..6c965012c 100644
--- a/examples/stm32g4/src/bin/pwm.rs
+++ b/examples/stm32g4/src/bin/pwm.rs
@@ -6,7 +6,6 @@ use embassy_executor::Spawner;
6use embassy_stm32::gpio::OutputType; 6use embassy_stm32::gpio::OutputType;
7use embassy_stm32::time::khz; 7use embassy_stm32::time::khz;
8use embassy_stm32::timer::simple_pwm::{PwmPin, SimplePwm}; 8use embassy_stm32::timer::simple_pwm::{PwmPin, SimplePwm};
9use embassy_stm32::timer::Channel;
10use embassy_time::Timer; 9use embassy_time::Timer;
11use {defmt_rtt as _, panic_probe as _}; 10use {defmt_rtt as _, panic_probe as _};
12 11
@@ -15,22 +14,22 @@ async fn main(_spawner: Spawner) {
15 let p = embassy_stm32::init(Default::default()); 14 let p = embassy_stm32::init(Default::default());
16 info!("Hello World!"); 15 info!("Hello World!");
17 16
18 let ch1 = PwmPin::new_ch1(p.PC0, OutputType::PushPull); 17 let ch1_pin = PwmPin::new_ch1(p.PC0, OutputType::PushPull);
19 let mut pwm = SimplePwm::new(p.TIM1, Some(ch1), None, None, None, khz(10), Default::default()); 18 let mut pwm = SimplePwm::new(p.TIM1, Some(ch1_pin), None, None, None, khz(10), Default::default());
20 let max = pwm.get_max_duty(); 19 let mut ch1 = pwm.ch1();
21 pwm.enable(Channel::Ch1); 20 ch1.enable();
22 21
23 info!("PWM initialized"); 22 info!("PWM initialized");
24 info!("PWM max duty {}", max); 23 info!("PWM max duty {}", ch1.max_duty_cycle());
25 24
26 loop { 25 loop {
27 pwm.set_duty(Channel::Ch1, 0); 26 ch1.set_duty_cycle_fully_off();
28 Timer::after_millis(300).await; 27 Timer::after_millis(300).await;
29 pwm.set_duty(Channel::Ch1, max / 4); 28 ch1.set_duty_cycle_fraction(1, 4);
30 Timer::after_millis(300).await; 29 Timer::after_millis(300).await;
31 pwm.set_duty(Channel::Ch1, max / 2); 30 ch1.set_duty_cycle_fraction(1, 2);
32 Timer::after_millis(300).await; 31 Timer::after_millis(300).await;
33 pwm.set_duty(Channel::Ch1, max - 1); 32 ch1.set_duty_cycle(ch1.max_duty_cycle() - 1);
34 Timer::after_millis(300).await; 33 Timer::after_millis(300).await;
35 } 34 }
36} 35}