From 0de8f5b8b774609f6e99176c8fff1571efbbaba7 Mon Sep 17 00:00:00 2001 From: Diego Barrios Romero Date: Sat, 3 Nov 2018 08:11:53 +0100 Subject: [PATCH] Add examples of setting alarms --- src/lib.rs | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index 6bae675..8cc4926 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -388,6 +388,50 @@ //! rtc.set_temperature_conversion_rate(TempConvRate::_128s).unwrap(); //! # } //! ``` +//! +//! ### Set the Alarm1 to each week on a week day at a specific time +//! +//! ```no_run +//! 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_ds3231(dev); +//! let alarm1 = WeekdayAlarm1 { +//! weekday: 1, +//! hour: Hours::H24(7), +//! minute: 2, +//! second: 15 +//! }; +//! rtc.set_alarm1_weekday(alarm1, Alarm1Matching::AllMatch).unwrap(); +//! # } +//! ``` +//! +//! ### 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. +//! +//! ```no_run +//! extern crate linux_embedded_hal as hal; +//! extern crate ds323x; +//! use ds323x::{ Ds323x, Hours, DateAlarm2, Alarm2Matching }; +//! +//! # fn main() { +//! let dev = hal::I2cdev::new("/dev/i2c-1").unwrap(); +//! let mut rtc = Ds323x::new_ds3231(dev); +//! let alarm2 = DateAlarm2 { +//! date: 1, // does not matter given the chosen matching +//! hour: Hours::AM(11), +//! minute: 2 +//! }; +//! rtc.set_alarm2_date(alarm2, Alarm2Matching::HoursAndMinutesMatch).unwrap(); +//! rtc.use_int_sqw_output_as_interrupt().unwrap(); +//! rtc.enable_alarm2_interrupts().unwrap(); +//! # } +//! ``` + #![deny(unsafe_code)] #![deny(missing_docs)]