aboutsummaryrefslogtreecommitdiff
path: root/examples/stm32h7/src/bin/dac.rs
diff options
context:
space:
mode:
authorBob McWhirter <[email protected]>2021-08-03 13:57:18 -0400
committerBob McWhirter <[email protected]>2021-08-03 13:57:18 -0400
commitd7409d63e8fc2b69430c769c7090681cea901141 (patch)
tree3ea823e1614ef7e7dfc87d2cb936a3ca84c5c59f /examples/stm32h7/src/bin/dac.rs
parentad62900a4004f53f7831547bcc75a564d5b8d2ad (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.rs43
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;
13use example_common::*; 13use example_common::*;
14 14
15use cortex_m_rt::entry; 15use cortex_m_rt::entry;
16use embassy_stm32::Config;
17use embassy_stm32::rcc;
16use embassy_stm32::dac::{Channel, Dac, Value}; 18use embassy_stm32::dac::{Channel, Dac, Value};
17use stm32h7::stm32h743 as pac; 19use embassy_stm32::time::U32Ext;
18use stm32h7xx_hal::prelude::*;
19 20
20#[entry] 21#[entry]
21fn main() -> ! { 22fn 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
65use micromath::F32Ext; 45use micromath::F32Ext;
46use embassy_stm32::dbgmcu::Dbgmcu;
66 47
67fn to_sine_wave(v: u8) -> u8 { 48fn to_sine_wave(v: u8) -> u8 {
68 if v >= 128 { 49 if v >= 128 {