//! Toggle LED based on GPIO input //! //! This will control an LED on GP25 based on a button hooked up to GP15. The button should be tied //! to ground, as the input pin is pulled high internally by this example. When the button is //! pressed, the LED will turn off. #![no_std] #![no_main] use cortex_m_rt::entry; use embedded_hal::digital::v2::{InputPin, OutputPin}; use hal::pac; use hal::sio::Sio; use panic_halt as _; use rp2040_hal as hal; #[link_section = ".boot2"] #[used] pub static BOOT2: [u8; 256] = rp2040_boot2::BOOT_LOADER; #[entry] fn main() -> ! { let mut pac = pac::Peripherals::take().unwrap(); let sio = Sio::new(pac.SIO); let pins = hal::gpio::Pins::new( pac.IO_BANK0, pac.PADS_BANK0, sio.gpio_bank0, &mut pac.RESETS, ); let mut led_pin = pins.gpio25.into_push_pull_output(); let button_pin = pins.gpio15.into_pull_up_input(); loop { if button_pin.is_high().unwrap() { led_pin.set_high().unwrap(); } else { led_pin.set_low().unwrap(); } } }