gpiote: take borrow instead of owned pin.
This makes it possible to read the pin while the channel is created.
This commit is contained in:
parent
32a9b3f4ae
commit
c81d626254
@ -51,11 +51,11 @@ impl Gpiote {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn new_input_channel<T>(
|
pub fn new_input_channel<'a, T>(
|
||||||
&self,
|
&'a self,
|
||||||
pin: GpioPin<Input<T>>,
|
pin: &'a GpioPin<Input<T>>,
|
||||||
trigger_mode: EventPolarity,
|
trigger_mode: EventPolarity,
|
||||||
) -> Result<Channel<'_>, NewChannelError> {
|
) -> Result<Channel<'a>, NewChannelError> {
|
||||||
interrupt::free(|_| {
|
interrupt::free(|_| {
|
||||||
unsafe { INSTANCE = self };
|
unsafe { INSTANCE = self };
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ async fn run() {
|
|||||||
let pin1 = port0.p0_11.into_pullup_input().degrade();
|
let pin1 = port0.p0_11.into_pullup_input().degrade();
|
||||||
let button1 = async {
|
let button1 = async {
|
||||||
let ch = g
|
let ch = g
|
||||||
.new_input_channel(pin1, gpiote::EventPolarity::HiToLo)
|
.new_input_channel(&pin1, gpiote::EventPolarity::HiToLo)
|
||||||
.dewrap();
|
.dewrap();
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
@ -40,7 +40,7 @@ async fn run() {
|
|||||||
let pin2 = port0.p0_12.into_pullup_input().degrade();
|
let pin2 = port0.p0_12.into_pullup_input().degrade();
|
||||||
let button2 = async {
|
let button2 = async {
|
||||||
let ch = g
|
let ch = g
|
||||||
.new_input_channel(pin2, gpiote::EventPolarity::LoToHi)
|
.new_input_channel(&pin2, gpiote::EventPolarity::LoToHi)
|
||||||
.dewrap();
|
.dewrap();
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
@ -52,7 +52,7 @@ async fn run() {
|
|||||||
let pin3 = port0.p0_24.into_pullup_input().degrade();
|
let pin3 = port0.p0_24.into_pullup_input().degrade();
|
||||||
let button3 = async {
|
let button3 = async {
|
||||||
let ch = g
|
let ch = g
|
||||||
.new_input_channel(pin3, gpiote::EventPolarity::Toggle)
|
.new_input_channel(&pin3, gpiote::EventPolarity::Toggle)
|
||||||
.dewrap();
|
.dewrap();
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
@ -64,7 +64,7 @@ async fn run() {
|
|||||||
let pin4 = port0.p0_25.into_pullup_input().degrade();
|
let pin4 = port0.p0_25.into_pullup_input().degrade();
|
||||||
let button4 = async {
|
let button4 = async {
|
||||||
let ch = g
|
let ch = g
|
||||||
.new_input_channel(pin4, gpiote::EventPolarity::Toggle)
|
.new_input_channel(&pin4, gpiote::EventPolarity::Toggle)
|
||||||
.dewrap();
|
.dewrap();
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
|
Loading…
Reference in New Issue
Block a user