7 #ifndef __MSP430WARE_TIMER_D_H__
8 #define __MSP430WARE_TIMER_D_H__
10 #include "inc/hw_memmap.h"
12 #ifdef __MSP430_HAS_TxD7__
25 #include "inc/hw_memmap.h"
33 #define TIMER_D_THRESHOLD 50
518 #define TIMER_D_CLOCKSOURCE_DIVIDER_1 0x00
519 #define TIMER_D_CLOCKSOURCE_DIVIDER_2 0x08
520 #define TIMER_D_CLOCKSOURCE_DIVIDER_3 0x02
521 #define TIMER_D_CLOCKSOURCE_DIVIDER_4 0x10
522 #define TIMER_D_CLOCKSOURCE_DIVIDER_5 0x04
523 #define TIMER_D_CLOCKSOURCE_DIVIDER_6 0x05
524 #define TIMER_D_CLOCKSOURCE_DIVIDER_7 0x06
525 #define TIMER_D_CLOCKSOURCE_DIVIDER_8 0x18
526 #define TIMER_D_CLOCKSOURCE_DIVIDER_10 0x0C
527 #define TIMER_D_CLOCKSOURCE_DIVIDER_12 0x0D
528 #define TIMER_D_CLOCKSOURCE_DIVIDER_14 0x0E
529 #define TIMER_D_CLOCKSOURCE_DIVIDER_16 0x0F
530 #define TIMER_D_CLOCKSOURCE_DIVIDER_20 0x14
531 #define TIMER_D_CLOCKSOURCE_DIVIDER_24 0x15
532 #define TIMER_D_CLOCKSOURCE_DIVIDER_28 0x16
533 #define TIMER_D_CLOCKSOURCE_DIVIDER_32 0x17
534 #define TIMER_D_CLOCKSOURCE_DIVIDER_40 0x1C
535 #define TIMER_D_CLOCKSOURCE_DIVIDER_48 0x1D
536 #define TIMER_D_CLOCKSOURCE_DIVIDER_56 0x1E
537 #define TIMER_D_CLOCKSOURCE_DIVIDER_64 0x1F
545 #define TIMER_D_STOP_MODE MC_0
546 #define TIMER_D_UP_MODE MC_1
547 #define TIMER_D_CONTINUOUS_MODE MC_2
548 #define TIMER_D_UPDOWN_MODE MC_3
557 #define TIMER_D_DO_CLEAR TDCLR
558 #define TIMER_D_SKIP_CLEAR 0x00
569 #define TIMER_D_CLOCKSOURCE_EXTERNAL_TDCLK TDSSEL__TACLK
570 #define TIMER_D_CLOCKSOURCE_ACLK TDSSEL__ACLK
571 #define TIMER_D_CLOCKSOURCE_SMCLK TDSSEL__SMCLK
572 #define TIMER_D_CLOCKSOURCE_INVERTED_EXTERNAL_TDCLK TDSSEL__INCLK
583 #define TIMER_D_CLOCKINGMODE_EXTERNAL_CLOCK TDCLKM_0
584 #define TIMER_D_CLOCKINGMODE_HIRES_LOCAL_CLOCK TDCLKM_1
585 #define TIMER_D_CLOCKINGMODE_AUXILIARY_CLK TDCLKM_2
594 #define TIMER_D_TDIE_INTERRUPT_ENABLE TDIE
595 #define TIMER_D_TDIE_INTERRUPT_DISABLE 0x00
603 #define TIMER_D_CAPTURE_INTERRUPT_ENABLE TDIE
604 #define TIMER_D_CAPTURE_INTERRUPT_DISABLE 0x00
612 #define TIMER_D_CCIE_CCR0_INTERRUPT_ENABLE CCIE
613 #define TIMER_D_CCIE_CCR0_INTERRUPT_DISABLE 0x00
621 #define TIMER_D_SINGLE_CAPTURE_MODE 0x00
622 #define TIMER_D_DUAL_CAPTURE_MODE 0x01
630 #define TIMER_D_CAPTURE_INPUTSELECT_CCIxA CCIS_0
631 #define TIMER_D_CAPTURE_INPUTSELECT_CCIxB CCIS_1
632 #define TIMER_D_CAPTURE_INPUTSELECT_GND CCIS_2
633 #define TIMER_D_CAPTURE_INPUTSELECT_Vcc CCIS_3
642 #define TIMER_D_OUTPUTMODE_OUTBITVALUE OUTMOD_0
643 #define TIMER_D_OUTPUTMODE_SET OUTMOD_1
644 #define TIMER_D_OUTPUTMODE_TOGGLE_RESET OUTMOD_2
645 #define TIMER_D_OUTPUTMODE_SET_RESET OUTMOD_3
646 #define TIMER_D_OUTPUTMODE_TOGGLE OUTMOD_4
647 #define TIMER_D_OUTPUTMODE_RESET OUTMOD_5
648 #define TIMER_D_OUTPUTMODE_TOGGLE_SET OUTMOD_6
649 #define TIMER_D_OUTPUTMODE_RESET_SET OUTMOD_7
669 #define TIMER_D_CAPTURECOMPARE_REGISTER_0 0x08
670 #define TIMER_D_CAPTURECOMPARE_REGISTER_1 0x0E
671 #define TIMER_D_CAPTURECOMPARE_REGISTER_2 0x14
672 #define TIMER_D_CAPTURECOMPARE_REGISTER_3 0x1A
673 #define TIMER_D_CAPTURECOMPARE_REGISTER_4 0x20
674 #define TIMER_D_CAPTURECOMPARE_REGISTER_5 0x28
675 #define TIMER_D_CAPTURECOMPARE_REGISTER_6 0x2E
683 #define TIMER_D_CAPTUREMODE_NO_CAPTURE CM_0
684 #define TIMER_D_CAPTUREMODE_RISING_EDGE CM_1
685 #define TIMER_D_CAPTUREMODE_FALLING_EDGE CM_2
686 #define TIMER_D_CAPTUREMODE_RISING_AND_FALLING_EDGE CM_3
694 #define TIMER_D_CAPTURE_ASYNCHRONOUS 0x00
695 #define TIMER_D_CAPTURE_SYNCHRONOUS SCS
703 #define TIMER_D_CAPTURECOMPARE_INTERRUPT_ENABLE CCIE
704 #define TIMER_D_CAPTURECOMPARE_INTERRUPT_DISABLE 0x00
715 #define TIMER_D_HIGH_RES_FREQUENCY_UNLOCK TDHUNLKIE
716 #define TIMER_D_HIGH_RES_FREQUENCY_LOCK TDHLKIE
717 #define TIMER_D_HIGH_RES_FAIL_HIGH TDHFHIE
718 #define TIMER_D_HIGH_RES_FAIL_LOW TDHFLIE
727 #define TIMER_D_CAPTURE_OVERFLOW COV
728 #define TIMER_D_CAPTURECOMPARE_INTERRUPT_FLAG CCIFG
736 #define TIMER_D_READ_SYNCHRONIZED_CAPTURECOMPAREINPUT SCCI
737 #define TIMER_D_READ_CAPTURE_COMPARE_INPUT CCI
746 #define TIMER_D_OUTPUTMODE_OUTBITVALUE_HIGH OUT
747 #define TIMER_D_OUTPUTMODE_OUTBITVALUE_LOW 0x00
755 #define TIMER_D_HIGHRES_64MHZ 0x00
756 #define TIMER_D_HIGHRES_128MHZ 0x01
757 #define TIMER_D_HIGHRES_200MHZ 0x02
758 #define TIMER_D_HIGHRES_256MHZ 0x03
766 #define TIMER_D_HIGHRES_CLK_DIVIDER_1 TDHD__1
767 #define TIMER_D_HIGHRES_CLK_DIVIDER_2 TDHD__2
768 #define TIMER_D_HIGHRES_CLK_DIVIDER_4 TDHD__4
769 #define TIMER_D_HIGHRES_CLK_DIVIDER_8 TDHD__8
777 #define TIMER_D_HIGHRES_CLK_MULTIPLY_FACTOR_8x TDHM_0
778 #define TIMER_D_HIGHRES_CLK_MULTIPLY_FACTOR_16x TDHM_1
786 #define TIMER_D_COMBINE_CCR1_CCR2 2
787 #define TIMER_D_COMBINE_CCR3_CCR4 4
788 #define TIMER_D_COMBINE_CCR5_CCR6 6
796 #define TIMER_D_GROUP_NONE TDCLGRP_0
797 #define TIMER_D_GROUP_CL12_CL23_CL56 TDCLGRP_1
798 #define TIMER_D_GROUP_CL123_CL456 TDCLGRP_2
799 #define TIMER_D_GROUP_ALL TDCLGRP_3
807 #define TIMER_D_COUNTER_16BIT CNTL_0
808 #define TIMER_D_COUNTER_12BIT CNTL_1
809 #define TIMER_D_COUNTER_10BIT CNTL_2
810 #define TIMER_D_COUNTER_8BIT CNTL_3
818 #define TIMER_D_LATCH_ON_WRITE_TO_TDxCCRn_COMPARE_REGISTER CLLD_0
819 #define TIMER_D_LATCH_WHEN_COUNTER_COUNTS_TO_0_IN_UP_OR_CONT_MODE CLLD_1
820 #define TIMER_D_LATCH_WHEN_COUNTER_COUNTS_TO_0_IN_UPDOWN_MODE CLLD_2
821 #define TIMER_D_LATCH_WHEN_COUNTER_COUNTS_TO_CURRENT_COMPARE_LATCH_VALUE CLLD_3
829 #define TIMER_D_HIGHRES_BELOW_15MHz 0x00
830 #define TIMER_D_HIGHRES_ABOVE_15MHz TDHCLKCR
838 #define TIMER_D_CLOCK_RANGE0 0x0000
839 #define TIMER_D_CLOCK_RANGE1 0x2000
840 #define TIMER_D_CLOCK_RANGE2 0x4000
849 #define TIMER_D_CAPTURECOMPARE_INPUT_HIGH 0x01
850 #define TIMER_D_CAPTURECOMPARE_INPUT_LOW 0x00
858 #define TIMER_D_INTERRUPT_NOT_PENDING 0x00
859 #define TIMER_D_INTERRUPT_PENDING 0x01
867 #define TIMER_D_CAPTURECOMPARE_INPUT CCI
1086 uint16_t captureCompareRegister);
1109 uint16_t captureCompareRegister);
1137 uint16_t captureCompareRegister,
1223 uint16_t captureCompareRegister,
1224 uint16_t
synchronized);
1247 uint16_t captureCompareRegister);
1268 uint16_t captureCompareRegister);
1289 uint16_t captureCompareRegister);
1313 uint16_t captureCompareRegister);
1340 uint16_t captureCompareRegister,
1341 uint8_t outputModeOutBitValue);
1395 uint16_t compareRegister,
1396 uint16_t compareValue);
1433 uint16_t captureCompareRegister);
1455 uint8_t desiredHighResFrequency);
1509 uint16_t groupLatch);
1529 uint16_t counterLength);
1559 uint16_t compareRegister,
1560 uint16_t compareLatchLoadEvent);
1662 uint16_t highResCoarseClockRange);
1680 uint16_t highResClockRange);
1708 #endif // __MSP430WARE_TIMER_D_H__
uint8_t highResClockMultiplyFactor
Definition: timer_d.h:301
uint16_t captureMode
Definition: timer_d.h:403
uint16_t timerPeriod
Is the specified timer period.
Definition: timer_d.h:235
void Timer_D_disableCaptureCompareInterrupt(uint16_t baseAddress, uint16_t captureCompareRegister)
Disable capture compare interrupt.
Definition: timer_d.c:192
uint16_t compareOutputMode
Definition: timer_d.h:130
uint16_t timerClear
Definition: timer_d.h:251
Used in the Timer_D_combineTDCCRToOutputPWM() function as the param parameter.
Definition: timer_d.h:317
uint16_t compareRegister
Definition: timer_d.h:114
void Timer_D_enableHighResFastWakeup(uint16_t baseAddress)
Enable High Resolution fast wakeup.
Definition: timer_d.c:472
uint16_t clockSourceDivider
Definition: timer_d.h:171
Used in the Timer_D_initHighResGeneratorInRegulatedMode() function as the param parameter.
Definition: timer_d.h:260
void Timer_D_clearHighResInterrupt(uint16_t baseAddress, uint16_t mask)
Clears High Resolution interrupt status.
Definition: timer_d.c:219
void Timer_D_outputPWM(uint16_t baseAddress, Timer_D_outputPWMParam *param)
Generate a PWM with timer running in up mode.
Definition: timer_d.c:284
uint16_t clockingMode
Definition: timer_d.h:480
uint16_t clockSource
Definition: timer_d.h:451
uint16_t captureRegister
Definition: timer_d.h:396
void Timer_D_enableHighResGeneratorForceON(uint16_t baseAddress)
Enable High Resolution Clock Enhanced Accuracy.
Definition: timer_d.c:492
uint16_t Timer_D_getHighResInterruptStatus(uint16_t baseAddress, uint16_t mask)
Returns High Resolution interrupt status.
Definition: timer_d.c:207
void Timer_D_selectHighResCoarseClockRange(uint16_t baseAddress, uint16_t highResCoarseClockRange)
Select High Resolution Coarse Clock Range.
Definition: timer_d.c:497
uint16_t Timer_D_getCaptureCompareLatchCount(uint16_t baseAddress, uint16_t captureCompareRegister)
Get current capture compare latch register count.
Definition: timer_d.c:260
uint8_t channelCaptureMode
Definition: timer_d.h:436
uint16_t captureInputSelect
Definition: timer_d.h:410
void Timer_D_enableTimerInterrupt(uint16_t baseAddress)
Enable timer interrupt.
Definition: timer_d.c:155
uint16_t timerInterruptEnable_TDIE
Definition: timer_d.h:240
uint16_t compareOutputMode
Definition: timer_d.h:503
void Timer_D_initCompareLatchLoadEvent(uint16_t baseAddress, uint16_t compareRegister, uint16_t compareLatchLoadEvent)
Selects Compare Latch Load Event.
Definition: timer_d.c:457
uint16_t captureCompareInterruptEnable_CCR0_CCIE
Definition: timer_d.h:245
void Timer_D_initUpDownMode(uint16_t baseAddress, Timer_D_initUpDownModeParam *param)
Configures timer in up down mode.
Definition: timer_d.c:80
uint16_t dutyCycle2
Specifies the dutycycle for the generated waveform.
Definition: timer_d.h:376
Used in the Timer_D_initCaptureMode() function as the param parameter.
Definition: timer_d.h:385
void Timer_D_setCompareValue(uint16_t baseAddress, uint16_t compareRegister, uint16_t compareValue)
Sets the value of the capture-compare register.
Definition: timer_d.c:320
uint16_t clockSource
Definition: timer_d.h:148
void Timer_D_initCompareMode(uint16_t baseAddress, Timer_D_initCompareModeParam *param)
Initializes Compare Mode.
Definition: timer_d.c:137
Used in the Timer_D_initCompareMode() function as the param parameter.
Definition: timer_d.h:104
void Timer_D_clearTimerInterrupt(uint16_t baseAddress)
Clears the Timer TDIFG interrupt flag.
Definition: timer_d.c:328
uint16_t clockingMode
Definition: timer_d.h:177
uint16_t compareInterruptEnable
Definition: timer_d.h:119
uint32_t Timer_D_getTimerInterruptStatus(uint16_t baseAddress)
Get timer interrupt status.
Definition: timer_d.c:179
uint16_t clockSourceDivider
Definition: timer_d.h:290
void Timer_D_selectCounterLength(uint16_t baseAddress, uint16_t counterLength)
Selects Timer_D counter length.
Definition: timer_d.c:448
uint16_t clockSourceDivider
Definition: timer_d.h:227
void Timer_D_startCounter(uint16_t baseAddress, uint16_t timerMode)
Starts Timer_D counter.
Definition: timer_d.c:22
uint16_t clockSourceDivider
Definition: timer_d.h:474
Used in the Timer_D_initUpMode() function as the param parameter.
Definition: timer_d.h:40
void Timer_D_selectHighResClockRange(uint16_t baseAddress, uint16_t highResClockRange)
Select High Resolution Clock Range Selection.
Definition: timer_d.c:505
void Timer_D_initContinuousMode(uint16_t baseAddress, Timer_D_initContinuousModeParam *param)
Configures timer in continuous mode.
Definition: timer_d.c:29
uint16_t Timer_D_getCounterValue(uint16_t baseAddress)
Reads the current timer count value.
Definition: timer_d.c:513
uint16_t clockSourceDivider
Definition: timer_d.h:70
uint16_t compareOutputMode
Definition: timer_d.h:372
uint16_t compareValue
Is the count to be compared with in compare mode.
Definition: timer_d.h:132
uint16_t captureOutputMode
Definition: timer_d.h:431
uint16_t clockSource
Definition: timer_d.h:204
Used in the Timer_D_initUpDownMode() function as the param parameter.
Definition: timer_d.h:197
uint16_t dutyCycle1
Specifies the dutycycle for the generated waveform.
Definition: timer_d.h:374
void Timer_D_combineTDCCRToOutputPWM(uint16_t baseAddress, Timer_D_combineTDCCRToOutputPWMParam *param)
Combine TDCCR to get PWM.
Definition: timer_d.c:416
void Timer_D_initHighResGeneratorInRegulatedMode(uint16_t baseAddress, Timer_D_initHighResGeneratorInRegulatedModeParam *param)
Configures Timer_D in Regulated mode.
Definition: timer_d.c:396
void Timer_D_enableHighResInterrupt(uint16_t baseAddress, uint16_t mask)
Enable High Resolution interrupt.
Definition: timer_d.c:161
uint16_t timerInterruptEnable_TDIE
Definition: timer_d.h:182
uint16_t dutyCycle
Specifies the dutycycle for the generated waveform.
Definition: timer_d.h:505
uint16_t clockSourceDivider
Definition: timer_d.h:347
uint16_t synchronizeCaptureSource
Definition: timer_d.h:415
uint8_t Timer_D_getSynchronizedCaptureCompareInput(uint16_t baseAddress, uint16_t captureCompareRegister, uint16_t synchronized)
Get synchronized capturecompare input.
Definition: timer_d.c:227
void Timer_D_disableHighResClockEnhancedAccuracy(uint16_t baseAddress)
Disable High Resolution Clock Enhanced Accuracy.
Definition: timer_d.c:477
void Timer_D_setOutputForOutputModeOutBitValue(uint16_t baseAddress, uint16_t captureCompareRegister, uint8_t outputModeOutBitValue)
Set output bit for output mode.
Definition: timer_d.c:276
void Timer_D_disableHighResInterrupt(uint16_t baseAddress, uint16_t mask)
Disable High Resolution interrupt.
Definition: timer_d.c:173
uint16_t clockingMode
Definition: timer_d.h:76
uint16_t timerClear
Definition: timer_d.h:95
uint16_t clockingMode
Definition: timer_d.h:233
uint16_t clockingMode
Definition: timer_d.h:353
Used in the Timer_D_outputPWM() function as the param parameter.
Definition: timer_d.h:444
uint32_t Timer_D_getCaptureCompareInterruptStatus(uint16_t baseAddress, uint16_t captureCompareRegister, uint16_t mask)
Return capture compare interrupt status.
Definition: timer_d.c:199
uint16_t clockSource
Definition: timer_d.h:267
void Timer_D_enableCaptureCompareInterrupt(uint16_t baseAddress, uint16_t captureCompareRegister)
Enable capture compare interrupt.
Definition: timer_d.c:184
void Timer_D_enableHighResClockEnhancedAccuracy(uint16_t baseAddress)
Enable High Resolution Clock Enhanced Accuracy.
Definition: timer_d.c:482
uint16_t timerPeriod
Is the specified timer period.
Definition: timer_d.h:355
Used in the Timer_D_initContinuousMode() function as the param parameter.
Definition: timer_d.h:141
uint16_t timerPeriod
Definition: timer_d.h:79
uint16_t timerInterruptEnable_TDIE
Definition: timer_d.h:84
uint16_t clockingMode
Definition: timer_d.h:296
void Timer_D_initCaptureMode(uint16_t baseAddress, Timer_D_initCaptureModeParam *param)
Initializes Capture Mode.
Definition: timer_d.c:111
uint16_t compareRegister
Definition: timer_d.h:492
uint16_t Timer_D_getCaptureCompareCount(uint16_t baseAddress, uint16_t captureCompareRegister)
Get current capturecompare count.
Definition: timer_d.c:252
uint16_t clockSource
Definition: timer_d.h:47
uint8_t Timer_D_initHighResGeneratorInFreeRunningMode(uint16_t baseAddress, uint8_t desiredHighResFrequency)
Configures Timer_D in free running mode.
Definition: timer_d.c:341
void Timer_D_stop(uint16_t baseAddress)
Stops the timer.
Definition: timer_d.c:315
void Timer_D_selectLatchingGroup(uint16_t baseAddress, uint16_t groupLatch)
Selects Timer_D Latching Group.
Definition: timer_d.c:440
uint16_t captureCompareInterruptEnable_CCR0_CCIE
Definition: timer_d.h:89
void Timer_D_clear(uint16_t baseAddress)
Reset/Clear the timer clock divider, count direction, count.
Definition: timer_d.c:214
uint16_t timerClear
Definition: timer_d.h:188
void Timer_D_disableTimerInterrupt(uint16_t baseAddress)
Disable timer interrupt.
Definition: timer_d.c:168
void Timer_D_initUpMode(uint16_t baseAddress, Timer_D_initUpModeParam *param)
Configures timer in up mode.
Definition: timer_d.c:50
void Timer_D_clearCaptureCompareInterrupt(uint16_t baseAddress, uint16_t captureCompareRegister)
Clears the capture-compare interrupt flag.
Definition: timer_d.c:333
uint8_t Timer_D_getCaptureCompareInputSignal(uint16_t baseAddress, uint16_t captureCompareRegister)
Get current capturecompare input signal.
Definition: timer_d.c:268
uint16_t captureInterruptEnable
Definition: timer_d.h:420
uint8_t Timer_D_getOutputForOutputModeOutBitValue(uint16_t baseAddress, uint16_t captureCompareRegister)
Get output bit for output mode.
Definition: timer_d.c:240
void Timer_D_disableHighResFastWakeup(uint16_t baseAddress)
Disable High Resolution fast wakeup.
Definition: timer_d.c:467
uint8_t highResClockDivider
Definition: timer_d.h:308
uint16_t timerPeriod
Is the specified timer period.
Definition: timer_d.h:482
void Timer_D_disableHighResGeneratorForceON(uint16_t baseAddress)
Disable High Resolution Clock Enhanced Accuracy.
Definition: timer_d.c:487
uint16_t clockSource
Definition: timer_d.h:324
uint16_t combineCCRRegistersCombination
Definition: timer_d.h:361