esp32c3-playground/src/main.rs

48 lines
1.0 KiB
Rust
Raw Normal View History

2024-04-20 00:53:31 +02:00
#![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 {}
}