DFU button for development mode
This commit is contained in:
parent
5f36125e92
commit
4099896e36
1 changed files with 13 additions and 4 deletions
|
|
@ -2,10 +2,11 @@
|
||||||
#![no_main]
|
#![no_main]
|
||||||
|
|
||||||
use embassy_executor::Spawner;
|
use embassy_executor::Spawner;
|
||||||
use embassy_futures::select::{select_array, select4};
|
use embassy_futures::select::select_array;
|
||||||
use embassy_rp::gpio::{Input, Level, Output, Pull};
|
use embassy_rp::gpio::{Input, Level, Output, Pull};
|
||||||
use embassy_rp::pwm::{self, Pwm};
|
use embassy_rp::pwm::{self, Pwm};
|
||||||
use embassy_time::{Delay, Timer};
|
use embassy_rp::rom_data::reset_to_usb_boot;
|
||||||
|
use embassy_time::Delay;
|
||||||
use embedded_hal_bus::spi::ExclusiveDevice;
|
use embedded_hal_bus::spi::ExclusiveDevice;
|
||||||
use heapless::String;
|
use heapless::String;
|
||||||
use mipidsi::interface::SpiInterface;
|
use mipidsi::interface::SpiInterface;
|
||||||
|
|
@ -27,7 +28,7 @@ use {defmt_rtt as _, panic_probe as _};
|
||||||
const DISPLAY_FREQ: u32 = 64_000_000;
|
const DISPLAY_FREQ: u32 = 64_000_000;
|
||||||
|
|
||||||
#[embassy_executor::main]
|
#[embassy_executor::main]
|
||||||
async fn main(_spawner: Spawner) -> ! {
|
async fn main(spawner: Spawner) -> ! {
|
||||||
let p = embassy_rp::init(Default::default());
|
let p = embassy_rp::init(Default::default());
|
||||||
|
|
||||||
// display SPI
|
// display SPI
|
||||||
|
|
@ -90,7 +91,7 @@ async fn main(_spawner: Spawner) -> ! {
|
||||||
let _btn_a = Input::new(p.PIN_12, Pull::Up);
|
let _btn_a = Input::new(p.PIN_12, Pull::Up);
|
||||||
let _btn_b = Input::new(p.PIN_13, Pull::Up);
|
let _btn_b = Input::new(p.PIN_13, Pull::Up);
|
||||||
// let _btn_x = Input::new(p.PIN_14, Pull::Up);
|
// let _btn_x = Input::new(p.PIN_14, Pull::Up);
|
||||||
let _btn_y = Input::new(p.PIN_15, Pull::Up);
|
let btn_y = Input::new(p.PIN_15, Pull::Up);
|
||||||
|
|
||||||
let mut btn_f1 = Input::new(p.PIN_11, Pull::Up);
|
let mut btn_f1 = Input::new(p.PIN_11, Pull::Up);
|
||||||
let mut btn_f2 = Input::new(p.PIN_14, Pull::Up);
|
let mut btn_f2 = Input::new(p.PIN_14, Pull::Up);
|
||||||
|
|
@ -114,6 +115,8 @@ async fn main(_spawner: Spawner) -> ! {
|
||||||
|
|
||||||
let mut last_state = None;
|
let mut last_state = None;
|
||||||
|
|
||||||
|
spawner.spawn(dfu_button(btn_y)).ok();
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
let state = [
|
let state = [
|
||||||
btn_f1.is_low(),
|
btn_f1.is_low(),
|
||||||
|
|
@ -135,3 +138,9 @@ async fn main(_spawner: Spawner) -> ! {
|
||||||
.await;
|
.await;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[embassy_executor::task]
|
||||||
|
async fn dfu_button(mut btn_y: Input<'static>) {
|
||||||
|
btn_y.wait_for_falling_edge().await;
|
||||||
|
reset_to_usb_boot(0, 0);
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue