embassy-nrf

Crates

git

Versions

nrf52840

Flavors

embassy_nrf::timer

Struct Timer

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

nRF Timer driver.

The timer has an internal counter, which is incremented for every tick of the timer. The counter is 32-bit, so it wraps back to 0 when it reaches 2^32.

It has either 4 or 6 Capture/Compare registers, which can be used to capture the current state of the counter or trigger an event when the counter reaches a certain value. Timer driver.

Implementations§

Source§

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

Source

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

Create a new Timer driver.

This can be useful for triggering tasks via PPI Uarte uses this internally.

Source

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

Create a new Timer driver in counter mode.

This can be useful for triggering tasks via PPI Uarte uses this internally.

Source

pub fn start(&self)

Starts the timer.

Source

pub fn stop(&self)

Stops the timer.

Source

pub fn clear(&self)

Reset the timer’s counter to 0.

Source

pub fn task_start(&self) -> Task<'d>

Returns the START task, for use with PPI.

When triggered, this task starts the timer.

Source

pub fn task_stop(&self) -> Task<'d>

Returns the STOP task, for use with PPI.

When triggered, this task stops the timer.

Source

pub fn task_clear(&self) -> Task<'d>

Returns the CLEAR task, for use with PPI.

When triggered, this task resets the timer’s counter to 0.

Source

pub fn task_count(&self) -> Task<'d>

Returns the COUNT task, for use with PPI.

When triggered, this task increments the timer’s counter by 1. Only works in counter mode.

Source

pub fn set_frequency(&self, frequency: Frequency)

Change the timer’s frequency.

This will stop the timer if it isn’t already stopped, because the timer may exhibit ‘unpredictable behaviour’ if it’s frequency is changed while it’s running.

Source

pub fn cc(&self, n: usize) -> Cc<'d, T>

Returns this timer’s nth CC register.

§Panics

Panics if n >= the number of CC registers this timer has (4 for a normal timer, 6 for an extended timer).

Auto Trait Implementations§

§

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

§

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

§

impl<'d, T> Send for Timer<'d, T>

§

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

§

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

§

impl<'d, T> !UnwindSafe for Timer<'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.