53 #include <ti/devices/msp432p4xx/inc/msp.h>
61 #define TIMER_A_CMSIS(x) ((Timer_A_Type *) x)
63 #define TIMER_A_CCR0_INTERRUPT 0x00
64 #define TIMER_A_CCRX_AND_OVERFLOW_INTERRUPT 0x01
201 #define TIMER_A_THRESHOLD 50
209 #define TIMER_A_CLOCKSOURCE_DIVIDER_1 0x01
210 #define TIMER_A_CLOCKSOURCE_DIVIDER_2 0x02
211 #define TIMER_A_CLOCKSOURCE_DIVIDER_4 0x04
212 #define TIMER_A_CLOCKSOURCE_DIVIDER_8 0x08
213 #define TIMER_A_CLOCKSOURCE_DIVIDER_3 0x03
214 #define TIMER_A_CLOCKSOURCE_DIVIDER_5 0x05
215 #define TIMER_A_CLOCKSOURCE_DIVIDER_6 0x06
216 #define TIMER_A_CLOCKSOURCE_DIVIDER_7 0x07
217 #define TIMER_A_CLOCKSOURCE_DIVIDER_10 0x0A
218 #define TIMER_A_CLOCKSOURCE_DIVIDER_12 0x0C
219 #define TIMER_A_CLOCKSOURCE_DIVIDER_14 0x0E
220 #define TIMER_A_CLOCKSOURCE_DIVIDER_16 0x10
221 #define TIMER_A_CLOCKSOURCE_DIVIDER_20 0x14
222 #define TIMER_A_CLOCKSOURCE_DIVIDER_24 0x18
223 #define TIMER_A_CLOCKSOURCE_DIVIDER_28 0x1C
224 #define TIMER_A_CLOCKSOURCE_DIVIDER_32 0x20
225 #define TIMER_A_CLOCKSOURCE_DIVIDER_40 0x28
226 #define TIMER_A_CLOCKSOURCE_DIVIDER_48 0x30
227 #define TIMER_A_CLOCKSOURCE_DIVIDER_56 0x38
228 #define TIMER_A_CLOCKSOURCE_DIVIDER_64 0x40
235 #define TIMER_A_STOP_MODE TIMER_A_CTL_MC_0
236 #define TIMER_A_UP_MODE TIMER_A_CTL_MC_1
237 #define TIMER_A_CONTINUOUS_MODE TIMER_A_CTL_MC_2
238 #define TIMER_A_UPDOWN_MODE TIMER_A_CTL_MC_3
245 #define TIMER_A_DO_CLEAR TIMER_A_CTL_CLR
246 #define TIMER_A_SKIP_CLEAR 0x00
253 #define TIMER_A_CLOCKSOURCE_EXTERNAL_TXCLK TIMER_A_CTL_SSEL__TACLK
254 #define TIMER_A_CLOCKSOURCE_ACLK TIMER_A_CTL_SSEL__ACLK
255 #define TIMER_A_CLOCKSOURCE_SMCLK TIMER_A_CTL_SSEL__SMCLK
256 #define TIMER_A_CLOCKSOURCE_INVERTED_EXTERNAL_TXCLK TIMER_A_CTL_SSEL__INCLK
264 #define TIMER_A_TAIE_INTERRUPT_ENABLE TIMER_A_CTL_IE
265 #define TIMER_A_TAIE_INTERRUPT_DISABLE 0x00
273 #define TIMER_A_CCIE_CCR0_INTERRUPT_ENABLE TIMER_A_CCTLN_CCIE
274 #define TIMER_A_CCIE_CCR0_INTERRUPT_DISABLE 0x00
282 #define TIMER_A_CAPTURECOMPARE_INTERRUPT_DISABLE 0x00
283 #define TIMER_A_CAPTURECOMPARE_INTERRUPT_ENABLE TIMER_A_CCTLN_CCIE
291 #define TIMER_A_CAPTURE_INPUTSELECT_CCIxA TIMER_A_CCTLN_CCIS_0
292 #define TIMER_A_CAPTURE_INPUTSELECT_CCIxB TIMER_A_CCTLN_CCIS_1
293 #define TIMER_A_CAPTURE_INPUTSELECT_GND TIMER_A_CCTLN_CCIS_2
294 #define TIMER_A_CAPTURE_INPUTSELECT_Vcc TIMER_A_CCTLN_CCIS_3
302 #define TIMER_A_OUTPUTMODE_OUTBITVALUE TIMER_A_CCTLN_OUTMOD_0
303 #define TIMER_A_OUTPUTMODE_SET TIMER_A_CCTLN_OUTMOD_1
304 #define TIMER_A_OUTPUTMODE_TOGGLE_RESET TIMER_A_CCTLN_OUTMOD_2
305 #define TIMER_A_OUTPUTMODE_SET_RESET TIMER_A_CCTLN_OUTMOD_3
306 #define TIMER_A_OUTPUTMODE_TOGGLE TIMER_A_CCTLN_OUTMOD_4
307 #define TIMER_A_OUTPUTMODE_RESET TIMER_A_CCTLN_OUTMOD_5
308 #define TIMER_A_OUTPUTMODE_TOGGLE_SET TIMER_A_CCTLN_OUTMOD_6
309 #define TIMER_A_OUTPUTMODE_RESET_SET TIMER_A_CCTLN_OUTMOD_7
316 #define TIMER_A_CAPTURECOMPARE_REGISTER_0 0x02
317 #define TIMER_A_CAPTURECOMPARE_REGISTER_1 0x04
318 #define TIMER_A_CAPTURECOMPARE_REGISTER_2 0x06
319 #define TIMER_A_CAPTURECOMPARE_REGISTER_3 0x08
320 #define TIMER_A_CAPTURECOMPARE_REGISTER_4 0x0A
321 #define TIMER_A_CAPTURECOMPARE_REGISTER_5 0x0C
322 #define TIMER_A_CAPTURECOMPARE_REGISTER_6 0x0E
329 #define TIMER_A_CAPTUREMODE_NO_CAPTURE TIMER_A_CCTLN_CM_0
330 #define TIMER_A_CAPTUREMODE_RISING_EDGE TIMER_A_CCTLN_CM_1
331 #define TIMER_A_CAPTUREMODE_FALLING_EDGE TIMER_A_CCTLN_CM_2
332 #define TIMER_A_CAPTUREMODE_RISING_AND_FALLING_EDGE TIMER_A_CCTLN_CM_3
340 #define TIMER_A_CAPTURE_ASYNCHRONOUS 0x00
341 #define TIMER_A_CAPTURE_SYNCHRONOUS TIMER_A_CCTLN_SCS
348 #define TIMER_A_CAPTURE_OVERFLOW TIMER_A_CCTLN_COV
349 #define TIMER_A_CAPTURECOMPARE_INTERRUPT_FLAG TIMER_A_CCTLN_CCIFG
356 #define TIMER_A_READ_SYNCHRONIZED_CAPTURECOMPAREINPUT TIMER_A_CCTLN_SCCI
357 #define TIMER_A_READ_CAPTURE_COMPARE_INPUT TIMER_A_CCTLN_CCI
360 #define TIMER_A_CAPTURECOMPARE_INPUT_HIGH 0x01
361 #define TIMER_A_CAPTURECOMPARE_INPUT_LOW 0x00
369 #define TIMER_A_OUTPUTMODE_OUTBITVALUE_HIGH TIMER_A_CCTLN_OUT
370 #define TIMER_A_OUTPUTMODE_OUTBITVALUE_LOW 0x00
378 #define TIMER_A_INTERRUPT_NOT_PENDING 0x00
379 #define TIMER_A_INTERRUPT_PENDING 0x01
383 #define Timer_A_setDutyCycle(timer,dutyCycle) \
384 Timer_A_setCompareValue(timer,dutyCycle)
769 uint_fast16_t captureCompareRegister,
770 uint_fast16_t synchronizedSetting);
799 uint_fast16_t captureCompareRegister);
827 uint_fast16_t captureCompareRegister);
859 uint_fast16_t captureCompareRegister,
860 uint_fast8_t outputModeOutBitValue);
977 uint_fast16_t compareRegister, uint_fast16_t compareValue);
1043 uint_fast16_t captureCompareRegister);
1132 uint_fast16_t captureCompareRegister);
1150 uint_fast16_t captureCompareRegister);
1176 uint_fast16_t captureCompareRegister, uint_fast16_t mask);
1200 uint_fast16_t captureCompareRegister);
1234 uint_fast8_t interruptSelect,
void (*intHandler)(
void));
1265 uint_fast8_t interruptSelect);
1268 #define Timer_A_clearTimerInterrupt Timer_A_clearInterruptFlag
1269 #define Timer_A_clear Timer_A_clearTimer
1270 #define Timer_A_initCaptureMode Timer_A_initCapture
1271 #define Timer_A_initCompareMode Timer_A_initCompare
1272 #define Timer_A_initContinuousMode Timer_A_configureContinuousMode
1273 #define Timer_A_initUpDownMode Timer_A_configureUpDownMode
1274 #define Timer_A_initUpMode Timer_A_configureUpMode
1275 #define Timer_A_outputPWM Timer_A_generatePWM
1276 #define Timer_A_stop Timer_A_stopTimer
uint_fast16_t compareOutputMode
Definition: timer_a.h:190
void Timer_A_stopTimer(uint32_t timer)
Definition: timer_a.c:559
Type definition for _Timer_A_PWMConfig structure.
Definition: timer_a.h:184
uint_fast16_t timerClear
Definition: timer_a.h:105
uint_fast16_t clockSource
Definition: timer_a.h:122
void Timer_A_disableInterrupt(uint32_t timer)
Definition: timer_a.c:612
uint16_t Timer_A_getCounterValue(uint32_t timer)
Definition: timer_a.c:385
uint_fast8_t captureInterruptEnable
Definition: timer_a.h:148
uint_fast16_t clockSourceDivider
Definition: timer_a.h:187
uint_fast8_t Timer_A_getOutputForOutputModeOutBitValue(uint32_t timer, uint_fast16_t captureCompareRegister)
Definition: timer_a.c:444
uint_fast16_t timerClear
Definition: timer_a.h:127
void Timer_A_clearCaptureCompareInterrupt(uint32_t timer, uint_fast16_t captureCompareRegister)
Definition: timer_a.c:585
uint32_t Timer_A_getCaptureCompareInterruptStatus(uint32_t timer, uint_fast16_t captureCompareRegister, uint_fast16_t mask)
Definition: timer_a.c:667
uint_fast16_t timerInterruptEnable_TAIE
Definition: timer_a.h:103
uint32_t Timer_A_getCaptureCompareEnabledInterruptStatus(uint32_t timer, uint_fast16_t captureCompareRegister)
Definition: timer_a.c:686
struct _Timer_A_ContinuousModeConfig Timer_A_ContinuousModeConfig
struct _Timer_A_CaptureModeConfig Timer_A_CaptureModeConfig
uint_fast16_t synchronizeCaptureSource
Definition: timer_a.h:147
uint_fast16_t clockSource
Definition: timer_a.h:100
uint_fast16_t compareRegister
Definition: timer_a.h:189
void Timer_A_initCompare(uint32_t timer, const Timer_A_CompareModeConfig *config)
Definition: timer_a.c:324
void Timer_A_configureUpDownMode(uint32_t timer, const Timer_A_UpDownModeConfig *config)
Definition: timer_a.c:205
Type definition for _Timer_A_UpDownModeConfig structure.
Definition: timer_a.h:120
uint_fast16_t timerPeriod
Definition: timer_a.h:102
void Timer_A_initCapture(uint32_t timer, const Timer_A_CaptureModeConfig *config)
Definition: timer_a.c:240
void Timer_A_registerInterrupt(uint32_t timer, uint_fast8_t interruptSelect, void(*intHandler)(void))
Definition: timer_a.c:699
struct _Timer_A_PWMConfig Timer_A_PWMConfig
void Timer_A_unregisterInterrupt(uint32_t timer, uint_fast8_t interruptSelect)
Definition: timer_a.c:754
uint_fast8_t Timer_A_getSynchronizedCaptureCompareInput(uint32_t timer, uint_fast16_t captureCompareRegister, uint_fast16_t synchronizedSetting)
Definition: timer_a.c:414
uint_fast16_t captureOutputMode
Definition: timer_a.h:149
uint_fast16_t Timer_A_getCaptureCompareCount(uint32_t timer, uint_fast16_t captureCompareRegister)
Definition: timer_a.c:469
uint_fast16_t timerPeriod
Definition: timer_a.h:188
uint_fast16_t clockSourceDivider
Definition: timer_a.h:81
uint_fast16_t compareInterruptEnable
Definition: timer_a.h:167
uint_fast16_t compareValue
Definition: timer_a.h:169
uint32_t Timer_A_getInterruptStatus(uint32_t timer)
Definition: timer_a.c:617
uint_fast16_t clockSourceDivider
Definition: timer_a.h:123
Type definition for _Timer_A_UpModeConfig structure.
Definition: timer_a.h:98
uint_fast16_t clockSourceDivider
Definition: timer_a.h:101
void Timer_A_startCounter(uint32_t timer, uint_fast16_t timerMode)
Definition: timer_a.c:90
uint_fast16_t dutyCycle
Definition: timer_a.h:191
uint_fast16_t clockSource
Definition: timer_a.h:80
void Timer_A_setOutputForOutputModeOutBitValue(uint32_t timer, uint_fast16_t captureCompareRegister, uint_fast8_t outputModeOutBitValue)
Definition: timer_a.c:491
uint_fast16_t captureInputSelect
Definition: timer_a.h:146
uint_fast16_t timerInterruptEnable_TAIE
Definition: timer_a.h:125
struct _Timer_A_UpModeConfig Timer_A_UpModeConfig
void Timer_A_configureContinuousMode(uint32_t timer, const Timer_A_ContinuousModeConfig *config)
Definition: timer_a.c:100
uint_fast16_t timerClear
Definition: timer_a.h:83
void Timer_A_clearTimer(uint32_t timer)
Definition: timer_a.c:409
uint_fast16_t clockSource
Definition: timer_a.h:186
void Timer_A_setCompareValue(uint32_t timer, uint_fast16_t compareRegister, uint_fast16_t compareValue)
Definition: timer_a.c:564
Type definition for _Timer_A_CompareModeConfig structure.
Definition: timer_a.h:164
void Timer_A_generatePWM(uint32_t timer, const Timer_A_PWMConfig *config)
Definition: timer_a.c:502
uint_fast16_t timerInterruptEnable_TAIE
Definition: timer_a.h:82
uint_fast16_t compareRegister
Definition: timer_a.h:166
void Timer_A_enableInterrupt(uint32_t timer)
Definition: timer_a.c:607
struct _Timer_A_UpDownModeConfig Timer_A_UpDownModeConfig
Type definition for _Timer_A_ContinuousModeConfig structure.
Definition: timer_a.h:78
uint_fast16_t captureMode
Definition: timer_a.h:145
uint_fast16_t compareOutputMode
Definition: timer_a.h:168
uint_fast16_t captureRegister
Definition: timer_a.h:144
void Timer_A_disableCaptureCompareInterrupt(uint32_t timer, uint_fast16_t captureCompareRegister)
Definition: timer_a.c:644
Type definition for _Timer_A_CaptureModeConfig structure.
Definition: timer_a.h:142
uint_fast16_t captureCompareInterruptEnable_CCR0_CCIE
Definition: timer_a.h:126
void Timer_A_clearInterruptFlag(uint32_t timer)
Definition: timer_a.c:580
struct _Timer_A_CompareModeConfig Timer_A_CompareModeConfig
void Timer_A_enableCaptureCompareInterrupt(uint32_t timer, uint_fast16_t captureCompareRegister)
Definition: timer_a.c:622
uint32_t Timer_A_getEnabledInterruptStatus(uint32_t timer)
Definition: timer_a.c:674
uint_fast16_t timerPeriod
Definition: timer_a.h:124
uint_fast16_t captureCompareInterruptEnable_CCR0_CCIE
Definition: timer_a.h:104
void Timer_A_configureUpMode(uint32_t timer, const Timer_A_UpModeConfig *config)
Definition: timer_a.c:170