diff options
| author | Bob McWhirter <[email protected]> | 2021-08-03 13:57:18 -0400 |
|---|---|---|
| committer | Bob McWhirter <[email protected]> | 2021-08-03 13:57:18 -0400 |
| commit | d7409d63e8fc2b69430c769c7090681cea901141 (patch) | |
| tree | 3ea823e1614ef7e7dfc87d2cb936a3ca84c5c59f /examples/stm32h7/src/bin/dac.rs | |
| parent | ad62900a4004f53f7831547bcc75a564d5b8d2ad (diff) | |
Enhance Rcc configuration to be more fluentish.
Clean up H7 examples to remove all vegan HALs and PACs.
Diffstat (limited to 'examples/stm32h7/src/bin/dac.rs')
| -rw-r--r-- | examples/stm32h7/src/bin/dac.rs | 43 |
1 files changed, 12 insertions, 31 deletions
diff --git a/examples/stm32h7/src/bin/dac.rs b/examples/stm32h7/src/bin/dac.rs index 330f69aa1..f1df5425d 100644 --- a/examples/stm32h7/src/bin/dac.rs +++ b/examples/stm32h7/src/bin/dac.rs | |||
| @@ -13,44 +13,24 @@ use embassy_stm32::gpio::NoPin; | |||
| 13 | use example_common::*; | 13 | use example_common::*; |
| 14 | 14 | ||
| 15 | use cortex_m_rt::entry; | 15 | use cortex_m_rt::entry; |
| 16 | use embassy_stm32::Config; | ||
| 17 | use embassy_stm32::rcc; | ||
| 16 | use embassy_stm32::dac::{Channel, Dac, Value}; | 18 | use embassy_stm32::dac::{Channel, Dac, Value}; |
| 17 | use stm32h7::stm32h743 as pac; | 19 | use embassy_stm32::time::U32Ext; |
| 18 | use stm32h7xx_hal::prelude::*; | ||
| 19 | 20 | ||
| 20 | #[entry] | 21 | #[entry] |
| 21 | fn main() -> ! { | 22 | fn main() -> ! { |
| 22 | info!("Hello World, dude!"); | 23 | info!("Hello World, dude!"); |
| 23 | 24 | ||
| 24 | let pp = pac::Peripherals::take().unwrap(); | 25 | let p = embassy_stm32::init(Config::default().rcc( |
| 26 | rcc::Config::default() | ||
| 27 | .sys_ck(400.mhz()) | ||
| 28 | .pll1_q(100.mhz()) | ||
| 29 | )); | ||
| 25 | 30 | ||
| 26 | let pwrcfg = pp.PWR.constrain().freeze(); | 31 | unsafe { |
| 27 | 32 | Dbgmcu::enable_all(); | |
| 28 | let rcc = pp.RCC.constrain(); | 33 | } |
| 29 | |||
| 30 | rcc.sys_ck(96.mhz()) | ||
| 31 | .pclk1(48.mhz()) | ||
| 32 | .pclk2(48.mhz()) | ||
| 33 | .pclk3(48.mhz()) | ||
| 34 | .pclk4(48.mhz()) | ||
| 35 | .pll1_q_ck(48.mhz()) | ||
| 36 | .freeze(pwrcfg, &pp.SYSCFG); | ||
| 37 | |||
| 38 | let pp = unsafe { pac::Peripherals::steal() }; | ||
| 39 | |||
| 40 | pp.DBGMCU.cr.modify(|_, w| { | ||
| 41 | w.dbgsleep_d1().set_bit(); | ||
| 42 | w.dbgstby_d1().set_bit(); | ||
| 43 | w.dbgstop_d1().set_bit(); | ||
| 44 | w.d1dbgcken().set_bit(); | ||
| 45 | w | ||
| 46 | }); | ||
| 47 | |||
| 48 | pp.RCC.apb1lenr.modify(|_, w| { | ||
| 49 | w.dac12en().set_bit(); | ||
| 50 | w | ||
| 51 | }); | ||
| 52 | |||
| 53 | let p = embassy_stm32::init(Default::default()); | ||
| 54 | 34 | ||
| 55 | let mut dac = Dac::new(p.DAC1, p.PA4, NoPin); | 35 | let mut dac = Dac::new(p.DAC1, p.PA4, NoPin); |
| 56 | 36 | ||
| @@ -63,6 +43,7 @@ fn main() -> ! { | |||
| 63 | } | 43 | } |
| 64 | 44 | ||
| 65 | use micromath::F32Ext; | 45 | use micromath::F32Ext; |
| 46 | use embassy_stm32::dbgmcu::Dbgmcu; | ||
| 66 | 47 | ||
| 67 | fn to_sine_wave(v: u8) -> u8 { | 48 | fn to_sine_wave(v: u8) -> u8 { |
| 68 | if v >= 128 { | 49 | if v >= 128 { |
