rp-hal-boards/rp2040-hal/src/timer.rs

25 lines
595 B
Rust
Raw Normal View History

2021-08-15 08:10:39 +10:00
//! Timer Peripheral
// See [Chapter 4 Section 6](https://datasheets.raspberrypi.org/rp2040/rp2040_datasheet.pdf) for more details
2021-08-15 08:10:39 +10:00
use crate::pac::TIMER;
/// Timer peripheral
pub struct Timer {
timer: TIMER,
}
impl Timer {
/// Create a new [`Timer`]
pub fn new(timer: TIMER) -> Self {
Self { timer }
}
/// Get the current counter value.
pub fn get_counter(&self) -> u64 {
// latched read, low before high
let lo = self.timer.timelr.read().bits();
let hi = self.timer.timehr.read().bits();
(hi as u64) << 32 | lo as u64
}
}