aboutsummaryrefslogtreecommitdiff
path: root/examples/mcxa/src/bin/rtc_alarm.rs
diff options
context:
space:
mode:
authorJames Munns <[email protected]>2025-12-04 18:41:46 +0100
committerJames Munns <[email protected]>2025-12-04 18:43:11 +0100
commit277ab0d2e8714edf37a0ee84cda1059d9944ecef (patch)
tree66aa6d80c83cba390e0be15d3a43907ba65aa96b /examples/mcxa/src/bin/rtc_alarm.rs
parentdc6bf5d44675f6f2013ddfab6b14df25a996a965 (diff)
Move examples to top level example folder
Diffstat (limited to 'examples/mcxa/src/bin/rtc_alarm.rs')
-rw-r--r--examples/mcxa/src/bin/rtc_alarm.rs47
1 files changed, 47 insertions, 0 deletions
diff --git a/examples/mcxa/src/bin/rtc_alarm.rs b/examples/mcxa/src/bin/rtc_alarm.rs
new file mode 100644
index 000000000..fe355888b
--- /dev/null
+++ b/examples/mcxa/src/bin/rtc_alarm.rs
@@ -0,0 +1,47 @@
1#![no_std]
2#![no_main]
3
4use embassy_executor::Spawner;
5use embassy_mcxa::bind_interrupts;
6use hal::rtc::{InterruptHandler, Rtc, RtcDateTime};
7use {defmt_rtt as _, embassy_mcxa as hal, panic_probe as _};
8
9bind_interrupts!(struct Irqs {
10 RTC => InterruptHandler<hal::rtc::Rtc0>;
11});
12
13#[embassy_executor::main]
14async fn main(_spawner: Spawner) {
15 let p = hal::init(hal::config::Config::default());
16
17 defmt::info!("=== RTC Alarm Example ===");
18
19 let rtc_config = hal::rtc::get_default_config();
20
21 let mut rtc = Rtc::new(p.RTC0, Irqs, rtc_config);
22
23 let now = RtcDateTime {
24 year: 2025,
25 month: 10,
26 day: 15,
27 hour: 14,
28 minute: 30,
29 second: 0,
30 };
31
32 rtc.stop();
33
34 defmt::info!("Time set to: 2025-10-15 14:30:00");
35 rtc.set_datetime(now);
36
37 let mut alarm = now;
38 alarm.second += 10;
39
40 defmt::info!("Alarm set for: 2025-10-15 14:30:10 (+10 seconds)");
41 defmt::info!("RTC started, waiting for alarm...");
42
43 rtc.wait_for_alarm(alarm).await;
44 defmt::info!("*** ALARM TRIGGERED! ***");
45
46 defmt::info!("Example complete - Test PASSED!");
47}