#![no_std] #![no_main] use esp_hal::clock::ClockControl; use esp_hal::delay::Delay; use esp_hal::gpio::IO; use esp_hal::peripherals::Peripherals; use esp_hal::prelude::*; use panic_halt as _; #[entry] fn main() -> ! { let p = Peripherals::take(); let sys = p.SYSTEM.split(); let clocks = ClockControl::boot_defaults(sys.clock_control).freeze(); let io = IO::new(p.GPIO, p.IO_MUX); let mut r = io.pins.gpio5.into_push_pull_output(); let mut g = io.pins.gpio6.into_push_pull_output(); let mut b = io.pins.gpio7.into_push_pull_output(); let _btn = io.pins.gpio9.into_pull_up_input(); let delay = Delay::new(&clocks); for [r_state, g_state, b_state] in [ [true, false, false], [true, true, false], [false, true, false], [false, true, true], [false, false, true], [true, false, true], ] .iter() .cycle() { r.set_state(*r_state); g.set_state(*g_state); b.set_state(*b_state); delay.delay_millis(200u32); } loop {} }