Struct Rtc

Source
pub struct Rtc {
    pub regs: RTC,
    /* private fields */
}
Expand description

Real Time Clock peripheral

Fields§

§regs: RTC

RTC Peripheral register

Implementations§

Source§

impl Rtc

Source

pub fn new(regs: RTC, pwr: &mut PWR) -> Self

Create and enable a new RTC with external crystal or ceramic resonator and default prescalers.

Source

pub fn with_config( regs: RTC, pwr: &mut PWR, clock_source: impl Into<ClockSource>, prediv_s: u16, prediv_a: u8, ) -> Self

Create and enable a new RTC, and configure its clock source and prescalers.

From AN3371, Table 3, set prediv_s to 255 (249 for LSI), and prediv_a to 127 to get a calendar clock of 1Hz.

Source

pub fn new_lsi(regs: RTC, pwr: &mut PWR) -> Self

Create and enable a new RTC with internal crystal and default prescalers.

Source

pub fn lsi_with_config( regs: RTC, pwr: &mut PWR, prediv_s: u16, prediv_a: u8, ) -> Self

Create and enable a new RTC, and configure its clock source and prescalers.

From AN3371, Table 3, when using the LSI, set prediv_s to 249, and prediv_a to 127 to get a calendar clock of 1Hz.

Source

pub fn set_prescalers(&mut self, prediv_s: u16, prediv_a: u8)

Source

pub fn set_time(&mut self, time: &Time) -> Result<(), Error>

Set the time using time::Time.

Source

pub fn set_seconds(&mut self, seconds: u8) -> Result<(), Error>

Set the seconds [0-59].

Source

pub fn set_minutes(&mut self, minutes: u8) -> Result<(), Error>

Set the minutes [0-59].

Source

pub fn set_hours(&mut self, hours: u8) -> Result<(), Error>

Set the hours [0-23].

Source

pub fn set_weekday(&mut self, weekday: u8) -> Result<(), Error>

Set the day of week [1-7].

Source

pub fn set_day(&mut self, day: u8) -> Result<(), Error>

Set the day of month [1-31].

Source

pub fn set_month(&mut self, month: u8) -> Result<(), Error>

Set the month [1-12].

Source

pub fn set_year(&mut self, year: u16) -> Result<(), Error>

Set the year [1970-2069].

The year cannot be less than 1970, since the Unix epoch is assumed (1970-01-01 00:00:00). Also, the year cannot be greater than 2069 since the RTC range is 0 - 99.

Source

pub fn set_date(&mut self, date: &Date) -> Result<(), Error>

Set the date.

The year cannot be less than 1970, since the Unix epoch is assumed (1970-01-01 00:00:00). Also, the year cannot be greater than 2069 since the RTC range is 0 - 99.

Source

pub fn set_datetime(&mut self, date: &PrimitiveDateTime) -> Result<(), Error>

Set the date and time.

The year cannot be less than 1970, since the Unix epoch is assumed (1970-01-01 00:00:00). Also, the year cannot be greater than 2069 since the RTC range is 0 - 99.

Source

pub fn get_datetime(&mut self) -> PrimitiveDateTime

Source

pub fn enable_wakeup(&mut self, interval: MicrosDurationU64)

Configures the wakeup timer to trigger periodically every interval duration

§Panics

Panics if interval is greater than 2¹⁷-1 seconds.

Source

pub fn disable_wakeup(&mut self)

Disables the wakeup timer

Source

pub fn enable_vbat_timestamp(&mut self)

Configures the timestamp to be captured when the RTC switches to Vbat power

Source

pub fn disable_timestamp(&mut self)

Disables the timestamp

Source

pub fn read_timestamp(&self) -> PrimitiveDateTime

Reads the stored value of the timestamp if present

Clears the timestamp interrupt flags.

Source

pub fn set_alarm( &mut self, alarm: Alarm, date: impl Into<AlarmDay>, time: Time, ) -> Result<(), Error>

Sets the time at which an alarm will be triggered This also clears the alarm flag if it is set

Source

pub fn listen(&mut self, exti: &mut EXTI, event: Event)

Start listening for event

Source

pub fn unlisten(&mut self, exti: &mut EXTI, event: Event)

Stop listening for event

Source

pub fn is_pending(&self, event: Event) -> bool

Returns true if event is pending

Source

pub fn clear_interrupt(&mut self, event: Event)

Clears the interrupt flag for event

Trait Implementations§

Source§

impl Debug for Rtc

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Format for Rtc

Source§

fn format(&self, f: Formatter<'_>)

Writes the defmt representation of self to fmt.

Auto Trait Implementations§

§

impl Freeze for Rtc

§

impl RefUnwindSafe for Rtc

§

impl Send for Rtc

§

impl !Sync for Rtc

§

impl Unpin for Rtc

§

impl UnwindSafe for Rtc

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.