27 lines
		
	
	
		
			711 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			711 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| #![no_std]
 | |
| #![no_main]
 | |
| #![feature(type_alias_impl_trait)]
 | |
| 
 | |
| use defmt::info;
 | |
| use embassy_executor::Spawner;
 | |
| use embassy_nrf::interrupt;
 | |
| use embassy_nrf::timer::Timer;
 | |
| use {defmt_rtt as _, panic_probe as _};
 | |
| 
 | |
| #[embassy_executor::main]
 | |
| async fn main(_spawner: Spawner) {
 | |
|     let p = embassy_nrf::init(Default::default());
 | |
|     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");
 | |
|     }
 | |
| }
 |