[][src]Struct nrf9160_hal::Timer

pub struct Timer<T, U = OneShot>(_, _);

Interface to a TIMER instance.

Right now, this is a very basic interface. The timer will always be hardcoded to a frequency of 1 MHz and 32 bits accuracy.

CC[0] is used for the current/most-recent delay period and CC[1] is used to grab the current value of the counter at a given instant.

Implementations

impl<T> Timer<T, OneShot> where
    T: Instance
[src]

pub fn one_shot(timer: T) -> Timer<T, OneShot>[src]

pub fn new(timer: T) -> Timer<T, OneShot>[src]

impl<T> Timer<T, Periodic> where
    T: Instance
[src]

pub fn periodic(timer: T) -> Timer<T, Periodic>[src]

impl<T, U> Timer<T, U> where
    T: Instance
[src]

pub const TICKS_PER_SECOND: u32[src]

pub fn into_periodic(self) -> Timer<T, Periodic>[src]

pub fn into_oneshot(self) -> Timer<T, OneShot>[src]

pub fn free(self) -> T[src]

Return the raw interface to the underlying timer peripheral.

pub fn read(&self) -> u32[src]

Return the current value of the counter, by capturing to CC[1].

pub fn enable_interrupt(&mut self)[src]

Enables the interrupt for this timer.

Enables an interrupt that is fired when the timer reaches the value that is given as an argument to start.

Note that the interrupt also has to be unmasked in the NVIC, or the handler won't get called.

pub fn disable_interrupt(&mut self)[src]

Disables the interrupt for this timer.

Disables an interrupt that is fired when the timer reaches the value that is given as an argument to start.

Note that the interrupt also has to be unmasked in the NVIC, or the handler won't get called.

pub fn delay(&mut self, cycles: u32)[src]

pub fn task_start(&self) -> &Reg<u32, _TASKS_START>[src]

Returns reference to the START task endpoint for PPI. Starts timer.

pub fn task_stop(&self) -> &Reg<u32, _TASKS_STOP>[src]

Returns reference to the STOP task endpoint for PPI. Stops timer.

pub fn task_count(&self) -> &Reg<u32, _TASKS_COUNT>[src]

Returns reference to the COUNT task endpoint for PPI. Increments timer (counter mode only).

pub fn task_clear(&self) -> &Reg<u32, _TASKS_CLEAR>[src]

Returns reference to the CLEAR task endpoint for PPI. Clears timer.

pub fn task_capture_cc0(&self) -> &Reg<u32, _TASKS_CAPTURE>[src]

Returns reference to the CC[0] CAPTURE task endpoint for PPI. Captures timer value to the CC[0] register.

pub fn task_capture_cc1(&self) -> &Reg<u32, _TASKS_CAPTURE>[src]

Returns reference to the CC[1] CAPTURE task endpoint for PPI. Captures timer value to the CC[1] register.

pub fn task_capture_cc2(&self) -> &Reg<u32, _TASKS_CAPTURE>[src]

Returns reference to the CC[2] CAPTURE task endpoint for PPI. Captures timer value to the CC[2] register.

pub fn task_capture_cc3(&self) -> &Reg<u32, _TASKS_CAPTURE>[src]

Returns reference to the CC[3] CAPTURE task endpoint for PPI. Captures timer value to the CC[3] register.

pub fn event_compare_cc0(&self) -> &Reg<u32, _EVENTS_COMPARE>[src]

Returns reference to the CC[0] COMPARE event endpoint for PPI. Generated when the counter is incremented and then matches the value specified in the CC[0] register.

pub fn event_compare_cc1(&self) -> &Reg<u32, _EVENTS_COMPARE>[src]

Returns reference to the CC[1] COMPARE event endpoint for PPI. Generated when the counter is incremented and then matches the value specified in the CC[1] register.

pub fn event_compare_cc2(&self) -> &Reg<u32, _EVENTS_COMPARE>[src]

Returns reference to the CC[2] COMPARE event endpoint for PPI. Generated when the counter is incremented and then matches the value specified in the CC[2] register.

pub fn event_compare_cc3(&self) -> &Reg<u32, _EVENTS_COMPARE>[src]

Returns reference to the CC[3] COMPARE event endpoint for PPI. Generated when the counter is incremented and then matches the value specified in the CC[3] register.

Trait Implementations

impl<T, U> Cancel for Timer<T, U> where
    T: Instance
[src]

type Error = ()

Error returned when a countdown can't be canceled.

impl<T, U> CountDown for Timer<T, U> where
    T: Instance
[src]

type Time = u32

The unit of time used by this timer

pub fn start<Time>(&mut self, cycles: Time) where
    Time: Into<<Timer<T, U> as CountDown>::Time>, 
[src]

Start the timer.

The timer will run for the given number of cycles, then it will stop and reset.

pub fn wait(&mut self) -> Result<(), Error<Void>>[src]

Wait for the timer to stop.

Will return Err(nb::Error::WouldBlock) while the timer is still running. Once the timer reached the number of cycles given in the start method, it will return Ok(()).

To block until the timer has stopped, use the block! macro from the nb crate. Please refer to the documentation of nb for other options.

impl<T, U> DelayMs<u16> for Timer<T, U> where
    T: Instance
[src]

impl<T, U> DelayMs<u32> for Timer<T, U> where
    T: Instance
[src]

impl<T, U> DelayMs<u8> for Timer<T, U> where
    T: Instance
[src]

impl<T, U> DelayUs<u16> for Timer<T, U> where
    T: Instance
[src]

impl<T, U> DelayUs<u32> for Timer<T, U> where
    T: Instance
[src]

impl<T, U> DelayUs<u8> for Timer<T, U> where
    T: Instance
[src]

impl<T> Periodic for Timer<T, Periodic> where
    T: Instance
[src]

Auto Trait Implementations

impl<T, U> Send for Timer<T, U> where
    T: Send,
    U: Send

impl<T, U> Sync for Timer<T, U> where
    T: Sync,
    U: Sync

impl<T, U> Unpin for Timer<T, U> where
    T: Unpin,
    U: Unpin

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.