embassy-rp

Crates

git

Versions

rp2040

Flavors

embassy_rp::rtc

Struct Rtc

Source
pub struct Rtc<'d, T: Instance> { /* private fields */ }
Expand description

A reference to the real time clock of the system

Implementations§

Source§

impl<'d, T: Instance> Rtc<'d, T>

Source

pub fn new(inner: impl Peripheral<P = T> + 'd) -> Self

Create a new instance of the real time clock, with the given date as an initial value.

§Errors

Will return RtcError::InvalidDateTime if the datetime is not a valid range.

Source

pub fn set_leap_year_check(&mut self, leap_year_check_enabled: bool)

Enable or disable the leap year check. The rp2040 chip will always add a Feb 29th on every year that is divisable by 4, but this may be incorrect (e.g. on century years). This function allows you to disable this check.

Leap year checking is enabled by default.

Source

pub fn restore(&mut self, ymd: Rtc1, hms: Rtc0)

Set the time from internal format

Source

pub fn save(&mut self) -> (Rtc1, Rtc0)

Get the time in internal format

Source

pub fn is_running(&self) -> bool

Checks to see if this Rtc is running

Source

pub fn set_datetime(&mut self, t: DateTime) -> Result<(), RtcError>

Set the datetime to a new value.

§Errors

Will return RtcError::InvalidDateTime if the datetime is not a valid range.

Source

pub fn now(&self) -> Result<DateTime, RtcError>

Return the current datetime.

§Errors

Will return an RtcError::InvalidDateTime if the stored value in the system is not a valid DayOfWeek.

Source

pub fn disable_alarm(&mut self)

Disable the alarm that was scheduled with schedule_alarm.

Source

pub fn schedule_alarm(&mut self, filter: DateTimeFilter)

Schedule an alarm. The filter determines at which point in time this alarm is set.

Keep in mind that the filter only triggers on the specified time. If you want to schedule this alarm every minute, you have to call:

let now = real_time_clock.now().unwrap();
real_time_clock.schedule_alarm(
    DateTimeFilter::default()
        .minute(if now.minute == 59 { 0 } else { now.minute + 1 })
);
Source

pub fn clear_interrupt(&mut self)

Clear the interrupt. This should be called every time the RTC_IRQ interrupt is triggered, or the next schedule_alarm will never fire.

Auto Trait Implementations§

§

impl<'d, T> Freeze for Rtc<'d, T>
where T: Freeze,

§

impl<'d, T> RefUnwindSafe for Rtc<'d, T>
where T: RefUnwindSafe,

§

impl<'d, T> Send for Rtc<'d, T>
where T: Send,

§

impl<'d, T> Sync for Rtc<'d, T>
where T: Sync,

§

impl<'d, T> Unpin for Rtc<'d, T>
where T: Unpin,

§

impl<'d, T> !UnwindSafe for Rtc<'d, T>

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> Az for T

Source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
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<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

Source§

fn cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> CheckedAs for T

Source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

Source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
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<Src, Dst> LosslessTryInto<Dst> for Src
where Dst: LosslessTryFrom<Src>,

Source§

fn lossless_try_into(self) -> Option<Dst>

Performs the conversion.
Source§

impl<Src, Dst> LossyInto<Dst> for Src
where Dst: LossyFrom<Src>,

Source§

fn lossy_into(self) -> Dst

Performs the conversion.
Source§

impl<T> OverflowingAs for T

Source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

Source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> SaturatingAs for T

Source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

Source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
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.
Source§

impl<T> UnwrappedAs for T

Source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

Source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> WrappingAs for T

Source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

Source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.