From a3b16c51f87bb906df69cfedaaf6532c8be9bc1b Mon Sep 17 00:00:00 2001 From: sawyer bristol Date: Wed, 25 Jun 2025 14:32:53 -0600 Subject: [PATCH] draw square --- Cargo.lock | 60 ++++++++++++++++++++++----------------------- Cargo.toml | 3 ++- rust-toolchain.toml | 2 +- src/display.rs | 29 +++++++++++----------- src/main.rs | 13 +++++----- 5 files changed, 54 insertions(+), 53 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7eb8d41..22f91fc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -164,9 +164,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.18.1" +version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db76d6187cd04dff33004d8e6c9cc4e05cd330500379d2394209271b4aeee" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" [[package]] name = "bytemuck" @@ -225,7 +225,7 @@ checksum = "e37549a379a9e0e6e576fd208ee60394ccb8be963889eebba3ffe0980364f472" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -254,9 +254,9 @@ checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" [[package]] name = "crunchy" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "crypto-common" @@ -322,7 +322,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -333,7 +333,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -371,7 +371,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -484,7 +484,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -898,7 +898,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -1139,9 +1139,9 @@ checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" [[package]] name = "libredox" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +checksum = "1580801010e535496706ba011c15f8532df6b42297d2e471fec38ceadd8c0638" dependencies = [ "bitflags 2.9.1", "libc", @@ -1222,11 +1222,12 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" +checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" dependencies = [ - "num_enum_derive 0.7.3", + "num_enum_derive 0.7.4", + "rustversion", ] [[package]] @@ -1242,13 +1243,13 @@ dependencies = [ [[package]] name = "num_enum_derive" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" +checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -1400,7 +1401,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61d90fddc3d67f21bbf93683bc461b05d6a29c708caf3ffb79947d7ff7095406" dependencies = [ "arrayvec", - "num_enum 0.7.3", + "num_enum 0.7.4", "paste", ] @@ -1457,7 +1458,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -1518,7 +1519,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -1728,7 +1729,6 @@ dependencies = [ [[package]] name = "st7365p-lcd" version = "0.10.0" -source = "git+https://github.com/legitcamper/st7365p-lcd-rs#781d2ae4ae2bc71102f073c7cc26a6804a71d5db" dependencies = [ "embedded-graphics-core", "embedded-hal 1.0.0", @@ -1781,9 +1781,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.103" +version = "2.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4307e30089d6fd6aff212f2da3a1f9e32f3223b1f010fb09b7c95f90f3ca1e8" +checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" dependencies = [ "proc-macro2", "quote", @@ -1846,7 +1846,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -1857,7 +1857,7 @@ checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] [[package]] @@ -1898,7 +1898,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", "uuid", ] @@ -2001,7 +2001,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", "wasm-bindgen-shared", ] @@ -2023,7 +2023,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -2158,5 +2158,5 @@ checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.104", ] diff --git a/Cargo.toml b/Cargo.toml index 488581a..4fa8de1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -71,6 +71,7 @@ defmt-rtt = "0.4.2" embedded-graphics = { version = "0.8.1" } embedded-sdmmc = { git = "https://github.com/Be-ing/embedded-sdmmc-rs", branch = "bisync", default-features = false } -st7365p-lcd = { git = "https://github.com/legitcamper/st7365p-lcd-rs" } +# st7365p-lcd = { git = "https://github.com/legitcamper/st7365p-lcd-rs" } +st7365p-lcd = { path = "../ST7365P-lcd-rs" } static_cell = "2.1.1" diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 54ee2f2..923eda9 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,4 +1,4 @@ [toolchain] channel = "nightly-2025-06-18" -components = ["rust-src", "rustfmt", "rust-lld"] +components = ["rust-src", "rustfmt", "rust-analyzer"] targets = ["thumbv6m-none-eabi"] diff --git a/src/display.rs b/src/display.rs index 2ff75bc..f994927 100644 --- a/src/display.rs +++ b/src/display.rs @@ -3,15 +3,15 @@ use embassy_rp::{ peripherals::{PIN_13, PIN_14, PIN_15, SPI1}, spi::{Blocking, Spi}, }; -use embassy_time::Delay; +use embassy_time::{Delay, Timer}; use embedded_graphics::{ Drawable, pixelcolor::{BinaryColor, Rgb555, Rgb565}, - prelude::{Point, Primitive, RgbColor}, - primitives::{PrimitiveStyle, Triangle}, + prelude::{Point, Primitive, RgbColor, Size}, + primitives::{PrimitiveStyle, Rectangle, Triangle}, }; use embedded_hal_bus::spi::ExclusiveDevice; -use st7365p_lcd::ST7365P; +use st7365p_lcd::{Orientation, ST7365P}; #[embassy_executor::task] pub async fn display_task( @@ -30,18 +30,17 @@ pub async fn display_task( 320, 320, ); + display.init(&mut Delay).unwrap(); + display.set_orientation(&Orientation::Landscape).unwrap(); - let thin_stroke = PrimitiveStyle::with_stroke(Rgb565::RED, 1); + let thin_stroke = PrimitiveStyle::with_stroke(Rgb565::RED, 20); - let yoffset = 10; + Rectangle::new(Point::new(10, 10), Size::new(100, 100)) + .into_styled(thin_stroke) + .draw(&mut display) + .unwrap(); - // Draw a triangle. - Triangle::new( - Point::new(16, 16 + yoffset), - Point::new(16 + 16, 16 + yoffset), - Point::new(16 + 8, yoffset), - ) - .into_styled(thin_stroke) - .draw(&mut display) - .unwrap(); + loop { + Timer::after_millis(500).await; + } } diff --git a/src/main.rs b/src/main.rs index 375ed0d..1ffcbd8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -39,11 +39,6 @@ async fn main(spawner: Spawner) { static KEYBOARD_EVENTS: StaticCell> = StaticCell::new(); let keyboard_events = KEYBOARD_EVENTS.init(Channel::new()); - loop { - info!("im alive"); - Timer::after_secs(1).await; - } - // configure keyboard event handler let config = i2c::Config::default(); let i2c1 = I2c::new_async(p.I2C1, p.PIN_7, p.PIN_6, Irqs, config); @@ -53,9 +48,15 @@ async fn main(spawner: Spawner) { // configure display handler let mut config = spi::Config::default(); - config.frequency = 10_000_000; + config.frequency = 16_000_000; let spi1 = spi::Spi::new_blocking(p.SPI1, p.PIN_10, p.PIN_11, p.PIN_12, config); spawner .spawn(display_task(spi1, p.PIN_13, p.PIN_14, p.PIN_15)) .unwrap(); + + let receiver = keyboard_events.receiver(); + loop { + let key = receiver.receive().await; + info!("got key: {}", key.key as u8); + } }