42 lines
927 B
Rust
42 lines
927 B
Rust
#![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;
|
|
}
|