Skip to content
Snippets Groups Projects
Select Git revision
  • 6d34a1f562314680143e0eceaa2282f31ce9cf7c
  • master default protected
  • 5-implement-client-c-in-plain-rust
  • 4-fix-card10-l0dable-on-crates-io
  • build-from-root
5 results

main.rs

Blame
  • Forked from Astro / rust-card10
    Source project has a limited visibility.
    main.rs 2.59 KiB
    #![no_std]
    #![no_main]
    
    use card10_l0dable::*;
    use core::fmt::{self, Write};
    
    main!(main);
    fn main() {
        let result = run();
        if let Err(error) = result {
            writeln!(UART, "error: {}\r", error).unwrap();
        }
    }
    
    fn run() -> Result<(), Error> {
        writeln!(UART, "Hello from Rust\r")?;
    
        let bme = BME680::start();
        let a = BHI160::<Accelerometer>::start()?;
        let g = BHI160::<Gyroscope>::start()?;
        let o = BHI160::<Orientation>::start()?;
    
        let display = Display::open();
        let light = LightSensor::start();
    
        for t in 0..Display::W {
            writeln!(UART, "BME: {:?}\r", bme.read())?;
            writeln!(UART, "A:\r")?;
    
            for d in &a.read()? {
                writeln!(UART, " - {:?}\r", d)?;
            }
    
            writeln!(UART, "O:\r")?;
            for d in &o.read()? {
                writeln!(UART, " - {:?}\r", d)?;
            }
    
            writeln!(UART, "G:\r")?;
            for d in &g.read()? {
                writeln!(UART, " - {:?}\r", d)?;
            }
    
            display.clear(Color::yellow());
            display.print(160 - t, 10, b"Hello Rust\0", Color::white(), Color::black());
    
            let b = Buttons::read();
            if b.left_bottom() {
                display.print(0, 60, b"LB\0", Color::red(), Color::black());
                vibra::set(true);
            }
            if b.right_bottom() {
                display.print(80, 60, b"RB\0", Color::red(), Color::black());
                vibra::set(false);
            }
            if b.left_top() {
                display.print(0, 10, b"LT\0", Color::red(), Color::black());
            }
            if b.right_top() {
                display.print(80, 10, b"RT\0", Color::red(), Color::black());
            }
            if b.right_top() {
                display.print(80, 30, b"Reset\0", Color::red(), Color::black());
            }
            writeln!(UART, "Light: {:?}\r", light.get())?;
    
            display.update();
        }
    
        Ok(())