aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorGrant Miller <[email protected]>2022-07-10 17:36:10 -0500
committerGrant Miller <[email protected]>2022-07-10 21:46:45 -0500
commit5ecbe5c9181d2392540a3273f21d53c01474d341 (patch)
treea3d6b547795b38c3b4fd3fcff29f225ccb230ef8 /examples
parent9753f767946d79c5987c166e513150aca98ec042 (diff)
embassy-stm32: Simplify time
- Remove unused `MilliSeconds`, `MicroSeconds`, and `NanoSeconds` types - Remove `Bps`, `KiloHertz`, and `MegaHertz` types that were only used for converting to `Hertz` - Replace all instances of `impl Into<Hertz>` with `Hertz` - Add `hz`, `khz`, and `mhz` methods to `Hertz`, as well as free function shortcuts - Remove `U32Ext` extension trait
Diffstat (limited to 'examples')
-rw-r--r--examples/stm32f3/src/bin/usb_serial.rs10
-rw-r--r--examples/stm32f4/src/bin/pwm.rs4
-rw-r--r--examples/stm32f4/src/bin/sdmmc.rs6
-rw-r--r--examples/stm32f7/src/bin/eth.rs4
-rw-r--r--examples/stm32f7/src/bin/sdmmc.rs6
-rw-r--r--examples/stm32g4/src/bin/pwm.rs4
-rw-r--r--examples/stm32h7/src/bin/adc.rs8
-rw-r--r--examples/stm32h7/src/bin/camera.rs18
-rw-r--r--examples/stm32h7/src/bin/dac.rs8
-rw-r--r--examples/stm32h7/src/bin/eth.rs8
-rw-r--r--examples/stm32h7/src/bin/fmc.rs8
-rw-r--r--examples/stm32h7/src/bin/low_level_timer_api.rs24
-rw-r--r--examples/stm32h7/src/bin/pwm.rs18
-rw-r--r--examples/stm32h7/src/bin/sdmmc.rs6
-rw-r--r--examples/stm32h7/src/bin/spi.rs10
-rw-r--r--examples/stm32h7/src/bin/spi_dma.rs10
-rw-r--r--examples/stm32l0/src/bin/lorawan.rs4
17 files changed, 78 insertions, 78 deletions
diff --git a/examples/stm32f3/src/bin/usb_serial.rs b/examples/stm32f3/src/bin/usb_serial.rs
index 8a76d4546..463d561ec 100644
--- a/examples/stm32f3/src/bin/usb_serial.rs
+++ b/examples/stm32f3/src/bin/usb_serial.rs
@@ -6,7 +6,7 @@ use defmt::{panic, *};
6use embassy::executor::Spawner; 6use embassy::executor::Spawner;
7use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
8use embassy_stm32::gpio::{Level, Output, Speed}; 8use embassy_stm32::gpio::{Level, Output, Speed};
9use embassy_stm32::time::U32Ext; 9use embassy_stm32::time::mhz;
10use embassy_stm32::usb::{Driver, Instance}; 10use embassy_stm32::usb::{Driver, Instance};
11use embassy_stm32::{interrupt, Config, Peripherals}; 11use embassy_stm32::{interrupt, Config, Peripherals};
12use embassy_usb::driver::EndpointError; 12use embassy_usb::driver::EndpointError;
@@ -18,10 +18,10 @@ use {defmt_rtt as _, panic_probe as _};
18fn config() -> Config { 18fn config() -> Config {
19 let mut config = Config::default(); 19 let mut config = Config::default();
20 20
21 config.rcc.hse = Some(8.mhz().into()); 21 config.rcc.hse = Some(mhz(8));
22 config.rcc.sysclk = Some(48.mhz().into()); 22 config.rcc.sysclk = Some(mhz(48));
23 config.rcc.pclk1 = Some(24.mhz().into()); 23 config.rcc.pclk1 = Some(mhz(24));
24 config.rcc.pclk2 = Some(24.mhz().into()); 24 config.rcc.pclk2 = Some(mhz(24));
25 config.rcc.pll48 = true; 25 config.rcc.pll48 = true;
26 26
27 config 27 config
diff --git a/examples/stm32f4/src/bin/pwm.rs b/examples/stm32f4/src/bin/pwm.rs
index cd20c68bb..c99f3cc26 100644
--- a/examples/stm32f4/src/bin/pwm.rs
+++ b/examples/stm32f4/src/bin/pwm.rs
@@ -7,7 +7,7 @@ use embassy::executor::Spawner;
7use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
8use embassy_stm32::pwm::simple_pwm::SimplePwm; 8use embassy_stm32::pwm::simple_pwm::SimplePwm;
9use embassy_stm32::pwm::Channel; 9use embassy_stm32::pwm::Channel;
10use embassy_stm32::time::U32Ext; 10use embassy_stm32::time::khz;
11use embassy_stm32::Peripherals; 11use embassy_stm32::Peripherals;
12use {defmt_rtt as _, panic_probe as _}; 12use {defmt_rtt as _, panic_probe as _};
13 13
@@ -15,7 +15,7 @@ use {defmt_rtt as _, panic_probe as _};
15async fn main(_spawner: Spawner, p: Peripherals) { 15async fn main(_spawner: Spawner, p: Peripherals) {
16 info!("Hello World!"); 16 info!("Hello World!");
17 17
18 let mut pwm = SimplePwm::new_1ch(p.TIM1, p.PE9, 10000.hz()); 18 let mut pwm = SimplePwm::new_1ch(p.TIM1, p.PE9, khz(10));
19 let max = pwm.get_max_duty(); 19 let max = pwm.get_max_duty();
20 pwm.enable(Channel::Ch1); 20 pwm.enable(Channel::Ch1);
21 21
diff --git a/examples/stm32f4/src/bin/sdmmc.rs b/examples/stm32f4/src/bin/sdmmc.rs
index b08d26f49..665670261 100644
--- a/examples/stm32f4/src/bin/sdmmc.rs
+++ b/examples/stm32f4/src/bin/sdmmc.rs
@@ -5,13 +5,13 @@
5use defmt::*; 5use defmt::*;
6use embassy::executor::Spawner; 6use embassy::executor::Spawner;
7use embassy_stm32::sdmmc::Sdmmc; 7use embassy_stm32::sdmmc::Sdmmc;
8use embassy_stm32::time::U32Ext; 8use embassy_stm32::time::mhz;
9use embassy_stm32::{interrupt, Config, Peripherals}; 9use embassy_stm32::{interrupt, Config, Peripherals};
10use {defmt_rtt as _, panic_probe as _}; 10use {defmt_rtt as _, panic_probe as _};
11 11
12fn config() -> Config { 12fn config() -> Config {
13 let mut config = Config::default(); 13 let mut config = Config::default();
14 config.rcc.sys_ck = Some(48.mhz().into()); 14 config.rcc.sys_ck = Some(mhz(48));
15 config 15 config
16} 16}
17 17
@@ -32,7 +32,7 @@ async fn main(_spawner: Spawner, p: Peripherals) -> ! {
32 // Should print 400kHz for initialization 32 // Should print 400kHz for initialization
33 info!("Configured clock: {}", sdmmc.clock().0); 33 info!("Configured clock: {}", sdmmc.clock().0);
34 34
35 unwrap!(sdmmc.init_card(25.mhz()).await); 35 unwrap!(sdmmc.init_card(mhz(25)).await);
36 36
37 let card = unwrap!(sdmmc.card()); 37 let card = unwrap!(sdmmc.card());
38 38
diff --git a/examples/stm32f7/src/bin/eth.rs b/examples/stm32f7/src/bin/eth.rs
index dc0b3c605..177683c3a 100644
--- a/examples/stm32f7/src/bin/eth.rs
+++ b/examples/stm32f7/src/bin/eth.rs
@@ -12,7 +12,7 @@ use embassy_stm32::eth::generic_smi::GenericSMI;
12use embassy_stm32::eth::{Ethernet, State}; 12use embassy_stm32::eth::{Ethernet, State};
13use embassy_stm32::peripherals::ETH; 13use embassy_stm32::peripherals::ETH;
14use embassy_stm32::rng::Rng; 14use embassy_stm32::rng::Rng;
15use embassy_stm32::time::U32Ext; 15use embassy_stm32::time::mhz;
16use embassy_stm32::{interrupt, Config, Peripherals}; 16use embassy_stm32::{interrupt, Config, Peripherals};
17use embedded_io::asynch::Write; 17use embedded_io::asynch::Write;
18use rand_core::RngCore; 18use rand_core::RngCore;
@@ -35,7 +35,7 @@ async fn net_task(stack: &'static Stack<Device>) -> ! {
35 35
36fn config() -> Config { 36fn config() -> Config {
37 let mut config = Config::default(); 37 let mut config = Config::default();
38 config.rcc.sys_ck = Some(200.mhz().into()); 38 config.rcc.sys_ck = Some(mhz(200));
39 config 39 config
40} 40}
41 41
diff --git a/examples/stm32f7/src/bin/sdmmc.rs b/examples/stm32f7/src/bin/sdmmc.rs
index 1af1061ba..011e1fd95 100644
--- a/examples/stm32f7/src/bin/sdmmc.rs
+++ b/examples/stm32f7/src/bin/sdmmc.rs
@@ -5,13 +5,13 @@
5use defmt::*; 5use defmt::*;
6use embassy::executor::Spawner; 6use embassy::executor::Spawner;
7use embassy_stm32::sdmmc::Sdmmc; 7use embassy_stm32::sdmmc::Sdmmc;
8use embassy_stm32::time::U32Ext; 8use embassy_stm32::time::mhz;
9use embassy_stm32::{interrupt, Config, Peripherals}; 9use embassy_stm32::{interrupt, Config, Peripherals};
10use {defmt_rtt as _, panic_probe as _}; 10use {defmt_rtt as _, panic_probe as _};
11 11
12fn config() -> Config { 12fn config() -> Config {
13 let mut config = Config::default(); 13 let mut config = Config::default();
14 config.rcc.sys_ck = Some(200.mhz().into()); 14 config.rcc.sys_ck = Some(mhz(200));
15 config 15 config
16} 16}
17 17
@@ -32,7 +32,7 @@ async fn main(_spawner: Spawner, p: Peripherals) -> ! {
32 // Should print 400kHz for initialization 32 // Should print 400kHz for initialization
33 info!("Configured clock: {}", sdmmc.clock().0); 33 info!("Configured clock: {}", sdmmc.clock().0);
34 34
35 unwrap!(sdmmc.init_card(25.mhz()).await); 35 unwrap!(sdmmc.init_card(mhz(25)).await);
36 36
37 let card = unwrap!(sdmmc.card()); 37 let card = unwrap!(sdmmc.card());
38 38
diff --git a/examples/stm32g4/src/bin/pwm.rs b/examples/stm32g4/src/bin/pwm.rs
index 525b6001f..579e289b0 100644
--- a/examples/stm32g4/src/bin/pwm.rs
+++ b/examples/stm32g4/src/bin/pwm.rs
@@ -7,7 +7,7 @@ use embassy::executor::Spawner;
7use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
8use embassy_stm32::pwm::simple_pwm::SimplePwm; 8use embassy_stm32::pwm::simple_pwm::SimplePwm;
9use embassy_stm32::pwm::Channel; 9use embassy_stm32::pwm::Channel;
10use embassy_stm32::time::U32Ext; 10use embassy_stm32::time::khz;
11use embassy_stm32::Peripherals; 11use embassy_stm32::Peripherals;
12use {defmt_rtt as _, panic_probe as _}; 12use {defmt_rtt as _, panic_probe as _};
13 13
@@ -15,7 +15,7 @@ use {defmt_rtt as _, panic_probe as _};
15async fn main(_spawner: Spawner, p: Peripherals) { 15async fn main(_spawner: Spawner, p: Peripherals) {
16 info!("Hello World!"); 16 info!("Hello World!");
17 17
18 let mut pwm = SimplePwm::new_1ch(p.TIM2, p.PA5, 10000.hz()); 18 let mut pwm = SimplePwm::new_1ch(p.TIM2, p.PA5, khz(10));
19 let max = pwm.get_max_duty(); 19 let max = pwm.get_max_duty();
20 pwm.enable(Channel::Ch1); 20 pwm.enable(Channel::Ch1);
21 21
diff --git a/examples/stm32h7/src/bin/adc.rs b/examples/stm32h7/src/bin/adc.rs
index e24390741..ce73364c0 100644
--- a/examples/stm32h7/src/bin/adc.rs
+++ b/examples/stm32h7/src/bin/adc.rs
@@ -7,15 +7,15 @@ use embassy::executor::Spawner;
7use embassy::time::{Delay, Duration, Timer}; 7use embassy::time::{Delay, Duration, Timer};
8use embassy_stm32::adc::{Adc, SampleTime}; 8use embassy_stm32::adc::{Adc, SampleTime};
9use embassy_stm32::rcc::AdcClockSource; 9use embassy_stm32::rcc::AdcClockSource;
10use embassy_stm32::time::U32Ext; 10use embassy_stm32::time::mhz;
11use embassy_stm32::{Config, Peripherals}; 11use embassy_stm32::{Config, Peripherals};
12use {defmt_rtt as _, panic_probe as _}; 12use {defmt_rtt as _, panic_probe as _};
13 13
14pub fn config() -> Config { 14pub fn config() -> Config {
15 let mut config = Config::default(); 15 let mut config = Config::default();
16 config.rcc.sys_ck = Some(400.mhz().into()); 16 config.rcc.sys_ck = Some(mhz(400));
17 config.rcc.hclk = Some(200.mhz().into()); 17 config.rcc.hclk = Some(mhz(200));
18 config.rcc.per_ck = Some(64.mhz().into()); 18 config.rcc.per_ck = Some(mhz(64));
19 config.rcc.adc_clock_source = AdcClockSource::PerCk; 19 config.rcc.adc_clock_source = AdcClockSource::PerCk;
20 config 20 config
21} 21}
diff --git a/examples/stm32h7/src/bin/camera.rs b/examples/stm32h7/src/bin/camera.rs
index 918eab659..0d0179e62 100644
--- a/examples/stm32h7/src/bin/camera.rs
+++ b/examples/stm32h7/src/bin/camera.rs
@@ -8,20 +8,20 @@ use embassy_stm32::dcmi::{self, *};
8use embassy_stm32::gpio::{Level, Output, Speed}; 8use embassy_stm32::gpio::{Level, Output, Speed};
9use embassy_stm32::i2c::I2c; 9use embassy_stm32::i2c::I2c;
10use embassy_stm32::rcc::{Mco, Mco1Source, McoClock}; 10use embassy_stm32::rcc::{Mco, Mco1Source, McoClock};
11use embassy_stm32::time::U32Ext; 11use embassy_stm32::time::{khz, mhz};
12use embassy_stm32::{interrupt, Config, Peripherals}; 12use embassy_stm32::{interrupt, Config, Peripherals};
13use {defmt_rtt as _, panic_probe as _}; 13use {defmt_rtt as _, panic_probe as _};
14 14
15#[allow(unused)] 15#[allow(unused)]
16pub fn config() -> Config { 16pub fn config() -> Config {
17 let mut config = Config::default(); 17 let mut config = Config::default();
18 config.rcc.sys_ck = Some(400.mhz().into()); 18 config.rcc.sys_ck = Some(mhz(400));
19 config.rcc.hclk = Some(400.mhz().into()); 19 config.rcc.hclk = Some(mhz(400));
20 config.rcc.pll1.q_ck = Some(100.mhz().into()); 20 config.rcc.pll1.q_ck = Some(mhz(100));
21 config.rcc.pclk1 = Some(100.mhz().into()); 21 config.rcc.pclk1 = Some(mhz(100));
22 config.rcc.pclk2 = Some(100.mhz().into()); 22 config.rcc.pclk2 = Some(mhz(100));
23 config.rcc.pclk3 = Some(100.mhz().into()); 23 config.rcc.pclk3 = Some(mhz(100));
24 config.rcc.pclk4 = Some(100.mhz().into()); 24 config.rcc.pclk4 = Some(mhz(100));
25 config 25 config
26} 26}
27 27
@@ -39,7 +39,7 @@ async fn main(_spawner: Spawner, p: Peripherals) {
39 39
40 let mut led = Output::new(p.PE3, Level::High, Speed::Low); 40 let mut led = Output::new(p.PE3, Level::High, Speed::Low);
41 let i2c_irq = interrupt::take!(I2C1_EV); 41 let i2c_irq = interrupt::take!(I2C1_EV);
42 let cam_i2c = I2c::new(p.I2C1, p.PB8, p.PB9, i2c_irq, p.DMA1_CH1, p.DMA1_CH2, 100u32.khz()); 42 let cam_i2c = I2c::new(p.I2C1, p.PB8, p.PB9, i2c_irq, p.DMA1_CH1, p.DMA1_CH2, khz(100));
43 43
44 let mut camera = Ov7725::new(cam_i2c, mco); 44 let mut camera = Ov7725::new(cam_i2c, mco);
45 45
diff --git a/examples/stm32h7/src/bin/dac.rs b/examples/stm32h7/src/bin/dac.rs
index 8ed33350c..dece74bba 100644
--- a/examples/stm32h7/src/bin/dac.rs
+++ b/examples/stm32h7/src/bin/dac.rs
@@ -5,15 +5,15 @@
5use cortex_m_rt::entry; 5use cortex_m_rt::entry;
6use defmt::*; 6use defmt::*;
7use embassy_stm32::dac::{Channel, Dac, Value}; 7use embassy_stm32::dac::{Channel, Dac, Value};
8use embassy_stm32::time::U32Ext; 8use embassy_stm32::time::mhz;
9use embassy_stm32::Config; 9use embassy_stm32::Config;
10use {defmt_rtt as _, panic_probe as _}; 10use {defmt_rtt as _, panic_probe as _};
11 11
12pub fn config() -> Config { 12pub fn config() -> Config {
13 let mut config = Config::default(); 13 let mut config = Config::default();
14 config.rcc.sys_ck = Some(400.mhz().into()); 14 config.rcc.sys_ck = Some(mhz(400));
15 config.rcc.hclk = Some(200.mhz().into()); 15 config.rcc.hclk = Some(mhz(200));
16 config.rcc.pll1.q_ck = Some(100.mhz().into()); 16 config.rcc.pll1.q_ck = Some(mhz(100));
17 config 17 config
18} 18}
19 19
diff --git a/examples/stm32h7/src/bin/eth.rs b/examples/stm32h7/src/bin/eth.rs
index 6dabadc4b..556d472bd 100644
--- a/examples/stm32h7/src/bin/eth.rs
+++ b/examples/stm32h7/src/bin/eth.rs
@@ -12,7 +12,7 @@ use embassy_stm32::eth::generic_smi::GenericSMI;
12use embassy_stm32::eth::{Ethernet, State}; 12use embassy_stm32::eth::{Ethernet, State};
13use embassy_stm32::peripherals::ETH; 13use embassy_stm32::peripherals::ETH;
14use embassy_stm32::rng::Rng; 14use embassy_stm32::rng::Rng;
15use embassy_stm32::time::U32Ext; 15use embassy_stm32::time::mhz;
16use embassy_stm32::{interrupt, Config, Peripherals}; 16use embassy_stm32::{interrupt, Config, Peripherals};
17use embedded_io::asynch::Write; 17use embedded_io::asynch::Write;
18use rand_core::RngCore; 18use rand_core::RngCore;
@@ -35,9 +35,9 @@ async fn net_task(stack: &'static Stack<Device>) -> ! {
35 35
36pub fn config() -> Config { 36pub fn config() -> Config {
37 let mut config = Config::default(); 37 let mut config = Config::default();
38 config.rcc.sys_ck = Some(400.mhz().into()); 38 config.rcc.sys_ck = Some(mhz(400));
39 config.rcc.hclk = Some(200.mhz().into()); 39 config.rcc.hclk = Some(mhz(200));
40 config.rcc.pll1.q_ck = Some(100.mhz().into()); 40 config.rcc.pll1.q_ck = Some(mhz(100));
41 config 41 config
42} 42}
43 43
diff --git a/examples/stm32h7/src/bin/fmc.rs b/examples/stm32h7/src/bin/fmc.rs
index 2f55479c1..27c715ab0 100644
--- a/examples/stm32h7/src/bin/fmc.rs
+++ b/examples/stm32h7/src/bin/fmc.rs
@@ -6,15 +6,15 @@ use defmt::*;
6use embassy::executor::Spawner; 6use embassy::executor::Spawner;
7use embassy::time::{Delay, Duration, Timer}; 7use embassy::time::{Delay, Duration, Timer};
8use embassy_stm32::fmc::Fmc; 8use embassy_stm32::fmc::Fmc;
9use embassy_stm32::time::U32Ext; 9use embassy_stm32::time::mhz;
10use embassy_stm32::{Config, Peripherals}; 10use embassy_stm32::{Config, Peripherals};
11use {defmt_rtt as _, panic_probe as _}; 11use {defmt_rtt as _, panic_probe as _};
12 12
13pub fn config() -> Config { 13pub fn config() -> Config {
14 let mut config = Config::default(); 14 let mut config = Config::default();
15 config.rcc.sys_ck = Some(400.mhz().into()); 15 config.rcc.sys_ck = Some(mhz(400));
16 config.rcc.hclk = Some(200.mhz().into()); 16 config.rcc.hclk = Some(mhz(200));
17 config.rcc.pll1.q_ck = Some(100.mhz().into()); 17 config.rcc.pll1.q_ck = Some(mhz(100));
18 config 18 config
19} 19}
20 20
diff --git a/examples/stm32h7/src/bin/low_level_timer_api.rs b/examples/stm32h7/src/bin/low_level_timer_api.rs
index 3a728a0dd..fc19d84e4 100644
--- a/examples/stm32h7/src/bin/low_level_timer_api.rs
+++ b/examples/stm32h7/src/bin/low_level_timer_api.rs
@@ -10,19 +10,19 @@ use embassy::time::{Duration, Timer};
10use embassy_stm32::gpio::low_level::AFType; 10use embassy_stm32::gpio::low_level::AFType;
11use embassy_stm32::gpio::Speed; 11use embassy_stm32::gpio::Speed;
12use embassy_stm32::pwm::*; 12use embassy_stm32::pwm::*;
13use embassy_stm32::time::{Hertz, U32Ext}; 13use embassy_stm32::time::{khz, mhz, Hertz};
14use embassy_stm32::{unborrow, Config, Peripherals, Unborrow}; 14use embassy_stm32::{unborrow, Config, Peripherals, Unborrow};
15use {defmt_rtt as _, panic_probe as _}; 15use {defmt_rtt as _, panic_probe as _};
16 16
17pub fn config() -> Config { 17pub fn config() -> Config {
18 let mut config = Config::default(); 18 let mut config = Config::default();
19 config.rcc.sys_ck = Some(400.mhz().into()); 19 config.rcc.sys_ck = Some(mhz(400));
20 config.rcc.hclk = Some(400.mhz().into()); 20 config.rcc.hclk = Some(mhz(400));
21 config.rcc.pll1.q_ck = Some(100.mhz().into()); 21 config.rcc.pll1.q_ck = Some(mhz(100));
22 config.rcc.pclk1 = Some(100.mhz().into()); 22 config.rcc.pclk1 = Some(mhz(100));
23 config.rcc.pclk2 = Some(100.mhz().into()); 23 config.rcc.pclk2 = Some(mhz(100));
24 config.rcc.pclk3 = Some(100.mhz().into()); 24 config.rcc.pclk3 = Some(mhz(100));
25 config.rcc.pclk4 = Some(100.mhz().into()); 25 config.rcc.pclk4 = Some(mhz(100));
26 config 26 config
27} 27}
28 28
@@ -30,7 +30,7 @@ pub fn config() -> Config {
30async fn main(_spawner: Spawner, p: Peripherals) { 30async fn main(_spawner: Spawner, p: Peripherals) {
31 info!("Hello World!"); 31 info!("Hello World!");
32 32
33 let mut pwm = SimplePwm32::new(p.TIM5, p.PA0, p.PA1, p.PA2, p.PA3, 10000.hz()); 33 let mut pwm = SimplePwm32::new(p.TIM5, p.PA0, p.PA1, p.PA2, p.PA3, khz(10));
34 let max = pwm.get_max_duty(); 34 let max = pwm.get_max_duty();
35 pwm.enable(Channel::Ch1); 35 pwm.enable(Channel::Ch1);
36 36
@@ -54,13 +54,13 @@ pub struct SimplePwm32<'d, T: CaptureCompare32bitInstance> {
54} 54}
55 55
56impl<'d, T: CaptureCompare32bitInstance> SimplePwm32<'d, T> { 56impl<'d, T: CaptureCompare32bitInstance> SimplePwm32<'d, T> {
57 pub fn new<F: Into<Hertz>>( 57 pub fn new(
58 tim: impl Unborrow<Target = T> + 'd, 58 tim: impl Unborrow<Target = T> + 'd,
59 ch1: impl Unborrow<Target = impl Channel1Pin<T>> + 'd, 59 ch1: impl Unborrow<Target = impl Channel1Pin<T>> + 'd,
60 ch2: impl Unborrow<Target = impl Channel2Pin<T>> + 'd, 60 ch2: impl Unborrow<Target = impl Channel2Pin<T>> + 'd,
61 ch3: impl Unborrow<Target = impl Channel3Pin<T>> + 'd, 61 ch3: impl Unborrow<Target = impl Channel3Pin<T>> + 'd,
62 ch4: impl Unborrow<Target = impl Channel4Pin<T>> + 'd, 62 ch4: impl Unborrow<Target = impl Channel4Pin<T>> + 'd,
63 freq: F, 63 freq: Hertz,
64 ) -> Self { 64 ) -> Self {
65 unborrow!(tim, ch1, ch2, ch3, ch4); 65 unborrow!(tim, ch1, ch2, ch3, ch4);
66 66
@@ -115,7 +115,7 @@ impl<'d, T: CaptureCompare32bitInstance> SimplePwm32<'d, T> {
115 } 115 }
116 } 116 }
117 117
118 pub fn set_freq<F: Into<Hertz>>(&mut self, freq: F) { 118 pub fn set_freq(&mut self, freq: Hertz) {
119 <T as embassy_stm32::timer::low_level::GeneralPurpose32bitInstance>::set_frequency(&mut self.inner, freq); 119 <T as embassy_stm32::timer::low_level::GeneralPurpose32bitInstance>::set_frequency(&mut self.inner, freq);
120 } 120 }
121 121
diff --git a/examples/stm32h7/src/bin/pwm.rs b/examples/stm32h7/src/bin/pwm.rs
index 0e85b8d80..f072c5375 100644
--- a/examples/stm32h7/src/bin/pwm.rs
+++ b/examples/stm32h7/src/bin/pwm.rs
@@ -7,19 +7,19 @@ use embassy::executor::Spawner;
7use embassy::time::{Duration, Timer}; 7use embassy::time::{Duration, Timer};
8use embassy_stm32::pwm::simple_pwm::SimplePwm; 8use embassy_stm32::pwm::simple_pwm::SimplePwm;
9use embassy_stm32::pwm::Channel; 9use embassy_stm32::pwm::Channel;
10use embassy_stm32::time::U32Ext; 10use embassy_stm32::time::{khz, mhz};
11use embassy_stm32::{Config, Peripherals}; 11use embassy_stm32::{Config, Peripherals};
12use {defmt_rtt as _, panic_probe as _}; 12use {defmt_rtt as _, panic_probe as _};
13 13
14pub fn config() -> Config { 14pub fn config() -> Config {
15 let mut config = Config::default(); 15 let mut config = Config::default();
16 config.rcc.sys_ck = Some(400.mhz().into()); 16 config.rcc.sys_ck = Some(mhz(400));
17 config.rcc.hclk = Some(400.mhz().into()); 17 config.rcc.hclk = Some(mhz(400));
18 config.rcc.pll1.q_ck = Some(100.mhz().into()); 18 config.rcc.pll1.q_ck = Some(mhz(100));
19 config.rcc.pclk1 = Some(100.mhz().into()); 19 config.rcc.pclk1 = Some(mhz(100));
20 config.rcc.pclk2 = Some(100.mhz().into()); 20 config.rcc.pclk2 = Some(mhz(100));
21 config.rcc.pclk3 = Some(100.mhz().into()); 21 config.rcc.pclk3 = Some(mhz(100));
22 config.rcc.pclk4 = Some(100.mhz().into()); 22 config.rcc.pclk4 = Some(mhz(100));
23 config 23 config
24} 24}
25 25
@@ -27,7 +27,7 @@ pub fn config() -> Config {
27async fn main(_spawner: Spawner, p: Peripherals) { 27async fn main(_spawner: Spawner, p: Peripherals) {
28 info!("Hello World!"); 28 info!("Hello World!");
29 29
30 let mut pwm = SimplePwm::new_1ch(p.TIM3, p.PA6, 10000.hz()); 30 let mut pwm = SimplePwm::new_1ch(p.TIM3, p.PA6, khz(10));
31 let max = pwm.get_max_duty(); 31 let max = pwm.get_max_duty();
32 pwm.enable(Channel::Ch1); 32 pwm.enable(Channel::Ch1);
33 33
diff --git a/examples/stm32h7/src/bin/sdmmc.rs b/examples/stm32h7/src/bin/sdmmc.rs
index 4a74780f4..787f700ae 100644
--- a/examples/stm32h7/src/bin/sdmmc.rs
+++ b/examples/stm32h7/src/bin/sdmmc.rs
@@ -5,13 +5,13 @@
5use defmt::*; 5use defmt::*;
6use embassy::executor::Spawner; 6use embassy::executor::Spawner;
7use embassy_stm32::sdmmc::Sdmmc; 7use embassy_stm32::sdmmc::Sdmmc;
8use embassy_stm32::time::U32Ext; 8use embassy_stm32::time::mhz;
9use embassy_stm32::{interrupt, Config, Peripherals}; 9use embassy_stm32::{interrupt, Config, Peripherals};
10use {defmt_rtt as _, panic_probe as _}; 10use {defmt_rtt as _, panic_probe as _};
11 11
12fn config() -> Config { 12fn config() -> Config {
13 let mut config = Config::default(); 13 let mut config = Config::default();
14 config.rcc.sys_ck = Some(200.mhz().into()); 14 config.rcc.sys_ck = Some(mhz(200));
15 config 15 config
16} 16}
17 17
@@ -31,7 +31,7 @@ async fn main(_spawner: Spawner, p: Peripherals) -> ! {
31 // Should print 400kHz for initialization 31 // Should print 400kHz for initialization
32 info!("Configured clock: {}", sdmmc.clock().0); 32 info!("Configured clock: {}", sdmmc.clock().0);
33 33
34 unwrap!(sdmmc.init_card(25.mhz()).await); 34 unwrap!(sdmmc.init_card(mhz(25)).await);
35 35
36 let card = unwrap!(sdmmc.card()); 36 let card = unwrap!(sdmmc.card());
37 37
diff --git a/examples/stm32h7/src/bin/spi.rs b/examples/stm32h7/src/bin/spi.rs
index d4ee44292..f2eb5a3be 100644
--- a/examples/stm32h7/src/bin/spi.rs
+++ b/examples/stm32h7/src/bin/spi.rs
@@ -11,16 +11,16 @@ use embassy::executor::Executor;
11use embassy::util::Forever; 11use embassy::util::Forever;
12use embassy_stm32::dma::NoDma; 12use embassy_stm32::dma::NoDma;
13use embassy_stm32::peripherals::SPI3; 13use embassy_stm32::peripherals::SPI3;
14use embassy_stm32::time::U32Ext; 14use embassy_stm32::time::mhz;
15use embassy_stm32::{spi, Config}; 15use embassy_stm32::{spi, Config};
16use heapless::String; 16use heapless::String;
17use {defmt_rtt as _, panic_probe as _}; 17use {defmt_rtt as _, panic_probe as _};
18 18
19pub fn config() -> Config { 19pub fn config() -> Config {
20 let mut config = Config::default(); 20 let mut config = Config::default();
21 config.rcc.sys_ck = Some(400.mhz().into()); 21 config.rcc.sys_ck = Some(mhz(400));
22 config.rcc.hclk = Some(200.mhz().into()); 22 config.rcc.hclk = Some(mhz(200));
23 config.rcc.pll1.q_ck = Some(100.mhz().into()); 23 config.rcc.pll1.q_ck = Some(mhz(100));
24 config 24 config
25} 25}
26 26
@@ -54,7 +54,7 @@ fn main() -> ! {
54 p.PB4, 54 p.PB4,
55 NoDma, 55 NoDma,
56 NoDma, 56 NoDma,
57 1.mhz(), 57 mhz(1),
58 spi::Config::default(), 58 spi::Config::default(),
59 ); 59 );
60 60
diff --git a/examples/stm32h7/src/bin/spi_dma.rs b/examples/stm32h7/src/bin/spi_dma.rs
index 003bc7add..d72051fda 100644
--- a/examples/stm32h7/src/bin/spi_dma.rs
+++ b/examples/stm32h7/src/bin/spi_dma.rs
@@ -10,16 +10,16 @@ use defmt::*;
10use embassy::executor::Executor; 10use embassy::executor::Executor;
11use embassy::util::Forever; 11use embassy::util::Forever;
12use embassy_stm32::peripherals::{DMA1_CH3, DMA1_CH4, SPI3}; 12use embassy_stm32::peripherals::{DMA1_CH3, DMA1_CH4, SPI3};
13use embassy_stm32::time::U32Ext; 13use embassy_stm32::time::mhz;
14use embassy_stm32::{spi, Config}; 14use embassy_stm32::{spi, Config};
15use heapless::String; 15use heapless::String;
16use {defmt_rtt as _, panic_probe as _}; 16use {defmt_rtt as _, panic_probe as _};
17 17
18pub fn config() -> Config { 18pub fn config() -> Config {
19 let mut config = Config::default(); 19 let mut config = Config::default();
20 config.rcc.sys_ck = Some(400.mhz().into()); 20 config.rcc.sys_ck = Some(mhz(400));
21 config.rcc.hclk = Some(200.mhz().into()); 21 config.rcc.hclk = Some(mhz(200));
22 config.rcc.pll1.q_ck = Some(100.mhz().into()); 22 config.rcc.pll1.q_ck = Some(mhz(100));
23 config 23 config
24} 24}
25 25
@@ -50,7 +50,7 @@ fn main() -> ! {
50 p.PB4, 50 p.PB4,
51 p.DMA1_CH3, 51 p.DMA1_CH3,
52 p.DMA1_CH4, 52 p.DMA1_CH4,
53 1.mhz(), 53 mhz(1),
54 spi::Config::default(), 54 spi::Config::default(),
55 ); 55 );
56 56
diff --git a/examples/stm32l0/src/bin/lorawan.rs b/examples/stm32l0/src/bin/lorawan.rs
index 8b7e8f824..da58e2f72 100644
--- a/examples/stm32l0/src/bin/lorawan.rs
+++ b/examples/stm32l0/src/bin/lorawan.rs
@@ -11,7 +11,7 @@ use embassy_lora::LoraTimer;
11use embassy_stm32::exti::ExtiInput; 11use embassy_stm32::exti::ExtiInput;
12use embassy_stm32::gpio::{Input, Level, Output, Pull, Speed}; 12use embassy_stm32::gpio::{Input, Level, Output, Pull, Speed};
13use embassy_stm32::rng::Rng; 13use embassy_stm32::rng::Rng;
14use embassy_stm32::time::U32Ext; 14use embassy_stm32::time::khz;
15use embassy_stm32::{spi, Peripherals}; 15use embassy_stm32::{spi, Peripherals};
16use lorawan::default_crypto::DefaultFactory as Crypto; 16use lorawan::default_crypto::DefaultFactory as Crypto;
17use lorawan_device::async_device::{region, Device, JoinMode}; 17use lorawan_device::async_device::{region, Device, JoinMode};
@@ -34,7 +34,7 @@ async fn main(_spawner: embassy::executor::Spawner, p: Peripherals) {
34 p.PA6, 34 p.PA6,
35 p.DMA1_CH3, 35 p.DMA1_CH3,
36 p.DMA1_CH2, 36 p.DMA1_CH2,
37 200_000.hz(), 37 khz(200),
38 spi::Config::default(), 38 spi::Config::default(),
39 ); 39 );
40 40