#![no_std]
#![no_main]
#[rtic::app(device = board, peripherals = false)]
mod app {
use imxrt_hal as hal;
const PIT_DELAY_MS: u32 = board::PIT_FREQUENCY / 1_000 * 250;
#[shared]
struct Shared {}
#[local]
struct Local {
led: board::Led,
pit: hal::pit::Pit<2>,
}
#[init]
fn init(_: init::Context) -> (Shared, Local) {
let (
board::Common {
pit: (_, _, mut pit, _),
..
},
board::Specifics { led, .. },
) = board::new();
pit.set_interrupt_enable(true);
pit.set_load_timer_value(PIT_DELAY_MS);
pit.enable();
(Shared {}, Local { led, pit })
}
#[task(binds = BOARD_PIT, local = [led, pit])]
fn toggle_led(cx: toggle_led::Context) {
let pit = cx.local.pit;
let led = cx.local.led;
led.toggle();
while pit.is_elapsed() {
pit.clear_elapsed();
}
}
}