Crates.io | microbit-bsp |
lib.rs | microbit-bsp |
version | 0.3.0 |
source | src |
created_at | 2024-01-12 16:03:52.93793 |
updated_at | 2024-01-28 10:19:37.279864 |
description | An embassy-based boards support package (BSP) for BBC Micro:bit v2 |
homepage | |
repository | https://github.com/lulf/microbit-bsp |
max_upload_size | |
id | 1097837 |
size | 44,900 |
microbit-bsp is a board support package (BSP) library for the BBC micro:bit v2 and newer.
#![no_std]
#![no_main]
use {defmt_rtt as _, panic_probe as _};
use microbit_bsp::*;
use {
embassy_executor::Spawner,
embassy_futures::select::{select, Either},
embassy_time::Duration,
};
#[embassy_executor::main]
async fn main(_spawner: Spawner) {
let board = Microbit::default();
let mut display = board.display;
let mut btn_a = board.btn_a;
let mut btn_b = board.btn_b;
display.set_brightness(display::Brightness::MAX);
display.scroll("Hello, World!").await;
defmt::info!("Application started, press buttons!");
loop {
match select(btn_a.wait_for_low(), btn_b.wait_for_low()).await {
Either::First(_) => {
display
.display(display::fonts::ARROW_LEFT, Duration::from_secs(1))
.await;
}
Either::Second(_) => {
display
.display(display::fonts::ARROW_RIGHT, Duration::from_secs(1))
.await;
}
}
}
}
To run an example:
cd examples/display
cargo run --release