esp-idf-hal/examples/ledc_simple.rs
Sergio Gasquez Arcos 061a234ba9
Update ledc examples names (#214)
* style: 🎨 Rename ledc examples to be consistent

* docs: 📝 Update rust-board name
2023-03-08 07:43:02 +02:00

34 lines
890 B
Rust

use esp_idf_hal::delay::FreeRtos;
use esp_idf_hal::ledc::*;
use esp_idf_hal::peripherals::Peripherals;
use esp_idf_hal::prelude::*;
fn main() -> anyhow::Result<()> {
esp_idf_sys::link_patches();
println!("Configuring output channel");
let peripherals = Peripherals::take().unwrap();
let mut channel = LedcDriver::new(
peripherals.ledc.channel0,
LedcTimerDriver::new(
peripherals.ledc.timer0,
&config::TimerConfig::new().frequency(25.kHz().into()),
)?,
peripherals.pins.gpio4,
)?;
println!("Starting duty-cycle loop");
let max_duty = channel.get_max_duty();
for numerator in [0, 1, 2, 3, 4, 5].iter().cycle() {
println!("Duty {numerator}/5");
channel.set_duty(max_duty * numerator / 5)?;
FreeRtos::delay_ms(2000);
}
loop {
FreeRtos::delay_ms(1000);
}
}