Speeduino
Loading...
Searching...
No Matches
interruptHandlers.h
Go to the documentation of this file.
1#pragma once
2
3#include <stdint.h>
4
5using setTimerCallback_t = void(*)(uint16_t tickDelta);
6
7template <typename TPwmChannel>
8static inline void pwmISR(TPwmChannel &pwmChannel, setTimerCallback_t setTimerCallback)
9{
10 if (pwmChannel.isPartialDuty())
11 {
12 if (pwmChannel.pin.isPinHigh())
13 {
14 pwmChannel.pin.setPinLow();
15 setTimerCallback(pwmChannel.maxDuty - pwmChannel.targetDuty);
16 }
17 else
18 {
19 pwmChannel.pin.setPinHigh();
20 setTimerCallback(pwmChannel.targetDuty);
21 }
22 }
23}
static void pwmISR(TPwmChannel &pwmChannel, setTimerCallback_t setTimerCallback)
Definition interruptHandlers.h:8
void(*)(uint16_t tickDelta) setTimerCallback_t
Definition interruptHandlers.h:5