Fixed Lifetimes in Events & Tasks
This commit is contained in:
parent
93caf97a04
commit
2c5146f19f
@ -96,7 +96,7 @@ impl<'d, G: Group> PpiGroup<'d, G> {
|
|||||||
/// Get a reference to the "enable all" task.
|
/// Get a reference to the "enable all" task.
|
||||||
///
|
///
|
||||||
/// When triggered, it will enable all the channels in this group.
|
/// When triggered, it will enable all the channels in this group.
|
||||||
pub fn task_enable_all(&self) -> Task {
|
pub fn task_enable_all<'s: 'd>(&'d self) -> Task<'s> {
|
||||||
let n = self.g.number();
|
let n = self.g.number();
|
||||||
Task::from_reg(®s().tasks_chg[n].en)
|
Task::from_reg(®s().tasks_chg[n].en)
|
||||||
}
|
}
|
||||||
@ -104,7 +104,7 @@ impl<'d, G: Group> PpiGroup<'d, G> {
|
|||||||
/// Get a reference to the "disable all" task.
|
/// Get a reference to the "disable all" task.
|
||||||
///
|
///
|
||||||
/// When triggered, it will disable all the channels in this group.
|
/// When triggered, it will disable all the channels in this group.
|
||||||
pub fn task_disable_all(&self) -> Task {
|
pub fn task_disable_all<'s: 'd>(&self) -> Task<'s> {
|
||||||
let n = self.g.number();
|
let n = self.g.number();
|
||||||
Task::from_reg(®s().tasks_chg[n].dis)
|
Task::from_reg(®s().tasks_chg[n].dis)
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,7 @@ impl<'d, C: StaticChannel> Ppi<'d, C, 0, 1> {
|
|||||||
|
|
||||||
impl<'d, C: ConfigurableChannel> Ppi<'d, C, 1, 1> {
|
impl<'d, C: ConfigurableChannel> Ppi<'d, C, 1, 1> {
|
||||||
/// Configure PPI channel to trigger `task` on `event`.
|
/// Configure PPI channel to trigger `task` on `event`.
|
||||||
pub fn new_one_to_one(ch: impl Peripheral<P = C> + 'd, event: Event, task: Task) -> Self {
|
pub fn new_one_to_one(ch: impl Peripheral<P = C> + 'd, event: Event<'d>, task: Task<'d>) -> Self {
|
||||||
into_ref!(ch);
|
into_ref!(ch);
|
||||||
|
|
||||||
let r = regs();
|
let r = regs();
|
||||||
@ -49,7 +49,7 @@ impl<'d, C: ConfigurableChannel> Ppi<'d, C, 1, 1> {
|
|||||||
#[cfg(not(feature = "nrf51"))] // Not for nrf51 because of the fork task
|
#[cfg(not(feature = "nrf51"))] // Not for nrf51 because of the fork task
|
||||||
impl<'d, C: ConfigurableChannel> Ppi<'d, C, 1, 2> {
|
impl<'d, C: ConfigurableChannel> Ppi<'d, C, 1, 2> {
|
||||||
/// Configure PPI channel to trigger both `task1` and `task2` on `event`.
|
/// Configure PPI channel to trigger both `task1` and `task2` on `event`.
|
||||||
pub fn new_one_to_two(ch: impl Peripheral<P = C> + 'd, event: Event, task1: Task, task2: Task) -> Self {
|
pub fn new_one_to_two(ch: impl Peripheral<P = C> + 'd, event: Event<'d>, task1: Task<'d>, task2: Task<'d>) -> Self {
|
||||||
into_ref!(ch);
|
into_ref!(ch);
|
||||||
|
|
||||||
let r = regs();
|
let r = regs();
|
||||||
|
@ -168,21 +168,21 @@ impl<'d, T: Instance> Timer<'d, T> {
|
|||||||
/// Returns the START task, for use with PPI.
|
/// Returns the START task, for use with PPI.
|
||||||
///
|
///
|
||||||
/// When triggered, this task starts the timer.
|
/// When triggered, this task starts the timer.
|
||||||
pub fn task_start(&self) -> Task {
|
pub fn task_start<'s: 'd>(&self) -> Task<'s> {
|
||||||
Task::from_reg(&T::regs().tasks_start)
|
Task::from_reg(&T::regs().tasks_start)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns the STOP task, for use with PPI.
|
/// Returns the STOP task, for use with PPI.
|
||||||
///
|
///
|
||||||
/// When triggered, this task stops the timer.
|
/// When triggered, this task stops the timer.
|
||||||
pub fn task_stop(&self) -> Task {
|
pub fn task_stop<'s: 'd>(&self) -> Task<'s> {
|
||||||
Task::from_reg(&T::regs().tasks_stop)
|
Task::from_reg(&T::regs().tasks_stop)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns the CLEAR task, for use with PPI.
|
/// Returns the CLEAR task, for use with PPI.
|
||||||
///
|
///
|
||||||
/// When triggered, this task resets the timer's counter to 0.
|
/// When triggered, this task resets the timer's counter to 0.
|
||||||
pub fn task_clear(&self) -> Task {
|
pub fn task_clear<'s: 'd>(&self) -> Task<'s> {
|
||||||
Task::from_reg(&T::regs().tasks_clear)
|
Task::from_reg(&T::regs().tasks_clear)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -190,7 +190,7 @@ impl<'d, T: Instance> Timer<'d, T> {
|
|||||||
///
|
///
|
||||||
/// When triggered, this task increments the timer's counter by 1.
|
/// When triggered, this task increments the timer's counter by 1.
|
||||||
/// Only works in counter mode.
|
/// Only works in counter mode.
|
||||||
pub fn task_count(&self) -> Task {
|
pub fn task_count<'s: 'd>(&self) -> Task<'s> {
|
||||||
Task::from_reg(&T::regs().tasks_count)
|
Task::from_reg(&T::regs().tasks_count)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -258,14 +258,14 @@ impl<'d, T: Instance> Cc<'d, T> {
|
|||||||
/// Returns this CC register's CAPTURE task, for use with PPI.
|
/// Returns this CC register's CAPTURE task, for use with PPI.
|
||||||
///
|
///
|
||||||
/// When triggered, this task will capture the current value of the timer's counter in this register.
|
/// When triggered, this task will capture the current value of the timer's counter in this register.
|
||||||
pub fn task_capture(&self) -> Task {
|
pub fn task_capture<'s: 'd>(&self) -> Task<'s> {
|
||||||
Task::from_reg(&T::regs().tasks_capture)
|
Task::from_reg(&T::regs().tasks_capture)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns this CC register's COMPARE event, for use with PPI.
|
/// Returns this CC register's COMPARE event, for use with PPI.
|
||||||
///
|
///
|
||||||
/// This event will fire when the timer's counter reaches the value in this CC register.
|
/// This event will fire when the timer's counter reaches the value in this CC register.
|
||||||
pub fn event_compare(&self) -> Event {
|
pub fn event_compare<'s: 'd>(&self) -> Event<'s> {
|
||||||
Event::from_reg(&T::regs().events_compare[self.n])
|
Event::from_reg(&T::regs().events_compare[self.n])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user