29 lines
		
	
	
		
			718 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			718 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 embassy_nrf::Peripherals;
 | |
| 
 | |
| use defmt_rtt as _; // global logger
 | |
| use panic_probe as _;
 | |
| 
 | |
| #[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");
 | |
|     }
 | |
| }
 |