36 lines
		
	
	
		
			823 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			823 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| #![no_std]
 | |
| #![no_main]
 | |
| 
 | |
| use chrono::{NaiveDate, NaiveDateTime};
 | |
| use defmt::*;
 | |
| use embassy_executor::Spawner;
 | |
| use embassy_stm32::rtc::{Rtc, RtcConfig};
 | |
| use embassy_stm32::Config;
 | |
| use embassy_time::Timer;
 | |
| use {defmt_rtt as _, panic_probe as _};
 | |
| 
 | |
| #[embassy_executor::main]
 | |
| async fn main(_spawner: Spawner) {
 | |
|     let config = Config::default();
 | |
|     let p = embassy_stm32::init(config);
 | |
| 
 | |
|     info!("Hello World!");
 | |
| 
 | |
|     let now = NaiveDate::from_ymd_opt(2020, 5, 15)
 | |
|         .unwrap()
 | |
|         .and_hms_opt(10, 30, 15)
 | |
|         .unwrap();
 | |
| 
 | |
|     let mut rtc = Rtc::new(p.RTC, RtcConfig::default());
 | |
| 
 | |
|     rtc.set_datetime(now.into()).expect("datetime not set");
 | |
| 
 | |
|     loop {
 | |
|         let now: NaiveDateTime = rtc.now().unwrap().into();
 | |
| 
 | |
|         info!("{}", now.and_utc().timestamp());
 | |
| 
 | |
|         Timer::after_millis(1000).await;
 | |
|     }
 | |
| }
 |