EXTI experiment
This commit is contained in:
parent
e3b9f7ceb0
commit
decf910b55
1 changed files with 17 additions and 1 deletions
|
@ -31,7 +31,8 @@ mod app {
|
|||
#[local]
|
||||
struct Local {
|
||||
dmx: DMX<DMX_LEN>,
|
||||
led: gpio::gpioc::PC13<gpio::Output>,
|
||||
led: gpio::gpioc::PC13<gpio::Output<gpio::PushPull>>,
|
||||
int_led: gpio::gpiob::PB0<gpio::Output<gpio::OpenDrain>>,
|
||||
}
|
||||
|
||||
#[init]
|
||||
|
@ -56,11 +57,16 @@ mod app {
|
|||
|
||||
// Acquire the peripherals
|
||||
let mut gpioa = cx.device.GPIOA.split();
|
||||
let mut gpiob = cx.device.GPIOB.split();
|
||||
let mut gpioc = cx.device.GPIOC.split();
|
||||
|
||||
let mut afio = cx.device.AFIO.constrain();
|
||||
let dma1 = cx.device.DMA1.split();
|
||||
|
||||
cx.device.EXTI.imr.write(|w| w.mr1().set_bit());
|
||||
|
||||
let _ = gpiob.pb10.into_pull_up_input(&mut gpiob.crh);
|
||||
|
||||
// Serial config
|
||||
let serial = serial::Serial::new(
|
||||
cx.device.USART1,
|
||||
|
@ -91,6 +97,10 @@ mod app {
|
|||
led: gpioc
|
||||
.pc13
|
||||
.into_push_pull_output_with_state(&mut gpioc.crh, gpio::PinState::High),
|
||||
|
||||
int_led: gpiob
|
||||
.pb0
|
||||
.into_open_drain_output_with_state(&mut gpiob.crl, gpio::PinState::Low),
|
||||
},
|
||||
init::Monotonics(mono),
|
||||
)
|
||||
|
@ -113,4 +123,10 @@ mod app {
|
|||
// cx.local.dmx.wait();
|
||||
foo::spawn().unwrap();
|
||||
}
|
||||
|
||||
#[task(binds=EXTI0, local = [int_led], shared = [delay_us])]
|
||||
fn bar(mut cx: bar::Context) {
|
||||
cx.local.int_led.toggle();
|
||||
cx.shared.delay_us.lock(|d| d.delay(1.secs()));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue