pub struct TIMER1 { /* private fields */ }Expand description
Controls time and alarms time is a 64 bit value indicating the time since power-on timeh is the top 32 bits of time & timel is the bottom 32 bits to change time write to timelw before timehw to read time read from timelr before timehr An alarm is set by setting alarm_enable and writing to the corresponding alarm register When an alarm is pending, the corresponding alarm_running signal will be high An alarm can be cancelled before it has finished by clearing the alarm_enable When an alarm fires, the corresponding alarm_irq is set and alarm_running is cleared To clear the interrupt write a 1 to the corresponding alarm_irq The timer can be locked to prevent writing
Implementations§
Source§impl TIMER1
impl TIMER1
Sourcepub const PTR: *const RegisterBlock = {0x400b8000 as *const rp235x_hal::rp235x_pac::timer0::RegisterBlock}
pub const PTR: *const RegisterBlock = {0x400b8000 as *const rp235x_hal::rp235x_pac::timer0::RegisterBlock}
Pointer to the register block
Sourcepub const fn ptr() -> *const RegisterBlock
pub const fn ptr() -> *const RegisterBlock
Return the pointer to the register block
Sourcepub unsafe fn steal() -> TIMER1
pub unsafe fn steal() -> TIMER1
Steal an instance of this peripheral
§Safety
Ensure that the new instance of the peripheral cannot be used in a way that may race with any existing instances, for example by only accessing read-only or write-only registers, or by consuming the original peripheral and using critical sections to coordinate access between multiple new instances.
Additionally, other software such as HALs may rely on only one peripheral instance existing to ensure memory safety; ensure no stolen instances are passed to such software.
Methods from Deref<Target = RegisterBlock>§
Sourcepub fn timehw(&self) -> &Reg<TIMEHW_SPEC>
pub fn timehw(&self) -> &Reg<TIMEHW_SPEC>
0x00 - Write to bits 63:32 of time always write timelw before timehw
Sourcepub fn timelw(&self) -> &Reg<TIMELW_SPEC>
pub fn timelw(&self) -> &Reg<TIMELW_SPEC>
0x04 - Write to bits 31:0 of time writes do not get copied to time until timehw is written
Sourcepub fn timehr(&self) -> &Reg<TIMEHR_SPEC>
pub fn timehr(&self) -> &Reg<TIMEHR_SPEC>
0x08 - Read from bits 63:32 of time always read timelr before timehr
Sourcepub fn timelr(&self) -> &Reg<TIMELR_SPEC>
pub fn timelr(&self) -> &Reg<TIMELR_SPEC>
0x0c - Read from bits 31:0 of time
Sourcepub fn alarm0(&self) -> &Reg<ALARM0_SPEC>
pub fn alarm0(&self) -> &Reg<ALARM0_SPEC>
0x10 - Arm alarm 0, and configure the time it will fire. Once armed, the alarm fires when TIMER_ALARM0 == TIMELR. The alarm will disarm itself once it fires, and can be disarmed early using the ARMED status register.
Sourcepub fn alarm1(&self) -> &Reg<ALARM1_SPEC>
pub fn alarm1(&self) -> &Reg<ALARM1_SPEC>
0x14 - Arm alarm 1, and configure the time it will fire. Once armed, the alarm fires when TIMER_ALARM1 == TIMELR. The alarm will disarm itself once it fires, and can be disarmed early using the ARMED status register.
Sourcepub fn alarm2(&self) -> &Reg<ALARM2_SPEC>
pub fn alarm2(&self) -> &Reg<ALARM2_SPEC>
0x18 - Arm alarm 2, and configure the time it will fire. Once armed, the alarm fires when TIMER_ALARM2 == TIMELR. The alarm will disarm itself once it fires, and can be disarmed early using the ARMED status register.
Sourcepub fn alarm3(&self) -> &Reg<ALARM3_SPEC>
pub fn alarm3(&self) -> &Reg<ALARM3_SPEC>
0x1c - Arm alarm 3, and configure the time it will fire. Once armed, the alarm fires when TIMER_ALARM3 == TIMELR. The alarm will disarm itself once it fires, and can be disarmed early using the ARMED status register.
Sourcepub fn armed(&self) -> &Reg<ARMED_SPEC>
pub fn armed(&self) -> &Reg<ARMED_SPEC>
0x20 - Indicates the armed/disarmed status of each alarm. A write to the corresponding ALARMx register arms the alarm. Alarms automatically disarm upon firing, but writing ones here will disarm immediately without waiting to fire.
Sourcepub fn timerawh(&self) -> &Reg<TIMERAWH_SPEC>
pub fn timerawh(&self) -> &Reg<TIMERAWH_SPEC>
0x24 - Raw read from bits 63:32 of time (no side effects)
Sourcepub fn timerawl(&self) -> &Reg<TIMERAWL_SPEC>
pub fn timerawl(&self) -> &Reg<TIMERAWL_SPEC>
0x28 - Raw read from bits 31:0 of time (no side effects)
Sourcepub fn dbgpause(&self) -> &Reg<DBGPAUSE_SPEC>
pub fn dbgpause(&self) -> &Reg<DBGPAUSE_SPEC>
0x2c - Set bits high to enable pause when the corresponding debug ports are active
Sourcepub fn pause(&self) -> &Reg<PAUSE_SPEC>
pub fn pause(&self) -> &Reg<PAUSE_SPEC>
0x30 - Set high to pause the timer
Sourcepub fn locked(&self) -> &Reg<LOCKED_SPEC>
pub fn locked(&self) -> &Reg<LOCKED_SPEC>
0x34 - Set locked bit to disable write access to timer Once set, cannot be cleared (without a reset)
Sourcepub fn source(&self) -> &Reg<SOURCE_SPEC>
pub fn source(&self) -> &Reg<SOURCE_SPEC>
0x38 - Selects the source for the timer. Defaults to the normal tick configured in the ticks block (typically configured to 1 microsecond). Writing to 1 will ignore the tick and count clk_sys cycles instead.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for TIMER1
impl RefUnwindSafe for TIMER1
impl !Sync for TIMER1
impl Unpin for TIMER1
impl UnwindSafe for TIMER1
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more