mirror of
https://github.com/rtic-rs/rtic.git
synced 2025-12-19 22:35:19 +01:00
Monotonic rewrite (#874)
* Rework timer_queue and monotonic architecture Goals: * make Monotonic purely internal * make Monotonic purely tick passed, no fugit involved * create a wrapper struct in the user's code via a macro that then converts the "now" from the tick based monotonic to a fugit based timestamp We need to proxy the delay functions of the timer queue anyway, so we could simply perform the conversion in those proxy functions. * Update cargo.lock * Update readme of rtic-time * CI: ESP32: Redact esp_image: Too volatile * Fixup: Changelog double entry rebase mistake --------- Co-authored-by: Henrik Tjäder <henrik@tjaders.com>
This commit is contained in:
parent
e4cc5fd17b
commit
8c23e178f3
54 changed files with 2637 additions and 1676 deletions
|
|
@ -5,6 +5,9 @@
|
|||
|
||||
use nrf52840_blinky::hal;
|
||||
|
||||
use rtic_monotonics::nrf::rtc::prelude::*;
|
||||
nrf_rtc0_monotonic!(Mono);
|
||||
|
||||
#[rtic::app(device = hal::pac, dispatchers = [SWI0_EGU0])]
|
||||
mod app {
|
||||
use super::*;
|
||||
|
|
@ -12,10 +15,6 @@ mod app {
|
|||
use hal::gpio::{Level, Output, Pin, PushPull};
|
||||
use hal::prelude::*;
|
||||
|
||||
use rtic_monotonics::nrf::rtc::Rtc0 as Mono;
|
||||
use rtic_monotonics::nrf::rtc::*;
|
||||
use rtic_monotonics::Monotonic;
|
||||
|
||||
#[shared]
|
||||
struct Shared {}
|
||||
|
||||
|
|
@ -30,8 +29,7 @@ mod app {
|
|||
hal::clocks::Clocks::new(cx.device.CLOCK).start_lfclk();
|
||||
|
||||
// Initialize Monotonic
|
||||
let token = rtic_monotonics::create_nrf_rtc0_monotonic_token!();
|
||||
Mono::start(cx.device.RTC0, token);
|
||||
Mono::start(cx.device.RTC0);
|
||||
|
||||
// Setup LED
|
||||
let port0 = hal::gpio::p0::Parts::new(cx.device.P0);
|
||||
|
|
|
|||
|
|
@ -5,6 +5,9 @@
|
|||
|
||||
use nrf52840_blinky::hal;
|
||||
|
||||
use rtic_monotonics::nrf::timer::prelude::*;
|
||||
nrf_timer0_monotonic!(Mono, 8_000_000);
|
||||
|
||||
#[rtic::app(device = hal::pac, dispatchers = [SWI0_EGU0])]
|
||||
mod app {
|
||||
use super::*;
|
||||
|
|
@ -12,10 +15,6 @@ mod app {
|
|||
use hal::gpio::{Level, Output, Pin, PushPull};
|
||||
use hal::prelude::*;
|
||||
|
||||
use rtic_monotonics::nrf::timer::Timer0 as Mono;
|
||||
use rtic_monotonics::nrf::timer::*;
|
||||
use rtic_monotonics::Monotonic;
|
||||
|
||||
#[shared]
|
||||
struct Shared {}
|
||||
|
||||
|
|
@ -27,8 +26,7 @@ mod app {
|
|||
#[init]
|
||||
fn init(cx: init::Context) -> (Shared, Local) {
|
||||
// Initialize Monotonic
|
||||
let token = rtic_monotonics::create_nrf_timer0_monotonic_token!();
|
||||
Mono::start(cx.device.TIMER0, token);
|
||||
Mono::start(cx.device.TIMER0);
|
||||
|
||||
// Setup LED
|
||||
let port0 = hal::gpio::p0::Parts::new(cx.device.P0);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue