From 05803ad86678a3295a62047666f57571bc853764 Mon Sep 17 00:00:00 2001 From: Ross Andrews Date: Tue, 8 Sep 2026 22:46:31 -0500 Subject: [PATCH] refactor --- src/main.rs | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/src/main.rs b/src/main.rs index 68c59a1..b2ed0ba 100644 --- a/src/main.rs +++ b/src/main.rs @@ -5,6 +5,7 @@ mod backlight; mod display; mod framebuffer; mod led; +pub mod board; use embedded_graphics::pixelcolor::Rgb565; use embedded_graphics::prelude::*; @@ -24,7 +25,13 @@ const VAL: u8 = 255; esp_app_desc!(); #[embassy_executor::task] -async fn led_task(mut led: led::RgbLed) { +async fn led_task( + rmt_periph: esp_hal::peripherals::RMT<'static>, + led_pin: esp_hal::peripherals::GPIO8<'static>, +) { + let rmt = Rmt::new(rmt_periph, Rate::from_mhz(80)).expect("Failed to init RMT"); + let mut led = led::RgbLed::new(rmt.channel0, led_pin).expect("Failed to init RGB LED"); + let mut frame = 0u32; loop { let hue = (frame % 256) as u8; @@ -42,18 +49,21 @@ async fn led_task(mut led: led::RgbLed) { #[embassy_executor::task] async fn display_task( pins: display::LcdPins, - mut fb: framebuffer::Framebuffer, - timer: esp_hal::ledc::timer::Timer<'static, esp_hal::ledc::LowSpeed>, + ledc: esp_hal::peripherals::LEDC<'static>, bl_pin: esp_hal::peripherals::GPIO22<'static>, ) { let mut parts = display::init_parts(pins); println!("LCD {}x{} initialized", display::WIDTH, display::HEIGHT); + let (_ledc, timer) = + backlight::setup_timer(ledc).expect("Failed to init backlight timer"); let mut backlight = backlight::LcdBacklight::new(&timer, bl_pin).expect("Failed to init backlight"); backlight.set_level(0.5).unwrap(); println!("backlight set to 0.5"); + let mut fb = framebuffer::Framebuffer; + let mut pts = [ Point::new(86, 20), Point::new(61, 50), @@ -127,15 +137,7 @@ async fn main(spawner: Spawner) -> ! { let timg0 = TimerGroup::new(peripherals.TIMG0); esp_rtos::start(timg0.timer0, peripherals.FROM_CPU_INTR0); - let led = { - let rmt = Rmt::new(peripherals.RMT, Rate::from_mhz(80)).expect("Failed to init RMT"); - led::RgbLed::new(rmt.channel0, peripherals.GPIO8).expect("Failed to init RGB LED") - }; - - let (_ledc, timer) = - backlight::setup_timer(peripherals.LEDC).expect("Failed to init backlight timer"); - - spawner.spawn(led_task(led).unwrap()); + spawner.spawn(led_task(peripherals.RMT, peripherals.GPIO8).unwrap()); spawner.spawn(display_task( display::LcdPins { spi2: peripherals.SPI2, @@ -146,8 +148,7 @@ async fn main(spawner: Spawner) -> ! { rst: peripherals.GPIO21, dma_ch: peripherals.DMA_CH0, }, - framebuffer::Framebuffer, - timer, + peripherals.LEDC, peripherals.GPIO22, ).unwrap());