modm API documentation
|
#include <modm/platform/timer/timer_14.hpp>
Public Typedefs | |
using | Value = uint16_t |
Public Types | |
enum | MasterMode : uint32_t { Reset = 0, Enable = TIM_CR2_MMS_0, Update = TIM_CR2_MMS_1, Pulse = TIM_CR2_MMS_1 | TIM_CR2_MMS_0, CompareOc1Ref = TIM_CR2_MMS_2, CompareOc2Ref = TIM_CR2_MMS_2 | TIM_CR2_MMS_0 } |
enum | SlaveModeTrigger : uint32_t { Internal0 = 0, Internal1 = TIM_SMCR_TS_0, Internal2 = TIM_SMCR_TS_1, Internal3 = TIM_SMCR_TS_1 | TIM_SMCR_TS_0, TimerInput1EdgeDetector = TIM_SMCR_TS_2, TimerInput1Filtered = TIM_SMCR_TS_2 | TIM_SMCR_TS_0, TimerInput2Filtered = TIM_SMCR_TS_2 | TIM_SMCR_TS_1, External = TIM_SMCR_TS_2 | TIM_SMCR_TS_1 | TIM_SMCR_TS_0 } |
enum | SlaveMode : uint32_t { SlaveMode::Disabled = 0, SlaveMode::Encoder1 = TIM_SMCR_SMS_0, SlaveMode::Encoder2 = TIM_SMCR_SMS_1, SlaveMode::Encoder3 = TIM_SMCR_SMS_1 | TIM_SMCR_SMS_0, SlaveMode::Reset = TIM_SMCR_SMS_2, SlaveMode::Gated = TIM_SMCR_SMS_2 | TIM_SMCR_SMS_0, SlaveMode::Trigger = TIM_SMCR_SMS_2 | TIM_SMCR_SMS_1, SlaveMode::ExternalClock = TIM_SMCR_SMS_2 | TIM_SMCR_SMS_1 | TIM_SMCR_SMS_0 } |
enum | DeadTimeResolution : uint32_t { From0With125nsStep = 0, From16usWith250nsStep = TIM_BDTR_DTG_7, From32usWith1usStep = TIM_BDTR_DTG_7 | TIM_BDTR_DTG_6, From64usWith2usStep } |
enum | DmaRequestEnable : uint32_t { Update = TIM_DIER_UDE, CaptureCompare1 = TIM_DIER_CC1DE, CaptureCompare2 = TIM_DIER_CC2DE, CaptureCompare3 = TIM_DIER_CC3DE, CaptureCompare4 = TIM_DIER_CC4DE, COM = TIM_DIER_COMDE, Trigger = TIM_DIER_TDE } |
enum | Event : uint32_t { Break2 = TIM_EGR_B2G, Break = TIM_EGR_BG, CaptureCompareControlUpdate = TIM_EGR_COMG, Trigger = TIM_EGR_TG, CaptureCompare4 = TIM_EGR_CC4G, CaptureCompare3 = TIM_EGR_CC3G, CaptureCompare2 = TIM_EGR_CC2G, CaptureCompare1 = TIM_EGR_CC1G, Update = TIM_EGR_UG } |
enum | InputCaptureMapping : uint32_t { InputOwn = 1, InputOther = 2, InternalTrigger = 3 } |
enum | InputCapturePolarity : uint32_t { Rising = 0, Falling = TIM_CCER_CC1P, Both = TIM_CCER_CC1NP | TIM_CCER_CC1P } |
enum | InputCapturePrescaler : uint32_t { Div1 = 0, Div2 = 1, Div4 = 2, Div8 = 3 } |
enum | Interrupt : uint32_t { Update = TIM_DIER_UIE, CaptureCompare1 = TIM_DIER_CC1IE, CaptureCompare2 = TIM_DIER_CC2IE, CaptureCompare3 = TIM_DIER_CC3IE, CaptureCompare4 = TIM_DIER_CC4IE, Trigger = TIM_DIER_TIE, COM = TIM_DIER_COMIE, Break = TIM_DIER_BIE } |
enum | InterruptFlag : uint32_t { Update = TIM_SR_UIF, CaptureCompare1 = TIM_SR_CC1IF, CaptureCompare2 = TIM_SR_CC2IF, CaptureCompare3 = TIM_SR_CC3IF, CaptureCompare4 = TIM_SR_CC4IF, Trigger = TIM_SR_TIF, Overcapture1 = TIM_SR_CC1OF, Overcapture2 = TIM_SR_CC2OF, Overcapture3 = TIM_SR_CC3OF, Overcapture4 = TIM_SR_CC4OF, COM = TIM_SR_COMIF, Break = TIM_SR_BIF } |
enum | Mode : uint32_t { UpCounter = 0, DownCounter = TIM_CR1_DIR, OneShotUpCounter = TIM_CR1_OPM, OneShotDownCounter = TIM_CR1_DIR | TIM_CR1_OPM, Mode::CenterAligned1 = TIM_CR1_CMS_0, Mode::CenterAligned2 = TIM_CR1_CMS_1, Mode::CenterAligned3 = TIM_CR1_CMS_1 | TIM_CR1_CMS_0 } |
enum | OffStateForIdleMode : uint32_t { Disable = 0, Enable = TIM_BDTR_OSSI } |
enum | OffStateForRunMode : uint32_t { Disable = 0, Enable = TIM_BDTR_OSSR } |
enum | OutputCompareMode : uint32_t { OutputCompareMode::Inactive = 0, OutputCompareMode::HighOnMatch = TIM_CCMR1_OC1M_0, OutputCompareMode::LowOnMatch = TIM_CCMR1_OC1M_1, OutputCompareMode::Toggle = TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0, OutputCompareMode::ForceInactive = TIM_CCMR1_OC1M_2, OutputCompareMode::ForceActive = TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_0, OutputCompareMode::Pwm = TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1, OutputCompareMode::Pwm2 = TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0 } |
enum | OutputComparePolarity : uint32_t { ActiveHigh = 0, ActiveLow = TIM_CCER_CC1P } |
enum | OutputComparePreload : uint32_t { Disable = 0, Enable = TIM_CCMR1_OC1PE } |
enum | PinState : uint32_t { Disable = 0, Enable = 1 } |
Public Member Functions | |
MODM_FLAGS32 (Interrupt) | |
MODM_FLAGS32 (InterruptFlag) | |
MODM_FLAGS32 (OutputCompareMode) | |
MODM_FLAGS32 (Interrupt) | |
MODM_FLAGS32 (InterruptFlag) | |
Static Public Member Functions | |
template<class... Signals> | |
static void | connect () |
static void | clockEnable () |
static void | enable () |
static void | disable () |
static bool | isEnabled () |
static void | pause () |
static void | start () |
static void | setMode (Mode mode, SlaveMode slaveMode=SlaveMode::Disabled, SlaveModeTrigger slaveModeTrigger=static_cast< SlaveModeTrigger >(0), MasterMode masterMode=MasterMode::Reset, bool enableOnePulseMode=false, bool bufferAutoReloadRegister=true, bool limitUpdateEventRequestSource=true) |
static void | setPrescaler (uint16_t prescaler) |
static uint16_t | getPrescaler () |
static void | setOverflow (Value overflow) |
static Value | getOverflow () |
template<class SystemClock > | |
static constexpr uint32_t | getClockFrequency () |
template<class SystemClock , class Rep , class Period > | |
static Value | setPeriod (std::chrono::duration< Rep, Period > duration, bool autoApply=true) |
template<class SystemClock > | |
static uint32_t | getTickFrequency () |
static void | generateEvent (Event ev) |
static void | applyAndReset () |
static Value | getValue () |
static void | setValue (Value value) |
static constexpr bool | hasAdvancedPwmControl () |
static bool | isCountingUp () |
static bool | isCountingDown () |
static void | configureInputChannel (uint32_t channel, uint8_t filter) |
template<typename Signal > | |
static void | configureInputChannel (uint8_t filter) |
static void | configureInputChannel (uint32_t channel, InputCaptureMapping input, InputCapturePrescaler prescaler, InputCapturePolarity polarity, uint8_t filter, bool xor_ch1_3=false) |
template<typename Signal > | |
static void | configureInputChannel (InputCaptureMapping input, InputCapturePrescaler prescaler, InputCapturePolarity polarity, uint8_t filter, bool xor_ch1_3=false) |
static void | configureOutputChannel (uint32_t channel, OutputCompareMode_t mode, Value compareValue, PinState out=PinState::Enable, bool enableComparePreload=true) |
template<typename Signal > | |
static void | configureOutputChannel (OutputCompareMode_t mode, Value compareValue, PinState out=PinState::Enable, bool enableComparePreload=true) |
static void | configureOutputChannel (uint32_t channel, OutputCompareMode mode, Value compareValue, PinState out, OutputComparePolarity polarity, OutputComparePreload preload=OutputComparePreload::Disable) |
template<typename Signal > | |
static void | configureOutputChannel (OutputCompareMode mode, Value compareValue, PinState out, OutputComparePolarity polarity, OutputComparePreload preload=OutputComparePreload::Disable) |
static void | configureOutputChannel (uint32_t channel, OutputCompareMode mode, PinState out, OutputComparePolarity polarity, PinState out_n, OutputComparePolarity polarity_n=OutputComparePolarity::ActiveHigh, OutputComparePreload preload=OutputComparePreload::Disable) |
template<typename Signal > | |
static void | configureOutputChannel (OutputCompareMode mode, PinState out, OutputComparePolarity polarity, PinState out_n, OutputComparePolarity polarity_n=OutputComparePolarity::ActiveHigh, OutputComparePreload preload=OutputComparePreload::Disable) |
static void | setInvertedPwm (uint32_t channel) |
template<typename Signal > | |
static void | setInvertedPwm () |
static void | setNormalPwm (uint32_t channel) |
template<typename Signal > | |
static void | setNormalPwm () |
static void | forceInactive (uint32_t channel) |
template<typename Signal > | |
static void | forceInactive () |
static void | forceActive (uint32_t channel) |
template<typename Signal > | |
static void | forceActive () |
static bool | isChannelConfiguredAsInput ([[maybe_unused]] uint32_t channel=1) |
static void | setCompareValue (uint32_t channel, Value value) |
template<typename Signal > | |
static void | setCompareValue (Value value) |
static Value | getCompareValue (uint32_t channel) |
template<typename Signal > | |
static Value | getCompareValue () |
static void | enableInterruptVector (bool enable, uint32_t priority) |
static void | enableInterrupt (Interrupt_t interrupt) |
static void | disableInterrupt (Interrupt_t interrupt) |
static InterruptFlag_t | getEnabledInterrupts () |
static void | enableDmaRequest (DmaRequestEnable dmaRequests) |
static void | disableDmaRequest (DmaRequestEnable dmaRequests) |
static InterruptFlag_t | getInterruptFlags () |
static void | acknowledgeInterruptFlags (InterruptFlag_t flags) |
static void | configureInputChannel (uint32_t channel, InputCaptureMapping input, InputCapturePrescaler prescaler, InputCapturePolarity polarity, uint8_t filter) |
static void | configureOutputChannel (uint32_t channel, OutputCompareMode_t mode, uint16_t compareValue) |
static void | enableInterruptVector (bool enable, uint8_t priority) |
template<typename Signal > | |
static consteval bool | isComplementaryChannel () |
static void | setMode (Mode mode, SlaveMode slaveMode=SlaveMode::Disabled, SlaveModeTrigger slaveModeTrigger=(SlaveModeTrigger) 0) |
static void | setMode (Mode mode) |
Static Protected Member Functions | |
template<Peripheral p, typename Signal > | |
static consteval int | signalToChannel () |
General Purpose Timer 14
Interrupt handler:
|
inheritedstrong |
If more than one Compare Channel is available they are always paired. (A channel with an odd number is paired with the next even numbered channel) It is possible to choose as trigger for the input capture functionality either the own timer input or the input associated with the paired channel.
For working with Internal Triggers, TRC can also be selected.
|
inheritedstrong |
|
inheritedstrong |
Enum Values | Documentation |
---|---|
Inactive | Output is independent from the compare result. |
HighOnMatch | Output is forced high on match. |
LowOnMatch | Output is forced low on match. |
Toggle | Output is toggled on match. |
ForceInactive | Output is forced low. |
ForceActive | Output is forced high. |
Pwm | PWM Mode 1. While up-counting, channel is active as long as count is less than channel capture/compare register, else inactive. In downcounting, channel is inactive as long as count exceeds capture/compare register, else active |
Pwm2 | PWM mode 2. In upcounting, channel is inactive as long as count is less than capture/compare register, else active. In downcounting, channel is active as long as count exceeds capture/compare register, else inactive. |
|
strong |
|
inheritedstatic |
TODO Description
|
inheritedstatic |
Configure output channel 1..4.
channel | [1..4] |
mode | Output compare mode |
compareValue | Preloaded output compare value (can be changed later via setCompareValue()) |
|
inheritedstatic |
Enables or disables the Interrupt Vector.
enable | Enable/disable the interrupt vector |
priority | Priority of the interrupt vector (0=highest to 15=lowest). |
|
inlinestatic |
Switch to Active Mode
The channel output will be forced to the active level. Please note: Timer will not be disabled while switching modes.
|
inlinestatic |
Switch to Inactive Mode
The channel output will be forced to the inactive level. Please note: Timer will not be disabled while switching modes.
|
inlinestatic |
Returns if the capture/compare channel of the timer is configured as input.
channel | is not used |
false
if configured as output; true
if configured as input
|
inlinestatic |
Switch to Pwm Mode 2
While upcounting channel will be active as long as the time value is smaller than the compare value, else inactive. Timer will not be disabled while switching modes.
|
inheritedstatic |
Set operation mode of the timer
|
inheritedstatic |
Set operation mode of the timer
In Encoder mode the encoder channels A and B must be connected to channel 1 and 2 of the timer (e.g. TIM2_CH1 and TIM2_CH2).
|
inlinestatic |
Switch to Pwm Mode 1
While upcounting channel will be inactive as long as the time value is smaller than the compare value, else active. Please note: Timer will not be disabled while switching modes.