use esp_idf_hal::gpio::*;
use esp_idf_hal::delay::FreeRtos;
use esp_idf_hal::peripherals::Peripherals;

fn main() -> anyhow::Result<()> {
    let peripherals = Peripherals::take().unwrap();
    let mut step = PinDriver::output(peripherals.pins.gpio3)?;
    let mut dir = PinDriver::output(peripherals.pins.gpio2)?;

    loop {
        dir.set_high()?;
        for p in 0..200 {
            step.set_high();
            FreeRtos::delay_ms(10);
            step.set_low();
            FreeRtos::delay_ms(10);
        }

        dir.set_low()?;
        for p in 0..200 {
            step.set_high();
            FreeRtos::delay_ms(10);
            step.set_low();
            FreeRtos::delay_ms(10);
        }
    }
}
A4988