aboutsummaryrefslogtreecommitdiff
path: root/examples/mcxa
diff options
context:
space:
mode:
Diffstat (limited to 'examples/mcxa')
-rw-r--r--examples/mcxa/src/bin/clkout.rs26
1 files changed, 23 insertions, 3 deletions
diff --git a/examples/mcxa/src/bin/clkout.rs b/examples/mcxa/src/bin/clkout.rs
index e6e6a2d3d..c0e8c330d 100644
--- a/examples/mcxa/src/bin/clkout.rs
+++ b/examples/mcxa/src/bin/clkout.rs
@@ -4,7 +4,7 @@
4use embassy_executor::Spawner; 4use embassy_executor::Spawner;
5use embassy_mcxa::clkout::{ClockOut, ClockOutSel, Config, Div4}; 5use embassy_mcxa::clkout::{ClockOut, ClockOutSel, Config, Div4};
6use embassy_mcxa::clocks::PoweredClock; 6use embassy_mcxa::clocks::PoweredClock;
7use embassy_mcxa::clocks::config::{SoscConfig, SoscMode}; 7use embassy_mcxa::clocks::config::{SoscConfig, SoscMode, SpllConfig, SpllMode, SpllSource};
8use embassy_mcxa::gpio::{DriveStrength, Level, Output, SlewRate}; 8use embassy_mcxa::gpio::{DriveStrength, Level, Output, SlewRate};
9use embassy_time::Timer; 9use embassy_time::Timer;
10use {defmt_rtt as _, embassy_mcxa as hal, panic_probe as _}; 10use {defmt_rtt as _, embassy_mcxa as hal, panic_probe as _};
@@ -18,6 +18,19 @@ async fn main(_spawner: Spawner) {
18 frequency: 8_000_000, 18 frequency: 8_000_000,
19 power: PoweredClock::NormalEnabledDeepSleepDisabled, 19 power: PoweredClock::NormalEnabledDeepSleepDisabled,
20 }); 20 });
21 cfg.clock_cfg.spll = Some(SpllConfig {
22 source: SpllSource::Sirc,
23 // 12MHz
24 // 12 x 32 => 384MHz
25 // 384 / (16 x 2) => 12.0MHz
26 mode: SpllMode::Mode1b {
27 m_mult: 32,
28 p_div: 16,
29 bypass_p2_div: false,
30 },
31 power: PoweredClock::NormalEnabledDeepSleepDisabled,
32 pll1_clk_div: None,
33 });
21 34
22 let p = hal::init(cfg); 35 let p = hal::init(cfg);
23 36
@@ -39,11 +52,18 @@ async fn main(_spawner: Spawner) {
39 div: const { Div4::from_divisor(16).unwrap() }, 52 div: const { Div4::from_divisor(16).unwrap() },
40 level: PoweredClock::NormalEnabledDeepSleepDisabled, 53 level: PoweredClock::NormalEnabledDeepSleepDisabled,
41 }; 54 };
55 const M1_CONFIG: Config = Config {
56 sel: ClockOutSel::Pll1Clk,
57 div: const { Div4::from_divisor(12).unwrap() },
58 level: PoweredClock::NormalEnabledDeepSleepDisabled,
59 };
42 60
61 #[rustfmt::skip]
43 let configs = [ 62 let configs = [
44 ("16K -> /1 = 16K", K16_CONFIG), 63 ("16K -> /1 = 16K", K16_CONFIG),
45 ("12M -> /3 = 4M", M4_CONFIG), 64 ("12M -> /3 = 4M", M4_CONFIG),
46 ("8M -> /16 = 512K", K512_CONFIG), 65 ("8M -> /16 = 512K", K512_CONFIG),
66 ("12M-> /12 = 1M", M1_CONFIG),
47 ]; 67 ];
48 68
49 loop { 69 loop {