2021-09-02 10:02:31 +00:00
|
|
|
#![no_std]
|
|
|
|
#![no_main]
|
|
|
|
#![feature(type_alias_impl_trait)]
|
|
|
|
|
2022-04-02 02:35:06 +00:00
|
|
|
use defmt::info;
|
|
|
|
use embassy::executor::Spawner;
|
2021-09-02 10:02:31 +00:00
|
|
|
use embassy_nrf::interrupt;
|
|
|
|
use embassy_nrf::timer::Timer;
|
|
|
|
use embassy_nrf::Peripherals;
|
|
|
|
|
2022-04-02 02:35:06 +00:00
|
|
|
use defmt_rtt as _; // global logger
|
|
|
|
use panic_probe as _;
|
2021-09-02 10:02:31 +00:00
|
|
|
|
|
|
|
#[embassy::main]
|
|
|
|
async fn main(_spawner: Spawner, p: Peripherals) {
|
|
|
|
let mut t = Timer::new_awaitable(p.TIMER0, interrupt::take!(TIMER0));
|
|
|
|
// default frequency is 1MHz, so this triggers every second
|
|
|
|
t.cc(0).write(1_000_000);
|
|
|
|
// clear the timer value on cc[0] compare match
|
|
|
|
t.cc(0).short_compare_clear();
|
|
|
|
t.start();
|
|
|
|
|
|
|
|
loop {
|
|
|
|
// wait for compare match
|
|
|
|
t.cc(0).wait().await;
|
|
|
|
info!("hardware timer tick");
|
|
|
|
}
|
|
|
|
}
|