7 #ifndef __MSP430WARE_TIMER_B_H__
8 #define __MSP430WARE_TIMER_B_H__
12 #ifdef __MSP430_HAS_TxB7__
33 #define TIMER_B_THRESHOLD 50
40 typedef struct Timer_B_outputPWMParam {
70 uint16_t clockSourceDivider;
83 uint16_t compareRegister;
94 uint16_t compareOutputMode;
97 } Timer_B_outputPWMParam;
104 typedef struct Timer_B_initUpModeParam {
111 uint16_t clockSource;
134 uint16_t clockSourceDivider;
137 uint16_t timerPeriod;
142 uint16_t timerInterruptEnable_TBIE;
147 uint16_t captureCompareInterruptEnable_CCR0_CCIE;
156 } Timer_B_initUpModeParam;
164 typedef struct Timer_B_initCaptureModeParam {
175 uint16_t captureRegister;
182 uint16_t captureMode;
189 uint16_t captureInputSelect;
194 uint16_t synchronizeCaptureSource;
199 uint16_t captureInterruptEnable;
210 uint16_t captureOutputMode;
211 } Timer_B_initCaptureModeParam;
219 typedef struct Timer_B_initContinuousModeParam {
226 uint16_t clockSource;
249 uint16_t clockSourceDivider;
254 uint16_t timerInterruptEnable_TBIE;
263 } Timer_B_initContinuousModeParam;
271 typedef struct Timer_B_initUpDownModeParam {
278 uint16_t clockSource;
301 uint16_t clockSourceDivider;
303 uint16_t timerPeriod;
308 uint16_t timerInterruptEnable_TBIE;
313 uint16_t captureCompareInterruptEnable_CCR0_CCIE;
322 } Timer_B_initUpDownModeParam;
330 typedef struct Timer_B_initCompareModeParam {
341 uint16_t compareRegister;
346 uint16_t compareInterruptEnable;
357 uint16_t compareOutputMode;
359 uint16_t compareValue;
360 } Timer_B_initCompareModeParam;
370 #define TIMER_B_CLOCKSOURCE_DIVIDER_1 0x00
371 #define TIMER_B_CLOCKSOURCE_DIVIDER_2 0x08
372 #define TIMER_B_CLOCKSOURCE_DIVIDER_3 0x02
373 #define TIMER_B_CLOCKSOURCE_DIVIDER_4 0x10
374 #define TIMER_B_CLOCKSOURCE_DIVIDER_5 0x04
375 #define TIMER_B_CLOCKSOURCE_DIVIDER_6 0x05
376 #define TIMER_B_CLOCKSOURCE_DIVIDER_7 0x06
377 #define TIMER_B_CLOCKSOURCE_DIVIDER_8 0x18
378 #define TIMER_B_CLOCKSOURCE_DIVIDER_10 0x0C
379 #define TIMER_B_CLOCKSOURCE_DIVIDER_12 0x0D
380 #define TIMER_B_CLOCKSOURCE_DIVIDER_14 0x0E
381 #define TIMER_B_CLOCKSOURCE_DIVIDER_16 0x0F
382 #define TIMER_B_CLOCKSOURCE_DIVIDER_20 0x14
383 #define TIMER_B_CLOCKSOURCE_DIVIDER_24 0x15
384 #define TIMER_B_CLOCKSOURCE_DIVIDER_28 0x16
385 #define TIMER_B_CLOCKSOURCE_DIVIDER_32 0x17
386 #define TIMER_B_CLOCKSOURCE_DIVIDER_40 0x1C
387 #define TIMER_B_CLOCKSOURCE_DIVIDER_48 0x1D
388 #define TIMER_B_CLOCKSOURCE_DIVIDER_56 0x1E
389 #define TIMER_B_CLOCKSOURCE_DIVIDER_64 0x1F
397 #define TIMER_B_STOP_MODE MC_0
398 #define TIMER_B_UP_MODE MC_1
399 #define TIMER_B_CONTINUOUS_MODE MC_2
400 #define TIMER_B_UPDOWN_MODE MC_3
409 #define TIMER_B_DO_CLEAR TBCLR
410 #define TIMER_B_SKIP_CLEAR 0x00
419 #define TIMER_B_CLOCKSOURCE_EXTERNAL_TXCLK TBSSEL__TACLK
420 #define TIMER_B_CLOCKSOURCE_ACLK TBSSEL__ACLK
421 #define TIMER_B_CLOCKSOURCE_SMCLK TBSSEL__SMCLK
422 #define TIMER_B_CLOCKSOURCE_INVERTED_EXTERNAL_TXCLK TBSSEL__INCLK
431 #define TIMER_B_TBIE_INTERRUPT_ENABLE TBIE
432 #define TIMER_B_TBIE_INTERRUPT_DISABLE 0x00
440 #define TIMER_B_CCIE_CCR0_INTERRUPT_ENABLE CCIE
441 #define TIMER_B_CCIE_CCR0_INTERRUPT_DISABLE 0x00
449 #define TIMER_B_CAPTURECOMPARE_INTERRUPT_DISABLE 0x00
450 #define TIMER_B_CAPTURECOMPARE_INTERRUPT_ENABLE CCIE
458 #define TIMER_B_CAPTURE_INPUTSELECT_CCIxA CCIS_0
459 #define TIMER_B_CAPTURE_INPUTSELECT_CCIxB CCIS_1
460 #define TIMER_B_CAPTURE_INPUTSELECT_GND CCIS_2
461 #define TIMER_B_CAPTURE_INPUTSELECT_Vcc CCIS_3
471 #define TIMER_B_OUTPUTMODE_OUTBITVALUE OUTMOD_0
472 #define TIMER_B_OUTPUTMODE_SET OUTMOD_1
473 #define TIMER_B_OUTPUTMODE_TOGGLE_RESET OUTMOD_2
474 #define TIMER_B_OUTPUTMODE_SET_RESET OUTMOD_3
475 #define TIMER_B_OUTPUTMODE_TOGGLE OUTMOD_4
476 #define TIMER_B_OUTPUTMODE_RESET OUTMOD_5
477 #define TIMER_B_OUTPUTMODE_TOGGLE_SET OUTMOD_6
478 #define TIMER_B_OUTPUTMODE_RESET_SET OUTMOD_7
498 #define TIMER_B_CAPTURECOMPARE_REGISTER_0 0x02
499 #define TIMER_B_CAPTURECOMPARE_REGISTER_1 0x04
500 #define TIMER_B_CAPTURECOMPARE_REGISTER_2 0x06
501 #define TIMER_B_CAPTURECOMPARE_REGISTER_3 0x08
502 #define TIMER_B_CAPTURECOMPARE_REGISTER_4 0x0A
503 #define TIMER_B_CAPTURECOMPARE_REGISTER_5 0x0C
504 #define TIMER_B_CAPTURECOMPARE_REGISTER_6 0x0E
512 #define TIMER_B_CAPTUREMODE_NO_CAPTURE CM_0
513 #define TIMER_B_CAPTUREMODE_RISING_EDGE CM_1
514 #define TIMER_B_CAPTUREMODE_FALLING_EDGE CM_2
515 #define TIMER_B_CAPTUREMODE_RISING_AND_FALLING_EDGE CM_3
523 #define TIMER_B_CAPTURE_ASYNCHRONOUS 0x00
524 #define TIMER_B_CAPTURE_SYNCHRONOUS SCS
533 #define TIMER_B_CAPTURE_OVERFLOW COV
534 #define TIMER_B_CAPTURECOMPARE_INTERRUPT_FLAG CCIFG
542 #define TIMER_B_READ_SYNCHRONIZED_CAPTURECOMPAREINPUT SCCI
543 #define TIMER_B_READ_CAPTURE_COMPARE_INPUT CCI
552 #define TIMER_B_CAPTURECOMPARE_INPUT_HIGH 0x01
553 #define TIMER_B_CAPTURECOMPARE_INPUT_LOW 0x00
562 #define TIMER_B_OUTPUTMODE_OUTBITVALUE_HIGH OUT
563 #define TIMER_B_OUTPUTMODE_OUTBITVALUE_LOW 0x0000
571 #define TIMER_B_COUNTER_16BIT CNTL_0
572 #define TIMER_B_COUNTER_12BIT CNTL_1
573 #define TIMER_B_COUNTER_10BIT CNTL_2
574 #define TIMER_B_COUNTER_8BIT CNTL_3
582 #define TIMER_B_GROUP_NONE TBCLGRP_0
583 #define TIMER_B_GROUP_CL12_CL23_CL56 TBCLGRP_1
584 #define TIMER_B_GROUP_CL123_CL456 TBCLGRP_2
585 #define TIMER_B_GROUP_ALL TBCLGRP_3
593 #define TIMER_B_LATCH_ON_WRITE_TO_TBxCCRn_COMPARE_REGISTER CLLD_0
594 #define TIMER_B_LATCH_WHEN_COUNTER_COUNTS_TO_0_IN_UP_OR_CONT_MODE CLLD_1
595 #define TIMER_B_LATCH_WHEN_COUNTER_COUNTS_TO_0_IN_UPDOWN_MODE CLLD_2
596 #define TIMER_B_LATCH_WHEN_COUNTER_COUNTS_TO_CURRENT_COMPARE_LATCH_VALUE CLLD_3
604 #define TIMER_B_INTERRUPT_NOT_PENDING 0x00
605 #define TIMER_B_INTERRUPT_PENDING 0x01
633 extern void Timer_B_startCounter(uint16_t baseAddress,
651 extern void Timer_B_initContinuousMode(uint16_t baseAddress,
652 Timer_B_initContinuousModeParam *
param);
670 extern void Timer_B_initUpMode(uint16_t baseAddress,
671 Timer_B_initUpModeParam *
param);
689 extern void Timer_B_initUpDownMode(uint16_t baseAddress,
690 Timer_B_initUpDownModeParam *
param);
704 extern void Timer_B_initCaptureMode(uint16_t baseAddress,
705 Timer_B_initCaptureModeParam *
param);
719 extern void Timer_B_initCompareMode(uint16_t baseAddress,
720 Timer_B_initCompareModeParam *
param);
735 extern void Timer_B_enableInterrupt(uint16_t baseAddress);
748 extern void Timer_B_disableInterrupt(uint16_t baseAddress);
762 extern uint32_t Timer_B_getInterruptStatus(uint16_t baseAddress);
786 extern void Timer_B_enableCaptureCompareInterrupt(uint16_t baseAddress,
787 uint16_t captureCompareRegister);
811 extern void Timer_B_disableCaptureCompareInterrupt(uint16_t baseAddress,
812 uint16_t captureCompareRegister);
841 extern uint32_t Timer_B_getCaptureCompareInterruptStatus(uint16_t baseAddress,
842 uint16_t captureCompareRegister,
856 extern void Timer_B_clear(uint16_t baseAddress);
884 extern uint8_t Timer_B_getSynchronizedCaptureCompareInput(uint16_t baseAddress,
885 uint16_t captureCompareRegister,
886 uint16_t
synchronized);
910 extern uint8_t Timer_B_getOutputForOutputModeOutBitValue(uint16_t baseAddress,
911 uint16_t captureCompareRegister);
933 extern uint16_t Timer_B_getCaptureCompareCount(uint16_t baseAddress,
934 uint16_t captureCompareRegister);
962 extern void Timer_B_setOutputForOutputModeOutBitValue(uint16_t baseAddress,
963 uint16_t captureCompareRegister,
964 uint16_t outputModeOutBitValue);
979 extern void Timer_B_outputPWM(uint16_t baseAddress,
980 Timer_B_outputPWMParam *
param);
993 extern void Timer_B_stop(uint16_t baseAddress);
1017 extern void Timer_B_setCompareValue(uint16_t baseAddress,
1018 uint16_t compareRegister,
1019 uint16_t compareValue);
1032 extern void Timer_B_clearTimerInterrupt(uint16_t baseAddress);
1056 extern void Timer_B_clearCaptureCompareInterrupt(uint16_t baseAddress,
1057 uint16_t captureCompareRegister);
1076 extern void Timer_B_selectCounterLength(uint16_t baseAddress,
1077 uint16_t counterLength);
1096 extern void Timer_B_selectLatchingGroup(uint16_t baseAddress,
1097 uint16_t groupLatch);
1127 extern void Timer_B_initCompareLatchLoadEvent(uint16_t baseAddress,
1128 uint16_t compareRegister,
1129 uint16_t compareLatchLoadEvent);
1145 extern uint16_t Timer_B_getCounterValue(uint16_t baseAddress);
1179 extern void Timer_B_setOutputMode(uint16_t baseAddress,
1180 uint16_t compareRegister,
1181 uint16_t compareOutputMode);
MPU_initThreeSegmentsParam param