timer.h
Go to the documentation of this file.
00001 
00002 #ifndef __MSP430WARE_TIMER_H__
00003 #define __MSP430WARE_TIMER_H__
00004 
00005 #define __MSP430_HAS_TxA7__
00006 //*****************************************************************************
00007 //
00008 //The following are values that can be passed to the
00009 //Timer_startContinuousMode(), Timer_startUpMode(), Timer_startUpDownMode(),
00010 //Timer_generatePWM() APIs as the clockSource parameter.
00011 //
00012 //*****************************************************************************
00013 #define TIMER_CLOCKSOURCE_EXTERNAL_TXCLK            TASSEL__TACLK
00014 #define TIMER_CLOCKSOURCE_ACLK                      TASSEL__ACLK
00015 #define TIMER_CLOCKSOURCE_SMCLK                     TASSEL__SMCLK
00016 #define TIMER_CLOCKSOURCE_INVERTED_EXTERNAL_TXCLK   TASSEL__INCLK
00017 
00018 //*****************************************************************************
00019 //
00020 //The following are values that can be passed to the
00021 //Timer_startContinuousMode(), Timer_startUpMode(), Timer_startUpDownMode(),
00022 //Timer_generatePWM() APIs as the clockSourceDivider parameter.
00023 //
00024 //*****************************************************************************
00025 #define TIMER_CLOCKSOURCE_DIVIDER_1     0x01
00026 #define TIMER_CLOCKSOURCE_DIVIDER_2     0x02
00027 #define TIMER_CLOCKSOURCE_DIVIDER_4     0x04
00028 #define TIMER_CLOCKSOURCE_DIVIDER_8     0x08
00029 #define TIMER_CLOCKSOURCE_DIVIDER_3     0x03
00030 #define TIMER_CLOCKSOURCE_DIVIDER_5     0x05
00031 #define TIMER_CLOCKSOURCE_DIVIDER_6     0x06
00032 #define TIMER_CLOCKSOURCE_DIVIDER_7     0x07
00033 #define TIMER_CLOCKSOURCE_DIVIDER_10    0x0A
00034 #define TIMER_CLOCKSOURCE_DIVIDER_12    0x0C
00035 #define TIMER_CLOCKSOURCE_DIVIDER_14    0x0E
00036 #define TIMER_CLOCKSOURCE_DIVIDER_16    0x10
00037 #define TIMER_CLOCKSOURCE_DIVIDER_20    0x14
00038 #define TIMER_CLOCKSOURCE_DIVIDER_24    0x18
00039 #define TIMER_CLOCKSOURCE_DIVIDER_28    0x1C
00040 #define TIMER_CLOCKSOURCE_DIVIDER_32    0x20
00041 #define TIMER_CLOCKSOURCE_DIVIDER_40    0x28
00042 #define TIMER_CLOCKSOURCE_DIVIDER_48    0x30
00043 #define TIMER_CLOCKSOURCE_DIVIDER_56    0x38
00044 #define TIMER_CLOCKSOURCE_DIVIDER_64    0x40
00045 
00046 //*****************************************************************************
00047 //
00048 //The following are values that can be passed to Timer_startContinuousMode()
00049 //Timer_startUpMode(),  Timer_startUpDownMode() as the timerClear parameter.
00050 //
00051 //*****************************************************************************
00052 #define TIMER_DO_CLEAR      TACLR
00053 #define TIMER_SKIP_CLEAR    0x00
00054 
00055 //*****************************************************************************
00056 //
00057 //The following are values that can be passed to the
00058 //Timer_getSynchronizedCaptureCompareInput() API as the synchronized
00059 //parameter.
00060 //
00061 //*****************************************************************************
00062 #define TIMER_CAPTURECOMPARE_INPUT                  SCCI
00063 #define TIMER_SYNCHRONIZED_CAPTURECOMPARE_INPUT     CCI
00064 
00065 //*****************************************************************************
00066 //
00067 //The following are values that is returned by the
00068 //Timer_getSynchronizedCaptureCompareInput() API
00069 //
00070 //*****************************************************************************
00071 #define TIMER_CAPTURECOMPARE_INPUT_HIGH    0x01
00072 #define TIMER_CAPTURECOMPARE_INPUT_LOW     0x00
00073 
00074 
00075 //*****************************************************************************
00076 //
00077 //The following are values that is returned by the
00078 //Timer_getOutputForOutputModeOutBitValue() and passed to
00079 //Timer_setOutputForOutputModeOutBitValue() as
00080 //outputModeOutBitValue parameter
00081 //
00082 //*****************************************************************************
00083 #define TIMER_OUTPUTMODE_OUTBITVALUE_HIGH    OUT
00084 #define TIMER_OUTPUTMODE_OUTBITVALUE_LOW     0x00
00085 
00086 //*****************************************************************************
00087 //
00088 //The following are values can be passed to the mask parameter of
00089 //Timer_captureCompareInterruptStatus() API
00090 //
00091 //*****************************************************************************
00092 #define TIMER_CAPTURE_OVERFLOW                  COV
00093 #define TIMER_CAPTURECOMPARE_INTERRUPT_FLAG     CCIFG
00094 
00095 //*****************************************************************************
00096 //
00097 //The following are values can be passed to the timerInterruptEnable_TAIE
00098 //parameter of Timer_startContinuousMode(), Timer_startUpMode(),
00099 //Timer_startUpDownMode()
00100 //
00101 //*****************************************************************************
00102 #define TIMER_TAIE_INTERRUPT_ENABLE            TAIE
00103 #define TIMER_TAIE_INTERRUPT_DISABLE           0x00
00104 
00105 //*****************************************************************************
00106 //
00107 //The following are values can be passed to the
00108 //captureCompareInterruptEnable_CCR0_CCIE parameter of Timer_startUpMode(),
00109 //Timer_startUpDownMode API
00110 //
00111 //*****************************************************************************
00112 #define TIMER_CCIE_CCR0_INTERRUPT_ENABLE   CCIE
00113 #define TIMER_CCIE_CCR0_INTERRUPT_DISABLE  0x00
00114 
00115 //*****************************************************************************
00116 //
00117 //The following are timer modes possible.
00118 //
00119 //*****************************************************************************
00120 #define TIMER_STOP_MODE         MC_0
00121 #define TIMER_UP_MODE           MC_1
00122 #define TIMER_CONTINUOUS_MODE   MC_2
00123 #define TIMER_UPDOWN_MODE       MC_3
00124 
00125 //*****************************************************************************
00126 //
00127 //The following are values can be passed to the
00128 //compareRegister, captureCompareRegister or captureRegister parameter
00129 //of Timer_initCapture(), Timer_enableCaptureCompareInterrupt(),
00130 //Timer_disableCaptureCompareInterrupt(),Timer_captureCompareInterruptStatus(),
00131 //Timer_getSynchronizedCaptureCompareInput(),Timer_initCompare()
00132 //
00133 //*****************************************************************************
00134 #define TIMER_CAPTURECOMPARE_REGISTER_0     0x02
00135 #define TIMER_CAPTURECOMPARE_REGISTER_1     0x04
00136 #define TIMER_CAPTURECOMPARE_REGISTER_2     0x06
00137 #define TIMER_CAPTURECOMPARE_REGISTER_3     0x08
00138 #define TIMER_CAPTURECOMPARE_REGISTER_4     0x0A
00139 #define TIMER_CAPTURECOMPARE_REGISTER_5     0x0C
00140 #define TIMER_CAPTURECOMPARE_REGISTER_6     0x0E
00141 
00142 //*****************************************************************************
00143 //
00144 //The following are values can be passed to the
00145 //captureMode parameter of Timer_initCompare(), Timer_initCapture(),
00146 //Timer_generatePWM(),
00147 //
00148 //*****************************************************************************
00149 #define TIMER_OUTPUTMODE_OUTBITVALUE        OUTMOD_0
00150 #define TIMER_OUTPUTMODE_SET                OUTMOD_1
00151 #define TIMER_OUTPUTMODE_TOGGLE_RESET       OUTMOD_2
00152 #define TIMER_OUTPUTMODE_SET_RESET          OUTMOD_3
00153 #define TIMER_OUTPUTMODE_TOGGLE             OUTMOD_4
00154 #define TIMER_OUTPUTMODE_RESET              OUTMOD_5
00155 #define TIMER_OUTPUTMODE_TOGGLE_SET         OUTMOD_6
00156 #define TIMER_OUTPUTMODE_RESET_SET          OUTMOD_7
00157 
00158 //*****************************************************************************
00159 //
00160 //The following are values can be passed to the
00161 //captureMode parameter of Timer_initCapture() API
00162 //
00163 //*****************************************************************************
00164 #define TIMER_CAPTUREMODE_NO_CAPTURE                CM_0
00165 #define TIMER_CAPTUREMODE_RISING_EDGE               CM_1
00166 #define TIMER_CAPTUREMODE_FALLING_EDGE              CM_2
00167 #define TIMER_CAPTUREMODE_RISING_AND_FALLING_EDGE   CM_3
00168 
00169 //*****************************************************************************
00170 //
00171 //The following are values can be passed to the
00172 //synchronizeCaptureSource parameter of Timer_initCapture() API
00173 //
00174 //*****************************************************************************
00175 #define TIMER_CAPTURE_ASYNCHRONOUS                  0x00
00176 #define TIMER_CAPTURE_SYNCHRONOUS                   SCS
00177 
00178 //*****************************************************************************
00179 //
00180 //The following are values can be passed to the
00181 //captureInterruptEnable, compareInterruptEnable parameter of
00182 //Timer_initCapture() API
00183 //
00184 //*****************************************************************************
00185 #define TIMER_CAPTURECOMPARE_INTERRUPT_ENABLE       CCIE
00186 #define TIMER_CAPTURECOMPARE_INTERRUPT_DISABLE      0x00
00187 
00188 //*****************************************************************************
00189 //
00190 //The following are values can be passed to the
00191 //captureInputSelect parameter of Timer_initCapture() API
00192 //
00193 //*****************************************************************************
00194 #define TIMER_CAPTURE_INPUTSELECT_CCIxA             CCIS_0
00195 #define TIMER_CAPTURE_INPUTSELECT_CCIxB             CCIS_1
00196 #define TIMER_CAPTURE_INPUTSELECT_GND               CCIS_2
00197 #define TIMER_CAPTURE_INPUTSELECT_Vcc               CCIS_3
00198 
00199 //*****************************************************************************
00200 //
00201 //The following are values that may be returned by
00202 //Timer_getInterruptStatus() API
00203 //
00204 //*****************************************************************************
00205 #define TIMER_INTERRUPT_NOT_PENDING     0x00
00206 #define TIMER_INTERRUPT_PENDING         0x01
00207 
00208 //*****************************************************************************
00209 //
00210 //The following are values can be passed to the
00211 //synchronized parameter of Timer_getSynchronizedCaptureCompareInput() API
00212 //
00213 //*****************************************************************************
00214 #define TIMER_READ_SYNCHRONIZED_CAPTURECOMPAREINPUT SCCI
00215 #define TIMER_READ_CAPTURE_COMPARE_INPUT            CCI
00216 
00217 //*****************************************************************************
00218 //
00219 //Prototypes for the APIs.
00220 //
00221 //*****************************************************************************
00222 extern
00223 void Timer_startContinuousMode ( unsigned int baseAddress,
00224     unsigned int clockSource,
00225     unsigned int clockSourceDivider,
00226     unsigned int timerInterruptEnable_TAIE,
00227     unsigned int timerclear
00228     );
00229 extern
00230 void Timer_startContinousMode ( unsigned int baseAddress,
00231     unsigned int clockSource,
00232     unsigned int clockSourceDivider,
00233     unsigned int timerInterruptEnable_TAIE,
00234     unsigned int timerclear
00235     );
00236 extern
00237 void Timer_startUpMode (   unsigned int baseAddress,
00238     unsigned int clockSource,
00239     unsigned int clockSourceDivider,
00240     unsigned int timerPeriod,
00241     unsigned int timerInterruptEnable_TAIE,
00242     unsigned int captureCompareInterruptEnable_CCR0_CCIE,
00243     unsigned int timerclear
00244     );
00245 extern
00246 void Timer_startUpDownMode (
00247     unsigned int baseAddress,
00248     unsigned int clockSource,
00249     unsigned int clockSourceDivider,
00250     unsigned int timerPeriod,
00251     unsigned int timerInterruptEnable_TAIE,
00252     unsigned int captureCompareInterruptEnable_CCR0_CCIE,
00253     unsigned int timerclear
00254     );
00255 extern
00256 void Timer_initCapture (unsigned int baseAddress,
00257     unsigned int captureRegister,
00258     unsigned int captureMode,
00259     unsigned int captureInputSelect,
00260     unsigned short synchronizeCaptureSource,
00261     unsigned short captureInterruptEnable,
00262     unsigned int captureOutputMode
00263     );
00264 extern
00265 void Timer_initCompare (  unsigned int baseAddress,
00266     unsigned int compareRegister,
00267     unsigned short compareInterruptEnable,
00268     unsigned int compareOutputMode,
00269     unsigned int compareValue
00270     );
00271 extern
00272 void Timer_enableInterrupt (unsigned int baseAddress);
00273 extern
00274 void Timer_disableInterrupt (unsigned int baseAddress);
00275 extern
00276 unsigned long Timer_getInterruptStatus (unsigned int baseAddress);
00277 extern
00278 void Timer_enableCaptureCompareInterrupt (unsigned int baseAddress,
00279     unsigned int captureCompareRegister
00280     );
00281 extern
00282 void Timer_disableCaptureCompareInterrupt (unsigned int baseAddress,
00283     unsigned int captureCompareRegister
00284     );
00285 extern
00286 unsigned long Timer_getCaptureCompareInterruptStatus
00287     (unsigned int baseAddress,
00288     unsigned int mask
00289     );
00290 extern
00291 void Timer_clear (unsigned int baseAddress);
00292 extern
00293 unsigned short Timer_getSynchronizedCaptureCompareInput
00294     (unsigned int baseAddress,
00295     unsigned int captureCompareRegister,
00296     unsigned short synchronized
00297     );
00298 extern
00299 void Timer_setOutputForOutputModeOutBitValue
00300     (unsigned int baseAddress,
00301     unsigned int captureCompareRegister,
00302     unsigned char outputModeOutBitValue
00303     );
00304 extern
00305 unsigned char Timer_getOutputForOutputModeOutBitValue
00306     (unsigned int baseAddress,
00307     unsigned int captureCompareRegister
00308     );
00309 
00310 extern
00311 void Timer_generatePWM (  unsigned int baseAddress,
00312     unsigned int clockSource,
00313     unsigned int clockSourceDivider,
00314     unsigned int timerPeriod,
00315     unsigned int compareRegister,
00316     unsigned int compareOutputMode,
00317     unsigned int dutyCycle
00318     );
00319 extern
00320 void Timer_stop ( unsigned int baseAddress );
00321 
00322 extern
00323 unsigned int Timer_getCaptureCompareCount
00324     (unsigned int baseAddress,
00325     unsigned int captureCompareRegister
00326     );
00327 extern
00328 void Timer_setCompareValue (  unsigned int baseAddress,
00329     unsigned int compareRegister,
00330     unsigned int compareValue
00331     );
00332 extern
00333 void Timer_clearCaptureCompareInterruptFlag (unsigned int baseAddress,
00334     unsigned int compareRegister
00335     );
00336 extern
00337 void Timer_clearTimerInterruptFlag (unsigned int baseAddress);
00338 #endif

Copyright 2012, Texas Instruments Incorporated