stm32: Remove OptionalPin
The idea behind OptionalPin has a few problems: - you need to impl the signal traits for NoPin which is a bit weird https://github.com/embassy-rs/embassy/blob/master/embassy-stm32/src/dcmi.rs#L413-L416 - you can pass any combination of set/unset pins, which needs checking at runtime https://github.com/embassy-rs/embassy/blob/master/embassy-stm32/src/dcmi.rs#L130 The replacement is to do multiple `new` constructors for each combination of pins you want to take.
This commit is contained in:
@ -248,31 +248,6 @@ crate::pac::interrupts! {
|
||||
};
|
||||
}
|
||||
|
||||
#[allow(unused)]
|
||||
macro_rules! impl_pwm_nopin {
|
||||
($inst:ident) => {
|
||||
impl_no_pin!($inst, Channel1Pin);
|
||||
impl_no_pin!($inst, Channel1ComplementaryPin);
|
||||
impl_no_pin!($inst, Channel2Pin);
|
||||
impl_no_pin!($inst, Channel2ComplementaryPin);
|
||||
impl_no_pin!($inst, Channel3Pin);
|
||||
impl_no_pin!($inst, Channel3ComplementaryPin);
|
||||
impl_no_pin!($inst, Channel4Pin);
|
||||
impl_no_pin!($inst, Channel4ComplementaryPin);
|
||||
impl_no_pin!($inst, ExternalTriggerPin);
|
||||
impl_no_pin!($inst, BreakInputPin);
|
||||
impl_no_pin!($inst, BreakInputComparator1Pin);
|
||||
impl_no_pin!($inst, BreakInputComparator2Pin);
|
||||
impl_no_pin!($inst, BreakInput2Pin);
|
||||
impl_no_pin!($inst, BreakInput2Comparator1Pin);
|
||||
impl_no_pin!($inst, BreakInput2Comparator2Pin);
|
||||
};
|
||||
}
|
||||
|
||||
crate::pac::peripherals!(
|
||||
(timer, $inst:ident) => { impl_pwm_nopin!($inst); };
|
||||
);
|
||||
|
||||
crate::pac::peripheral_pins!(
|
||||
($inst:ident, timer, $block:ident, $pin:ident, CH1, $af:expr) => {
|
||||
impl_pin!($inst, Channel1Pin, $pin, $af);
|
||||
|
Reference in New Issue
Block a user