#![no_std] #![no_main] use esp_backtrace as _; // panic_handler use esp_hal::{rmt::Rmt, time::Rate}; use esp_hal_smartled::{SmartLedsAdapter, smart_led_buffer}; use smart_leds::RGB; use esp32c6_play::{init, sin, wait_ms, write_rgb}; // This creates a default app-descriptor required by the esp-idf bootloader. // For more information see: esp_bootloader_esp_idf::esp_app_desc!(); #[esp_hal::main] fn main() -> ! { let peripherals = init(); let mut led_buffer = smart_led_buffer!(1); let mut rgb_led = { let frequency = Rate::from_mhz(80); let rmt = Rmt::new(peripherals.RMT, frequency).expect("failed to initialize RMT0"); SmartLedsAdapter::new(rmt.channel0, peripherals.GPIO8, &mut led_buffer) }; loop { for i in 0..255 { let r: u8 = i; let g: u8 = i + 255 / 3; // phase shifted a third let b: u8 = i + 2 * (255 / 3); // phase shifted two thirds write_rgb(&mut rgb_led, RGB::new(sin(r), sin(g), sin(b))); wait_ms(8); } } }