7 #ifndef __MSP430WARE_TIMER_A_H__
8 #define __MSP430WARE_TIMER_A_H__
10 #include "inc/hw_memmap.h"
12 #ifdef __MSP430_HAS_TxA7__
25 #include "inc/hw_memmap.h"
33 #define TIMER_A_THRESHOLD 50
358 #define TIMER_A_CLOCKSOURCE_DIVIDER_1 0x00
359 #define TIMER_A_CLOCKSOURCE_DIVIDER_2 0x08
360 #define TIMER_A_CLOCKSOURCE_DIVIDER_3 0x02
361 #define TIMER_A_CLOCKSOURCE_DIVIDER_4 0x10
362 #define TIMER_A_CLOCKSOURCE_DIVIDER_5 0x04
363 #define TIMER_A_CLOCKSOURCE_DIVIDER_6 0x05
364 #define TIMER_A_CLOCKSOURCE_DIVIDER_7 0x06
365 #define TIMER_A_CLOCKSOURCE_DIVIDER_8 0x18
366 #define TIMER_A_CLOCKSOURCE_DIVIDER_10 0x0C
367 #define TIMER_A_CLOCKSOURCE_DIVIDER_12 0x0D
368 #define TIMER_A_CLOCKSOURCE_DIVIDER_14 0x0E
369 #define TIMER_A_CLOCKSOURCE_DIVIDER_16 0x0F
370 #define TIMER_A_CLOCKSOURCE_DIVIDER_20 0x14
371 #define TIMER_A_CLOCKSOURCE_DIVIDER_24 0x15
372 #define TIMER_A_CLOCKSOURCE_DIVIDER_28 0x16
373 #define TIMER_A_CLOCKSOURCE_DIVIDER_32 0x17
374 #define TIMER_A_CLOCKSOURCE_DIVIDER_40 0x1C
375 #define TIMER_A_CLOCKSOURCE_DIVIDER_48 0x1D
376 #define TIMER_A_CLOCKSOURCE_DIVIDER_56 0x1E
377 #define TIMER_A_CLOCKSOURCE_DIVIDER_64 0x1F
385 #define TIMER_A_STOP_MODE MC_0
386 #define TIMER_A_UP_MODE MC_1
387 #define TIMER_A_CONTINUOUS_MODE MC_2
388 #define TIMER_A_UPDOWN_MODE MC_3
397 #define TIMER_A_DO_CLEAR TACLR
398 #define TIMER_A_SKIP_CLEAR 0x00
407 #define TIMER_A_CLOCKSOURCE_EXTERNAL_TXCLK TASSEL__TACLK
408 #define TIMER_A_CLOCKSOURCE_ACLK TASSEL__ACLK
409 #define TIMER_A_CLOCKSOURCE_SMCLK TASSEL__SMCLK
410 #define TIMER_A_CLOCKSOURCE_INVERTED_EXTERNAL_TXCLK TASSEL__INCLK
419 #define TIMER_A_TAIE_INTERRUPT_ENABLE TAIE
420 #define TIMER_A_TAIE_INTERRUPT_DISABLE 0x00
428 #define TIMER_A_CCIE_CCR0_INTERRUPT_ENABLE CCIE
429 #define TIMER_A_CCIE_CCR0_INTERRUPT_DISABLE 0x00
437 #define TIMER_A_CAPTURECOMPARE_INTERRUPT_DISABLE 0x00
438 #define TIMER_A_CAPTURECOMPARE_INTERRUPT_ENABLE CCIE
446 #define TIMER_A_CAPTURE_INPUTSELECT_CCIxA CCIS_0
447 #define TIMER_A_CAPTURE_INPUTSELECT_CCIxB CCIS_1
448 #define TIMER_A_CAPTURE_INPUTSELECT_GND CCIS_2
449 #define TIMER_A_CAPTURE_INPUTSELECT_Vcc CCIS_3
458 #define TIMER_A_OUTPUTMODE_OUTBITVALUE OUTMOD_0
459 #define TIMER_A_OUTPUTMODE_SET OUTMOD_1
460 #define TIMER_A_OUTPUTMODE_TOGGLE_RESET OUTMOD_2
461 #define TIMER_A_OUTPUTMODE_SET_RESET OUTMOD_3
462 #define TIMER_A_OUTPUTMODE_TOGGLE OUTMOD_4
463 #define TIMER_A_OUTPUTMODE_RESET OUTMOD_5
464 #define TIMER_A_OUTPUTMODE_TOGGLE_SET OUTMOD_6
465 #define TIMER_A_OUTPUTMODE_RESET_SET OUTMOD_7
483 #define TIMER_A_CAPTURECOMPARE_REGISTER_0 0x02
484 #define TIMER_A_CAPTURECOMPARE_REGISTER_1 0x04
485 #define TIMER_A_CAPTURECOMPARE_REGISTER_2 0x06
493 #define TIMER_A_CAPTUREMODE_NO_CAPTURE CM_0
494 #define TIMER_A_CAPTUREMODE_RISING_EDGE CM_1
495 #define TIMER_A_CAPTUREMODE_FALLING_EDGE CM_2
496 #define TIMER_A_CAPTUREMODE_RISING_AND_FALLING_EDGE CM_3
504 #define TIMER_A_CAPTURE_ASYNCHRONOUS 0x00
505 #define TIMER_A_CAPTURE_SYNCHRONOUS SCS
514 #define TIMER_A_CAPTURE_OVERFLOW COV
515 #define TIMER_A_CAPTURECOMPARE_INTERRUPT_FLAG CCIFG
523 #define TIMER_A_READ_SYNCHRONIZED_CAPTURECOMPAREINPUT SCCI
524 #define TIMER_A_READ_CAPTURE_COMPARE_INPUT CCI
533 #define TIMER_A_CAPTURECOMPARE_INPUT_HIGH 0x01
534 #define TIMER_A_CAPTURECOMPARE_INPUT_LOW 0x00
543 #define TIMER_A_OUTPUTMODE_OUTBITVALUE_HIGH OUT
544 #define TIMER_A_OUTPUTMODE_OUTBITVALUE_LOW 0x00
552 #define TIMER_A_INTERRUPT_NOT_PENDING 0x00
553 #define TIMER_A_INTERRUPT_PENDING 0x01
722 uint16_t captureCompareRegister);
741 uint16_t captureCompareRegister);
765 uint16_t captureCompareRegister,
802 uint16_t captureCompareRegister,
803 uint16_t
synchronized);
822 uint16_t captureCompareRegister);
839 uint16_t captureCompareRegister);
862 uint16_t captureCompareRegister,
863 uint8_t outputModeOutBitValue);
914 uint16_t compareRegister,
915 uint16_t compareValue);
948 uint16_t captureCompareRegister);
976 #endif // __MSP430WARE_TIMER_A_H__
void Timer_A_initContinuousMode(uint16_t baseAddress, Timer_A_initContinuousModeParam *param)
Configures Timer_A in continuous mode.
Definition: timer_a.c:28
uint16_t captureOutputMode
Definition: timer_a.h:135
uint16_t timerClear
Definition: timer_a.h:82
uint16_t synchronizeCaptureSource
Definition: timer_a.h:119
bool startTimer
Whether to start the timer immediately.
Definition: timer_a.h:84
void Timer_A_disableCaptureCompareInterrupt(uint16_t baseAddress, uint16_t captureCompareRegister)
Disable capture compare interrupt.
Definition: timer_a.c:178
uint16_t captureRegister
Definition: timer_a.h:100
void Timer_A_startCounter(uint16_t baseAddress, uint16_t timerMode)
Starts Timer_A counter.
Definition: timer_a.c:21
uint16_t clockSourceDivider
Definition: timer_a.h:232
void Timer_A_stop(uint16_t baseAddress)
Stops the timer.
Definition: timer_a.c:268
void Timer_A_clearCaptureCompareInterrupt(uint16_t baseAddress, uint16_t captureCompareRegister)
Clears the capture-compare interrupt flag.
Definition: timer_a.c:286
uint16_t compareOutputMode
Definition: timer_a.h:252
uint16_t timerClear
Definition: timer_a.h:311
uint16_t timerPeriod
Is the specified Timer_A period.
Definition: timer_a.h:176
void Timer_A_enableInterrupt(uint16_t baseAddress)
Enable timer interrupt.
Definition: timer_a.c:156
void Timer_A_clearTimerInterrupt(uint16_t baseAddress)
Clears the Timer TAIFG interrupt flag.
Definition: timer_a.c:281
uint16_t Timer_A_getCaptureCompareCount(uint16_t baseAddress, uint16_t captureCompareRegister)
Get current capturecompare count.
Definition: timer_a.c:224
Used in the Timer_A_initUpDownMode() function as the param parameter.
Definition: timer_a.h:144
uint16_t clockSource
Definition: timer_a.h:48
uint8_t Timer_A_getSynchronizedCaptureCompareInput(uint16_t baseAddress, uint16_t captureCompareRegister, uint16_t synchronized)
Get synchronized capturecompare input.
Definition: timer_a.c:199
uint16_t compareOutputMode
Definition: timer_a.h:345
uint16_t timerInterruptEnable_TAIE
Definition: timer_a.h:181
void Timer_A_initCompareMode(uint16_t baseAddress, Timer_A_initCompareModeParam *param)
Initializes Compare Mode.
Definition: timer_a.c:139
uint16_t dutyCycle
Specifies the dutycycle for the generated waveform.
Definition: timer_a.h:254
bool startTimer
Whether to start the timer immediately.
Definition: timer_a.h:313
uint16_t timerClear
Definition: timer_a.h:192
uint16_t captureCompareInterruptEnable_CCR0_CCIE
Definition: timer_a.h:186
uint16_t compareInterruptEnable
Definition: timer_a.h:334
uint16_t timerPeriod
Definition: timer_a.h:295
void Timer_A_setOutputForOutputModeOutBitValue(uint16_t baseAddress, uint16_t captureCompareRegister, uint8_t outputModeOutBitValue)
Set output bit for output mode.
Definition: timer_a.c:232
uint16_t clockSourceDivider
Definition: timer_a.h:292
Used in the Timer_A_initCaptureMode() function as the param parameter.
Definition: timer_a.h:93
Used in the Timer_A_initUpMode() function as the param parameter.
Definition: timer_a.h:262
Used in the Timer_A_initCompareMode() function as the param parameter.
Definition: timer_a.h:322
void Timer_A_enableCaptureCompareInterrupt(uint16_t baseAddress, uint16_t captureCompareRegister)
Enable capture compare interrupt.
Definition: timer_a.c:171
uint16_t captureMode
Definition: timer_a.h:107
void Timer_A_disableInterrupt(uint16_t baseAddress)
Disable timer interrupt.
Definition: timer_a.c:161
void Timer_A_initUpDownMode(uint16_t baseAddress, Timer_A_initUpDownModeParam *param)
Configures Timer_A in up down mode.
Definition: timer_a.c:85
uint16_t clockSource
Definition: timer_a.h:209
uint16_t compareValue
Is the count to be compared with in compare mode.
Definition: timer_a.h:347
uint16_t captureInputSelect
Definition: timer_a.h:114
void Timer_A_setCompareValue(uint16_t baseAddress, uint16_t compareRegister, uint16_t compareValue)
Sets the value of the capture-compare register.
Definition: timer_a.c:273
void Timer_A_initCaptureMode(uint16_t baseAddress, Timer_A_initCaptureModeParam *param)
Initializes Capture Mode.
Definition: timer_a.c:117
uint16_t Timer_A_getCounterValue(uint16_t baseAddress)
Reads the current timer count value.
Definition: timer_a.c:293
uint32_t Timer_A_getInterruptStatus(uint16_t baseAddress)
Get timer interrupt status.
Definition: timer_a.c:166
Used in the Timer_A_outputPWM() function as the param parameter.
Definition: timer_a.h:202
void Timer_A_outputPWM(uint16_t baseAddress, Timer_A_outputPWMParam *param)
Generate a PWM with timer running in up mode.
Definition: timer_a.c:242
uint16_t compareRegister
Definition: timer_a.h:329
uint16_t timerInterruptEnable_TAIE
Definition: timer_a.h:300
void Timer_A_initUpMode(uint16_t baseAddress, Timer_A_initUpModeParam *param)
Configures Timer_A in up mode.
Definition: timer_a.c:52
bool startTimer
Whether to start the timer immediately.
Definition: timer_a.h:194
uint16_t clockSourceDivider
Definition: timer_a.h:71
uint32_t Timer_A_getCaptureCompareInterruptStatus(uint16_t baseAddress, uint16_t captureCompareRegister, uint16_t mask)
Return capture compare interrupt status.
Definition: timer_a.c:185
uint16_t clockSource
Definition: timer_a.h:151
uint8_t Timer_A_getOutputForOutputModeOutBitValue(uint16_t baseAddress, uint16_t captureCompareRegister)
Get output bit for output mode.
Definition: timer_a.c:212
uint16_t clockSourceDivider
Definition: timer_a.h:174
Used in the Timer_A_initContinuousMode() function as the param parameter.
Definition: timer_a.h:41
uint16_t compareRegister
Definition: timer_a.h:241
void Timer_A_clear(uint16_t baseAddress)
Reset/Clear the timer clock divider, count direction, count.
Definition: timer_a.c:193
uint16_t captureInterruptEnable
Definition: timer_a.h:124
uint16_t timerPeriod
Selects the desired timer period.
Definition: timer_a.h:234
uint16_t timerInterruptEnable_TAIE
Definition: timer_a.h:76
uint16_t captureCompareInterruptEnable_CCR0_CCIE
Definition: timer_a.h:305
uint16_t clockSource
Definition: timer_a.h:269