Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Add async support to the I2C driver (#519)
- Add initial support for SHA in ESP32-H2 (#527)
- Add initial support for AES in ESP32-H2 (#528)
- Add blinky_erased_pins example for ESP32-H2 (#530)

### Fixed

Expand Down
4 changes: 3 additions & 1 deletion esp32-hal/examples/blinky_erased_pins.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,16 @@ fn main() -> ! {
wdt.disable();
rtc.rwdt.disable();

// Set LED GPIOs as an output.
let io = IO::new(peripherals.GPIO, peripherals.IO_MUX);
let led1 = io.pins.gpio25.into_push_pull_output();
let led2 = io.pins.gpio26.into_push_pull_output();
let led3 = io.pins.gpio27.into_push_pull_output();

// Set GPIO9 as an input.
let button = io.pins.gpio0.into_pull_down_input().degrade();

// you can use `into` or `degrade`
// You can use `into` or `degrade`
let mut pins = [led1.into(), led2.into(), led3.degrade()];

// Initialize the Delay peripheral, and use it to toggle the LED state in a
Expand Down
4 changes: 3 additions & 1 deletion esp32c2-hal/examples/blinky_erased_pins.rs
Original file line number Diff line number Diff line change
Expand Up @@ -36,14 +36,16 @@ fn main() -> ! {
rtc.rwdt.disable();
wdt0.disable();

// Set LED GPIOs as an output.
let io = IO::new(peripherals.GPIO, peripherals.IO_MUX);
let led1 = io.pins.gpio3.into_push_pull_output();
let led2 = io.pins.gpio4.into_push_pull_output();
let led3 = io.pins.gpio5.into_push_pull_output();

// Set GPIO9 as an input.
let button = io.pins.gpio9.into_pull_down_input().degrade();

// you can use `into` or `degrade`
// You can use `into` or `degrade`
let mut pins = [led1.into(), led2.into(), led3.degrade()];

// Initialize the Delay peripheral, and use it to toggle the LED state in a
Expand Down
4 changes: 3 additions & 1 deletion esp32c3-hal/examples/blinky_erased_pins.rs
Original file line number Diff line number Diff line change
Expand Up @@ -43,14 +43,16 @@ fn main() -> ! {
wdt0.disable();
wdt1.disable();

// Set LED GPIOs as an output.
let io = IO::new(peripherals.GPIO, peripherals.IO_MUX);
let led1 = io.pins.gpio3.into_push_pull_output();
let led2 = io.pins.gpio4.into_push_pull_output();
let led3 = io.pins.gpio5.into_push_pull_output();

// Set GPIO9 as an input.
let button = io.pins.gpio9.into_pull_down_input().degrade();

// you can use `into` or `degrade`
// You can use `into` or `degrade`
let mut pins = [led1.into(), led2.into(), led3.degrade()];

// Initialize the Delay peripheral, and use it to toggle the LED state in a
Expand Down
5 changes: 3 additions & 2 deletions esp32c6-hal/examples/blinky_erased_pins.rs
Original file line number Diff line number Diff line change
Expand Up @@ -43,15 +43,16 @@ fn main() -> ! {
wdt0.disable();
wdt1.disable();

// Set GPIO4 as an output, and set its state high initially.
// Set LED GPIOs as an output.
let io = IO::new(peripherals.GPIO, peripherals.IO_MUX);
let led1 = io.pins.gpio3.into_push_pull_output();
let led2 = io.pins.gpio4.into_push_pull_output();
let led3 = io.pins.gpio5.into_push_pull_output();

// Set GPIO9 as an input.
let button = io.pins.gpio9.into_pull_down_input().degrade();

// you can use `into` or `degrade`
// You can use `into` or `degrade`
let mut pins = [led1.into(), led2.into(), led3.degrade()];

// Initialize the Delay peripheral, and use it to toggle the LED state in a
Expand Down
76 changes: 76 additions & 0 deletions esp32h2-hal/examples/blinky_erased_pins.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
//! Blinks an LED
//!
//! This assumes that LEDs are connected to GPIO3, 4 and 5.

#![no_std]
#![no_main]

use esp32h2_hal::{
clock::ClockControl,
gpio::{AnyPin, Input, Output, PullDown, PushPull, IO},
peripherals::Peripherals,
prelude::*,
timer::TimerGroup,
Delay,
Rtc,
};
use esp_backtrace as _;

#[entry]
fn main() -> ! {
let peripherals = Peripherals::take();
let mut system = peripherals.PCR.split();
let clocks = ClockControl::boot_defaults(system.clock_control).freeze();

// Disable the watchdog timers. For the ESP32-H2, this includes the Super WDT,
// and the TIMG WDTs.
let mut rtc = Rtc::new(peripherals.LP_CLKRST);
let timer_group0 = TimerGroup::new(
peripherals.TIMG0,
&clocks,
&mut system.peripheral_clock_control,
);
let mut wdt0 = timer_group0.wdt;
let timer_group1 = TimerGroup::new(
peripherals.TIMG1,
&clocks,
&mut system.peripheral_clock_control,
);
let mut wdt1 = timer_group1.wdt;

rtc.swd.disable();
rtc.rwdt.disable();
wdt0.disable();
wdt1.disable();

// Set LED GPIOs as an output.
let io = IO::new(peripherals.GPIO, peripherals.IO_MUX);
let led1 = io.pins.gpio3.into_push_pull_output();
let led2 = io.pins.gpio4.into_push_pull_output();
let led3 = io.pins.gpio5.into_push_pull_output();

// Set GPIO9 as an input.
let button = io.pins.gpio9.into_pull_down_input().degrade();

// You can use `into` or `degrade`
let mut pins = [led1.into(), led2.into(), led3.degrade()];

// Initialize the Delay peripheral, and use it to toggle the LED state in a
// loop.
let mut delay = Delay::new(&clocks);

loop {
toggle_pins(&mut pins, &button);
delay.delay_ms(500u32);
}
}

fn toggle_pins(leds: &mut [AnyPin<Output<PushPull>>], button: &AnyPin<Input<PullDown>>) {
for pin in leds.iter_mut() {
pin.toggle().unwrap();
}

if button.is_low().unwrap() {
esp_println::println!("Button");
}
}
5 changes: 3 additions & 2 deletions esp32s2-hal/examples/blinky_erased_pins.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,15 +34,16 @@ fn main() -> ! {
wdt.disable();
rtc.rwdt.disable();

// Set GPIO4 as an output, and set its state high initially.
// Set LED GPIOs as an output.
let io = IO::new(peripherals.GPIO, peripherals.IO_MUX);
let led1 = io.pins.gpio3.into_push_pull_output();
let led2 = io.pins.gpio4.into_push_pull_output();
let led3 = io.pins.gpio5.into_push_pull_output();

// Set GPIO9 as an input.
let button = io.pins.gpio0.into_pull_down_input().degrade();

// you can use `into` or `degrade`
// You can use `into` or `degrade`
let mut pins = [led1.into(), led2.into(), led3.degrade()];

// Initialize the Delay peripheral, and use it to toggle the LED state in a
Expand Down
5 changes: 3 additions & 2 deletions esp32s3-hal/examples/blinky_erased_pins.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,15 +34,16 @@ fn main() -> ! {
wdt.disable();
rtc.rwdt.disable();

// Set GPIO4 as an output, and set its state high initially.
// Set LED GPIOs as an output.
let io = IO::new(peripherals.GPIO, peripherals.IO_MUX);
let led1 = io.pins.gpio3.into_push_pull_output();
let led2 = io.pins.gpio4.into_push_pull_output();
let led3 = io.pins.gpio5.into_push_pull_output();

// Set GPIO9 as an input.
let button = io.pins.gpio0.into_pull_down_input().degrade();

// you can use `into` or `degrade`
// You can use `into` or `degrade`
let mut pins = [led1.into(), led2.into(), led3.degrade()];

// Initialize the Delay peripheral, and use it to toggle the LED state in a
Expand Down