vibe-code wokwi display ch1115 integration

This commit is contained in:
2026-08-30 01:54:18 +02:00
parent aa7fc94068
commit 148663d4fd
10 changed files with 216 additions and 15 deletions
+13 -1
View File
@@ -11,6 +11,7 @@ use alloc::boxed::Box;
use creaturedex::background_tasks;
use creaturedex::drivers::i2c_bus::I2cBusPinConfiguration;
use creaturedex::drivers::nfc_pn532::NfcPn532Driver;
use creaturedex::drivers::primary_lcd::PrimaryDisplay;
use creaturedex::drivers::secondary_oled::SecondaryDisplay;
use creaturedex::drivers::spi_bus;
use creaturedex::drivers::tertiary_lcd::{
@@ -71,7 +72,7 @@ async fn main(spawner: Spawner) {
let timg0 = TimerGroup::new(esp_peripherals.TIMG0);
esp_rtos::start(timg0.timer0, sw_interrupt.software_interrupt0);
let (primary, mut secondaries) = retry(
let (mut primary, mut secondaries) = retry(
5,
spi_bus::DisplayPinConfiguration {
spi_peripheral: esp_peripherals.SPI2,
@@ -160,6 +161,7 @@ async fn main(spawner: Spawner) {
display_shit(&mut secondaries[0], "foo 1");
display_shit(&mut secondaries[1], "bar 1");
display_shit(&mut secondaries[2], "baz 1");
display_shit_prim(&mut primary, "Hello World");
let outputs = {
let [sec_1, sec_2, sec_3] = secondaries;
@@ -191,6 +193,16 @@ fn display_shit(oled: &mut SecondaryDisplay<'static>, text: &str) {
oled.flush().unwrap();
}
fn display_shit_prim(main: &mut PrimaryDisplay<'static>, text: &str) {
use embedded_graphics::pixelcolor::Rgb565;
main.clear(Rgb565::BLACK).unwrap();
let text_style = MonoTextStyle::new(&FONT_6X10, Rgb565::WHITE);
Text::new(text, Point::new(10, 20), text_style)
.draw(main)
.unwrap();
}
fn retry<T, U, F: FnMut(T) -> Result<U, T>>(repetitions: u32, input: T, mut action: F) -> U {
let mut initial_state = input;
for iteration in 0..repetitions {