diff --git a/examples/linux.rs b/examples/linux.rs index 05fede9..37b35e9 100644 --- a/examples/linux.rs +++ b/examples/linux.rs @@ -21,5 +21,6 @@ fn main() { // do something else... let seconds = rtc.get_seconds().unwrap(); println!("Seconds: {}", seconds); + let _dev = rtc.destroy_ds3231(); } diff --git a/examples/linux_alarm1.rs b/examples/linux_alarm1.rs new file mode 100644 index 0000000..a59f8ab --- /dev/null +++ b/examples/linux_alarm1.rs @@ -0,0 +1,18 @@ +//! Set the Alarm1 to each week on a week day at a specific time +extern crate linux_embedded_hal as hal; +extern crate ds323x; +use ds323x::{ Ds323x, Hours, WeekdayAlarm1, Alarm1Matching }; + +fn main() { + let dev = hal::I2cdev::new("/dev/i2c-1").unwrap(); + let mut rtc = Ds323x::new_ds3232(dev); + let alarm1 = WeekdayAlarm1 { + weekday: 1, + hour: Hours::H24(7), + minute: 2, + second: 15 + }; + rtc.set_alarm1_weekday(alarm1, Alarm1Matching::AllMatch).unwrap(); + + let _dev = rtc.destroy_ds3232(); +} diff --git a/examples/linux_alarm2.rs b/examples/linux_alarm2.rs new file mode 100644 index 0000000..cfa6c67 --- /dev/null +++ b/examples/linux_alarm2.rs @@ -0,0 +1,23 @@ +//! Set the Alarm2 to each day at the same time and enable interrupts on output. +//! +//! The INT/SQW output pin will be set to 1 when it the alarm matches. + +extern crate linux_embedded_hal as hal; +extern crate ds323x; +use ds323x::{ Ds323x, Hours, DayAlarm2, Alarm2Matching }; + +fn main() { + let dev = hal::Spidev::open("/dev/spidev0.0").unwrap(); + let chip_select = hal::Pin::new(24); + let mut rtc = Ds323x::new_ds3234(dev, chip_select); + let alarm2 = DayAlarm2 { + day: 1, // does not matter given the chosen matching + hour: Hours::AM(11), + minute: 2 + }; + rtc.set_alarm2_day(alarm2, Alarm2Matching::HoursAndMinutesMatch).unwrap(); + rtc.use_int_sqw_output_as_interrupt().unwrap(); + rtc.enable_alarm2_interrupts().unwrap(); + + let (_dev, _chip_select_pin) = rtc.destroy_ds3234(); +}