#![no_std] #![no_main] use embassy_executor::Spawner; use embassy_time::Timer; use embedded_graphics::draw_target::DrawTargetExt; use log::error; use crate::display::CoMoDisplay; mod display; mod init; #[embassy_executor::main] async fn main(spawner: Spawner) { let p = init::hardware_init(); init::logger::init_logger(spawner, p.USB); let Ok(mag) = init::i2c_sensor::init_sensor(p.I2C1, p.PIN_14, p.PIN_15).await else { error!("Failed to init sensor"); init::reboot().await; return; }; let Ok(mut display) = init::spi_display::init_display(p.SPI0, p.PIN_6, p.PIN_7, p.PIN_5, p.PIN_9, p.PIN_10).await else { error!("Failed to init display"); init::reboot().await; return; }; let mut como_display = CoMoDisplay::new(display.color_converted()); como_display.draw(); Timer::after_secs(5).await; init::reboot().await; }