diff options
| author | Dario Nieuwenhuis <[email protected]> | 2025-09-06 00:11:59 +0200 |
|---|---|---|
| committer | Dario Nieuwenhuis <[email protected]> | 2025-09-06 00:14:03 +0200 |
| commit | a23c4b7bca15bc00f4b5c4af200f17eb0097e94b (patch) | |
| tree | f293891a3dad44dc808f31f7aa6fd7fcdb21bbe5 /embassy-stm32/src/timer/simple_pwm.rs | |
| parent | 35f4ae378cbc9a1263e46baaeac536cae2337896 (diff) | |
stm32/afio: make af_num() unavailable in afio chips.
Diffstat (limited to 'embassy-stm32/src/timer/simple_pwm.rs')
| -rw-r--r-- | embassy-stm32/src/timer/simple_pwm.rs | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/embassy-stm32/src/timer/simple_pwm.rs b/embassy-stm32/src/timer/simple_pwm.rs index c08a3939f..e6165e42b 100644 --- a/embassy-stm32/src/timer/simple_pwm.rs +++ b/embassy-stm32/src/timer/simple_pwm.rs | |||
| @@ -40,9 +40,7 @@ impl<'d, T: GeneralInstance4Channel, C: TimerChannel, #[cfg(afio)] A> if_afio!(P | |||
| 40 | pub fn new(pin: Peri<'d, if_afio!(impl TimerPin<T, C, A>)>, output_type: OutputType) -> Self { | 40 | pub fn new(pin: Peri<'d, if_afio!(impl TimerPin<T, C, A>)>, output_type: OutputType) -> Self { |
| 41 | critical_section::with(|_| { | 41 | critical_section::with(|_| { |
| 42 | pin.set_low(); | 42 | pin.set_low(); |
| 43 | pin.set_as_af(pin.af_num(), AfType::output(output_type, Speed::VeryHigh)); | 43 | set_as_af!(pin, AfType::output(output_type, Speed::VeryHigh)); |
| 44 | #[cfg(afio)] | ||
| 45 | pin.afio_remap(); | ||
| 46 | }); | 44 | }); |
| 47 | PwmPin { | 45 | PwmPin { |
| 48 | pin: pin.into(), | 46 | pin: pin.into(), |
| @@ -54,15 +52,13 @@ impl<'d, T: GeneralInstance4Channel, C: TimerChannel, #[cfg(afio)] A> if_afio!(P | |||
| 54 | pub fn new_with_config(pin: Peri<'d, if_afio!(impl TimerPin<T, C, A>)>, pin_config: PwmPinConfig) -> Self { | 52 | pub fn new_with_config(pin: Peri<'d, if_afio!(impl TimerPin<T, C, A>)>, pin_config: PwmPinConfig) -> Self { |
| 55 | critical_section::with(|_| { | 53 | critical_section::with(|_| { |
| 56 | pin.set_low(); | 54 | pin.set_low(); |
| 57 | pin.set_as_af( | 55 | #[cfg(gpio_v1)] |
| 58 | pin.af_num(), | 56 | set_as_af!(pin, AfType::output(pin_config.output_type, pin_config.speed)); |
| 59 | #[cfg(gpio_v1)] | 57 | #[cfg(gpio_v2)] |
| 60 | AfType::output(pin_config.output_type, pin_config.speed), | 58 | set_as_af!( |
| 61 | #[cfg(gpio_v2)] | 59 | pin, |
| 62 | AfType::output_pull(pin_config.output_type, pin_config.speed, pin_config.pull), | 60 | AfType::output_pull(pin_config.output_type, pin_config.speed, pin_config.pull) |
| 63 | ); | 61 | ); |
| 64 | #[cfg(afio)] | ||
| 65 | pin.afio_remap(); | ||
| 66 | }); | 62 | }); |
| 67 | PwmPin { | 63 | PwmPin { |
| 68 | pin: pin.into(), | 64 | pin: pin.into(), |
