File tree Expand file tree Collapse file tree 2 files changed +30
-5
lines changed
targets/TARGET_Freescale/TARGET_MCUXpresso_MCUS/TARGET_KW41Z Expand file tree Collapse file tree 2 files changed +30
-5
lines changed Original file line number Diff line number Diff line change 1680
1680
#define FSL_FEATURE_TPM_HAS_PAUSE_COUNTER_ON_TRIGGER (1)
1681
1681
/* @brief Has external trigger selection. */
1682
1682
#define FSL_FEATURE_TPM_HAS_EXTERNAL_TRIGGER_SELECTION (1)
1683
- /* @brief Has TPM_COMBINE. */
1683
+ /* @brief Has TPM_COMBINE register . */
1684
1684
#define FSL_FEATURE_TPM_HAS_COMBINE (1)
1685
+ /* @brief Whether COMBINE register has effect. */
1686
+ #define FSL_FEATURE_TPM_COMBINE_HAS_EFFECTn (x ) \
1687
+ ((x) == TPM0 ? (0) : \
1688
+ ((x) == TPM1 ? (1) : \
1689
+ ((x) == TPM2 ? (1) : (-1))))
1685
1690
/* @brief Has TPM_POL. */
1686
1691
#define FSL_FEATURE_TPM_HAS_POL (1)
1687
- /* @brief Has TPM_FILTER. */
1692
+ /* @brief Has TPM_FILTER register . */
1688
1693
#define FSL_FEATURE_TPM_HAS_FILTER (1)
1689
- /* @brief Has TPM_QDCTRL. */
1694
+ /* @brief Whether FILTER register has effect. */
1695
+ #define FSL_FEATURE_TPM_FILTER_HAS_EFFECTn (x ) \
1696
+ ((x) == TPM0 ? (0) : \
1697
+ ((x) == TPM1 ? (1) : \
1698
+ ((x) == TPM2 ? (1) : (-1))))
1699
+ /* @brief Has TPM_QDCTRL register. */
1690
1700
#define FSL_FEATURE_TPM_HAS_QDCTRL (1)
1701
+ /* @brief Whether QDCTRL register has effect. */
1702
+ #define FSL_FEATURE_TPM_QDCTRL_HAS_EFFECTn (x ) \
1703
+ ((x) == TPM0 ? (0) : \
1704
+ ((x) == TPM1 ? (1) : \
1705
+ ((x) == TPM2 ? (1) : (-1))))
1691
1706
1692
1707
/* TRNG0 module features */
1693
1708
Original file line number Diff line number Diff line change @@ -162,15 +162,25 @@ status_t TPM_SetupPwm(TPM_Type *base,
162
162
assert (pwmFreq_Hz );
163
163
assert (numOfChnls );
164
164
assert (srcClock_Hz );
165
+ #if defined(FSL_FEATURE_TPM_HAS_COMBINE ) && FSL_FEATURE_TPM_HAS_COMBINE
166
+ if (mode == kTPM_CombinedPwm )
167
+ {
168
+ assert (FSL_FEATURE_TPM_COMBINE_HAS_EFFECTn (base ));
169
+ }
170
+ #endif
165
171
166
172
uint32_t mod ;
167
173
uint32_t tpmClock = (srcClock_Hz / (1U << (base -> SC & TPM_SC_PS_MASK )));
168
174
uint16_t cnv ;
169
175
uint8_t i ;
170
176
171
177
#if defined(FSL_FEATURE_TPM_HAS_QDCTRL ) && FSL_FEATURE_TPM_HAS_QDCTRL
172
- /* Clear quadrature Decoder mode because in quadrature Decoder mode PWM doesn't operate*/
173
- base -> QDCTRL &= ~TPM_QDCTRL_QUADEN_MASK ;
178
+ /* The TPM's QDCTRL register required to be effective */
179
+ if ( FSL_FEATURE_TPM_QDCTRL_HAS_EFFECTn (base ) )
180
+ {
181
+ /* Clear quadrature Decoder mode because in quadrature Decoder mode PWM doesn't operate*/
182
+ base -> QDCTRL &= ~TPM_QDCTRL_QUADEN_MASK ;
183
+ }
174
184
#endif
175
185
176
186
switch (mode )
You can’t perform that action at this time.
0 commit comments