Skip to content

Commit c6d9aa7

Browse files
Sergey Pluzhnikovchris-durand
authored andcommitted
Complementary channels availble for more STM families
1 parent 1367bd6 commit c6d9aa7

File tree

3 files changed

+15
-14
lines changed

3 files changed

+15
-14
lines changed

src/modm/platform/timer/stm32/general_purpose.cpp.in

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ modm::platform::Timer{{ id }}::configureOutputChannel(uint32_t channel,
197197
}
198198
}
199199

200-
%% if target.family in ["g4"] and id in [15, 16, 17]
200+
%% if id in [15, 16, 17]
201201
void
202202
modm::platform::Timer{{ id }}::configureOutputChannel(uint32_t channel,
203203
OutputCompareMode mode,
@@ -207,7 +207,7 @@ OutputComparePreload preload)
207207
{
208208
modm_assert(channel == 1, "Timer{{ id }}", "This timer has complementary output only on channel 1!", "{{ id }}");
209209

210-
channel -= 1;
210+
channel -= 1;
211211

212212
// disable output
213213
TIM{{ id }}->CCER &= ~(0xf << (channel * 4));

src/modm/platform/timer/stm32/general_purpose.hpp.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -387,7 +387,7 @@ public:
387387
configureOutputChannel(channel, mode, compareValue, out, enableComparePreload);
388388
}
389389

390-
%% if target.family in ["g4"] and id in [15, 16, 17]
390+
%% if id in [15, 16, 17]
391391
static void
392392
configureOutputChannel(uint32_t channel, OutputCompareMode mode,
393393
PinState out, OutputComparePolarity polarity,

src/modm/platform/timer/stm32/general_purpose_base.hpp.in

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -275,25 +275,26 @@ protected:
275275
signalToChannel()
276276
{
277277
modm::platform::detail::SignalConnection<Signal, p>{};
278-
%% if target.family == "g4"
279-
if constexpr (Signal::Signal == Gpio::Signal::Ch1 || Signal::Signal == Gpio::Signal::Ch1n) {
280-
return 1;
281-
} else if constexpr (Signal::Signal == Gpio::Signal::Ch2 || Signal::Signal == Gpio::Signal::Ch2n) {
282-
return 2;
283-
} else if constexpr (Signal::Signal == Gpio::Signal::Ch3 || Signal::Signal == Gpio::Signal::Ch3n) {
284-
return 3;
285-
} else if constexpr (Signal::Signal == Gpio::Signal::Ch4 || Signal::Signal == Gpio::Signal::Ch4n) {
286-
return 4;
287-
%% else
288278
if constexpr (Signal::Signal == Gpio::Signal::Ch1) {
289279
return 1;
290280
} else if constexpr (Signal::Signal == Gpio::Signal::Ch2) {
291281
return 2;
292282
} else if constexpr (Signal::Signal == Gpio::Signal::Ch3) {
293283
return 3;
294-
%% if target.family != "l0" or target.pin != "d"
295284
} else if constexpr (Signal::Signal == Gpio::Signal::Ch4) {
296285
return 4;
286+
%% if target.family not in ["l0","l1"]
287+
} else if constexpr (Signal::Signal == Gpio::Signal::Ch1n) {
288+
return 1;
289+
%% if target.family not in ["f3"]
290+
} else if constexpr (Signal::Signal == Gpio::Signal::Ch2n) {
291+
return 2;
292+
} else if constexpr (Signal::Signal == Gpio::Signal::Ch3n) {
293+
return 3;
294+
%% if target.family in ["g4","u5","h5"]
295+
} else if constexpr (Signal::Signal == Gpio::Signal::Ch4n) {
296+
return 4;
297+
%% endif
297298
%% endif
298299
%% endif
299300
} else {

0 commit comments

Comments
 (0)