1*5fd0122aSMatthias Ringwald /* --COPYRIGHT--,BSD 2*5fd0122aSMatthias Ringwald * Copyright (c) 2017, Texas Instruments Incorporated 3*5fd0122aSMatthias Ringwald * All rights reserved. 4*5fd0122aSMatthias Ringwald * 5*5fd0122aSMatthias Ringwald * Redistribution and use in source and binary forms, with or without 6*5fd0122aSMatthias Ringwald * modification, are permitted provided that the following conditions 7*5fd0122aSMatthias Ringwald * are met: 8*5fd0122aSMatthias Ringwald * 9*5fd0122aSMatthias Ringwald * * Redistributions of source code must retain the above copyright 10*5fd0122aSMatthias Ringwald * notice, this list of conditions and the following disclaimer. 11*5fd0122aSMatthias Ringwald * 12*5fd0122aSMatthias Ringwald * * Redistributions in binary form must reproduce the above copyright 13*5fd0122aSMatthias Ringwald * notice, this list of conditions and the following disclaimer in the 14*5fd0122aSMatthias Ringwald * documentation and/or other materials provided with the distribution. 15*5fd0122aSMatthias Ringwald * 16*5fd0122aSMatthias Ringwald * * Neither the name of Texas Instruments Incorporated nor the names of 17*5fd0122aSMatthias Ringwald * its contributors may be used to endorse or promote products derived 18*5fd0122aSMatthias Ringwald * from this software without specific prior written permission. 19*5fd0122aSMatthias Ringwald * 20*5fd0122aSMatthias Ringwald * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21*5fd0122aSMatthias Ringwald * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 22*5fd0122aSMatthias Ringwald * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 23*5fd0122aSMatthias Ringwald * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 24*5fd0122aSMatthias Ringwald * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 25*5fd0122aSMatthias Ringwald * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 26*5fd0122aSMatthias Ringwald * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 27*5fd0122aSMatthias Ringwald * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 28*5fd0122aSMatthias Ringwald * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 29*5fd0122aSMatthias Ringwald * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 30*5fd0122aSMatthias Ringwald * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31*5fd0122aSMatthias Ringwald * --/COPYRIGHT--*/ 32*5fd0122aSMatthias Ringwald #ifndef TIMER32_H_ 33*5fd0122aSMatthias Ringwald #define TIMER32_H_ 34*5fd0122aSMatthias Ringwald 35*5fd0122aSMatthias Ringwald //***************************************************************************** 36*5fd0122aSMatthias Ringwald // 37*5fd0122aSMatthias Ringwald //! \addtogroup timer32_api 38*5fd0122aSMatthias Ringwald //! @{ 39*5fd0122aSMatthias Ringwald // 40*5fd0122aSMatthias Ringwald //***************************************************************************** 41*5fd0122aSMatthias Ringwald 42*5fd0122aSMatthias Ringwald //***************************************************************************** 43*5fd0122aSMatthias Ringwald // 44*5fd0122aSMatthias Ringwald // If building with a C++ compiler, make all of the definitions in this header 45*5fd0122aSMatthias Ringwald // have a C binding. 46*5fd0122aSMatthias Ringwald // 47*5fd0122aSMatthias Ringwald //***************************************************************************** 48*5fd0122aSMatthias Ringwald #ifdef __cplusplus 49*5fd0122aSMatthias Ringwald extern "C" 50*5fd0122aSMatthias Ringwald { 51*5fd0122aSMatthias Ringwald #endif 52*5fd0122aSMatthias Ringwald #include <stdint.h> 53*5fd0122aSMatthias Ringwald #include <stdbool.h> 54*5fd0122aSMatthias Ringwald #include <ti/devices/msp432p4xx/inc/msp.h> 55*5fd0122aSMatthias Ringwald 56*5fd0122aSMatthias Ringwald //***************************************************************************** 57*5fd0122aSMatthias Ringwald // 58*5fd0122aSMatthias Ringwald // Control specific variables 59*5fd0122aSMatthias Ringwald // 60*5fd0122aSMatthias Ringwald //***************************************************************************** 61*5fd0122aSMatthias Ringwald #define TIMER32_CMSIS(x) ((Timer32_Type *) x) 62*5fd0122aSMatthias Ringwald 63*5fd0122aSMatthias Ringwald #define TIMER_OFFSET 0x020 64*5fd0122aSMatthias Ringwald 65*5fd0122aSMatthias Ringwald #define TIMER32_0_BASE (uint32_t)TIMER32_1 66*5fd0122aSMatthias Ringwald #define TIMER32_1_BASE (uint32_t)TIMER32_2 67*5fd0122aSMatthias Ringwald 68*5fd0122aSMatthias Ringwald #define TIMER32_0_INTERRUPT INT_T32_INT1 69*5fd0122aSMatthias Ringwald #define TIMER32_1_INTERRUPT INT_T32_INT2 70*5fd0122aSMatthias Ringwald #define TIMER32_COMBINED_INTERRUPT INT_T32_INTC 71*5fd0122aSMatthias Ringwald 72*5fd0122aSMatthias Ringwald #define TIMER32_16BIT 0x00 73*5fd0122aSMatthias Ringwald #define TIMER32_32BIT 0x01 74*5fd0122aSMatthias Ringwald 75*5fd0122aSMatthias Ringwald #define TIMER32_PRESCALER_1 0x00 76*5fd0122aSMatthias Ringwald #define TIMER32_PRESCALER_16 0x04 77*5fd0122aSMatthias Ringwald #define TIMER32_PRESCALER_256 0x08 78*5fd0122aSMatthias Ringwald 79*5fd0122aSMatthias Ringwald #define TIMER32_FREE_RUN_MODE 0x00 80*5fd0122aSMatthias Ringwald #define TIMER32_PERIODIC_MODE 0x01 81*5fd0122aSMatthias Ringwald 82*5fd0122aSMatthias Ringwald //***************************************************************************** 83*5fd0122aSMatthias Ringwald // 84*5fd0122aSMatthias Ringwald // API Function prototypes 85*5fd0122aSMatthias Ringwald // 86*5fd0122aSMatthias Ringwald //***************************************************************************** 87*5fd0122aSMatthias Ringwald 88*5fd0122aSMatthias Ringwald //***************************************************************************** 89*5fd0122aSMatthias Ringwald // 90*5fd0122aSMatthias Ringwald //! Initializes the Timer32 module 91*5fd0122aSMatthias Ringwald //! 92*5fd0122aSMatthias Ringwald //! \param timer is the instance of the Timer32 module. 93*5fd0122aSMatthias Ringwald //! Valid parameters must be one of the following values: 94*5fd0122aSMatthias Ringwald //! - \b TIMER32_0_BASE 95*5fd0122aSMatthias Ringwald //! - \b TIMER32_1_BASE 96*5fd0122aSMatthias Ringwald //! 97*5fd0122aSMatthias Ringwald //! \param preScaler is the prescaler (or divider) to apply to the clock 98*5fd0122aSMatthias Ringwald //! source given to the Timer32 module. 99*5fd0122aSMatthias Ringwald //! Valid values are 100*5fd0122aSMatthias Ringwald //! - \b TIMER32_PRESCALER_1 [DEFAULT] 101*5fd0122aSMatthias Ringwald //! - \b TIMER32_PRESCALER_16 102*5fd0122aSMatthias Ringwald //! - \b TIMER32_PRESCALER_256 103*5fd0122aSMatthias Ringwald //! \param resolution is the bit resolution of the Timer32 module. 104*5fd0122aSMatthias Ringwald //! Valid values are 105*5fd0122aSMatthias Ringwald //! - \b TIMER32_16BIT [DEFAULT] 106*5fd0122aSMatthias Ringwald //! - \b TIMER32_32BIT 107*5fd0122aSMatthias Ringwald //! \param mode selects between free run and periodic mode. In free run 108*5fd0122aSMatthias Ringwald //! mode, the value of the timer is reset to UINT16_MAX (for 16-bit mode) or 109*5fd0122aSMatthias Ringwald //! UINT32_MAX (for 16-bit mode) when the timer reaches zero. In periodic mode, 110*5fd0122aSMatthias Ringwald //! the timer is reset to the value set by the Timer32_setCount function. 111*5fd0122aSMatthias Ringwald //! Valid values are 112*5fd0122aSMatthias Ringwald //! - \b TIMER32_FREE_RUN_MODE [DEFAULT] 113*5fd0122aSMatthias Ringwald //! - \b TIMER32_PERIODIC_MODE 114*5fd0122aSMatthias Ringwald //! 115*5fd0122aSMatthias Ringwald //! 116*5fd0122aSMatthias Ringwald //! \return None. 117*5fd0122aSMatthias Ringwald // 118*5fd0122aSMatthias Ringwald //***************************************************************************** 119*5fd0122aSMatthias Ringwald extern void Timer32_initModule(uint32_t timer, uint32_t preScaler, 120*5fd0122aSMatthias Ringwald uint32_t resolution, uint32_t mode); 121*5fd0122aSMatthias Ringwald 122*5fd0122aSMatthias Ringwald //***************************************************************************** 123*5fd0122aSMatthias Ringwald // 124*5fd0122aSMatthias Ringwald //! Sets the count of the timer and resets the current value to the value 125*5fd0122aSMatthias Ringwald //! passed. This value is set on the next rising edge of the clock provided to 126*5fd0122aSMatthias Ringwald //! the timer module 127*5fd0122aSMatthias Ringwald //! 128*5fd0122aSMatthias Ringwald //! \param timer is the instance of the Timer32 module. 129*5fd0122aSMatthias Ringwald //! Valid parameters must be one of the following values: 130*5fd0122aSMatthias Ringwald //! - \b TIMER32_0_BASE 131*5fd0122aSMatthias Ringwald //! - \b TIMER32_1_BASE 132*5fd0122aSMatthias Ringwald //! \param count Value of the timer to set. Note that 133*5fd0122aSMatthias Ringwald //! if the timer is in 16-bit mode and a value is passed in that exceeds 134*5fd0122aSMatthias Ringwald //! UINT16_MAX, the value will be truncated to UINT16_MAX. 135*5fd0122aSMatthias Ringwald //! 136*5fd0122aSMatthias Ringwald //! Also note that if the timer is operating in periodic mode, the value passed 137*5fd0122aSMatthias Ringwald //! into this function will represent the new period of the timer (the value 138*5fd0122aSMatthias Ringwald //! which is reloaded into the timer each time it reaches a zero value). 139*5fd0122aSMatthias Ringwald //! 140*5fd0122aSMatthias Ringwald //! \return None 141*5fd0122aSMatthias Ringwald // 142*5fd0122aSMatthias Ringwald //***************************************************************************** 143*5fd0122aSMatthias Ringwald extern void Timer32_setCount(uint32_t timer, uint32_t count); 144*5fd0122aSMatthias Ringwald 145*5fd0122aSMatthias Ringwald //***************************************************************************** 146*5fd0122aSMatthias Ringwald // 147*5fd0122aSMatthias Ringwald //! Sets the count of the timer without resetting the current value. When the 148*5fd0122aSMatthias Ringwald //! current value of the timer reaches zero, the value passed into this function 149*5fd0122aSMatthias Ringwald //! will be set as the new count value. 150*5fd0122aSMatthias Ringwald //! 151*5fd0122aSMatthias Ringwald //! \param timer is the instance of the Timer32 module. 152*5fd0122aSMatthias Ringwald //! Valid parameters must be one of the following values: 153*5fd0122aSMatthias Ringwald //! - \b TIMER32_0_BASE 154*5fd0122aSMatthias Ringwald //! - \b TIMER32_1_BASE 155*5fd0122aSMatthias Ringwald //! \param count Value of the timer to set in the background. Note that 156*5fd0122aSMatthias Ringwald //! if the timer is in 16-bit mode and a value is passed in that exceeds 157*5fd0122aSMatthias Ringwald //! UINT16_MAX, the value will be truncated to UINT16_MAX. 158*5fd0122aSMatthias Ringwald //! 159*5fd0122aSMatthias Ringwald //! Also note that if the timer is operating in periodic mode, the value passed 160*5fd0122aSMatthias Ringwald //! into this function will represent the new period of the timer (the value 161*5fd0122aSMatthias Ringwald //! which is reloaded into the timer each time it reaches a zero value). 162*5fd0122aSMatthias Ringwald //! 163*5fd0122aSMatthias Ringwald //! \return None 164*5fd0122aSMatthias Ringwald // 165*5fd0122aSMatthias Ringwald //***************************************************************************** 166*5fd0122aSMatthias Ringwald extern void Timer32_setCountInBackground(uint32_t timer, uint32_t count); 167*5fd0122aSMatthias Ringwald 168*5fd0122aSMatthias Ringwald //***************************************************************************** 169*5fd0122aSMatthias Ringwald // 170*5fd0122aSMatthias Ringwald //! Returns the current value of the timer. 171*5fd0122aSMatthias Ringwald //! 172*5fd0122aSMatthias Ringwald //! \param timer is the instance of the Timer32 module. 173*5fd0122aSMatthias Ringwald //! Valid parameters must be one of the following values: 174*5fd0122aSMatthias Ringwald //! - \b TIMER32_0_BASE 175*5fd0122aSMatthias Ringwald //! - \b TIMER32_1_BASE 176*5fd0122aSMatthias Ringwald //! 177*5fd0122aSMatthias Ringwald //! \return The current count of the timer. 178*5fd0122aSMatthias Ringwald // 179*5fd0122aSMatthias Ringwald //***************************************************************************** 180*5fd0122aSMatthias Ringwald extern uint32_t Timer32_getValue(uint32_t timer); 181*5fd0122aSMatthias Ringwald 182*5fd0122aSMatthias Ringwald //***************************************************************************** 183*5fd0122aSMatthias Ringwald // 184*5fd0122aSMatthias Ringwald //! Starts the timer. The Timer32_initModule function should be called (in 185*5fd0122aSMatthias Ringwald //! conjunction with Timer32_setCount if periodic mode is desired) prior to 186*5fd0122aSMatthias Ringwald // starting the timer. 187*5fd0122aSMatthias Ringwald //! 188*5fd0122aSMatthias Ringwald //! \param timer is the instance of the Timer32 module. 189*5fd0122aSMatthias Ringwald //! Valid parameters must be one of the following values: 190*5fd0122aSMatthias Ringwald //! - \b TIMER32_0_BASE 191*5fd0122aSMatthias Ringwald //! - \b TIMER32_1_BASE 192*5fd0122aSMatthias Ringwald //! 193*5fd0122aSMatthias Ringwald //! \param oneShot sets whether the Timer32 module operates in one shot 194*5fd0122aSMatthias Ringwald //! or continuous mode. In one shot mode, the timer will halt when a zero is 195*5fd0122aSMatthias Ringwald //! reached and stay halted until either: 196*5fd0122aSMatthias Ringwald //! - The user calls the Timer32PeriodSet function 197*5fd0122aSMatthias Ringwald //! - The Timer32_initModule is called to reinitialize the timer with one-shot 198*5fd0122aSMatthias Ringwald //! mode disabled. 199*5fd0122aSMatthias Ringwald //! 200*5fd0122aSMatthias Ringwald //! A true value will cause the timer to operate in one shot mode while a false 201*5fd0122aSMatthias Ringwald //! value will cause the timer to operate in continuous mode 202*5fd0122aSMatthias Ringwald //! 203*5fd0122aSMatthias Ringwald //! \return None 204*5fd0122aSMatthias Ringwald // 205*5fd0122aSMatthias Ringwald //***************************************************************************** 206*5fd0122aSMatthias Ringwald extern void Timer32_startTimer(uint32_t timer, bool oneShot); 207*5fd0122aSMatthias Ringwald 208*5fd0122aSMatthias Ringwald //***************************************************************************** 209*5fd0122aSMatthias Ringwald // 210*5fd0122aSMatthias Ringwald //! Halts the timer. Current count and setting values are preserved. 211*5fd0122aSMatthias Ringwald //! 212*5fd0122aSMatthias Ringwald //! \param timer is the instance of the Timer32 module. 213*5fd0122aSMatthias Ringwald //! Valid parameters must be one of the following values: 214*5fd0122aSMatthias Ringwald //! - \b TIMER32_0_BASE 215*5fd0122aSMatthias Ringwald //! - \b TIMER32_1_BASE 216*5fd0122aSMatthias Ringwald //! 217*5fd0122aSMatthias Ringwald //! \return None 218*5fd0122aSMatthias Ringwald // 219*5fd0122aSMatthias Ringwald //***************************************************************************** 220*5fd0122aSMatthias Ringwald extern void Timer32_haltTimer(uint32_t timer); 221*5fd0122aSMatthias Ringwald 222*5fd0122aSMatthias Ringwald //***************************************************************************** 223*5fd0122aSMatthias Ringwald // 224*5fd0122aSMatthias Ringwald //! Enables a Timer32 interrupt source. 225*5fd0122aSMatthias Ringwald //! 226*5fd0122aSMatthias Ringwald //! \param timer is the instance of the Timer32 module. 227*5fd0122aSMatthias Ringwald //! Valid parameters must be one of the following values: 228*5fd0122aSMatthias Ringwald //! - \b TIMER32_0_BASE 229*5fd0122aSMatthias Ringwald //! - \b TIMER32_1_BASE 230*5fd0122aSMatthias Ringwald //! 231*5fd0122aSMatthias Ringwald //! Enables the indicated Timer32 interrupt source. 232*5fd0122aSMatthias Ringwald //! 233*5fd0122aSMatthias Ringwald //! \return None. 234*5fd0122aSMatthias Ringwald // 235*5fd0122aSMatthias Ringwald //***************************************************************************** 236*5fd0122aSMatthias Ringwald extern void Timer32_enableInterrupt(uint32_t timer); 237*5fd0122aSMatthias Ringwald 238*5fd0122aSMatthias Ringwald //***************************************************************************** 239*5fd0122aSMatthias Ringwald // 240*5fd0122aSMatthias Ringwald //! Disables a Timer32 interrupt source. 241*5fd0122aSMatthias Ringwald //! 242*5fd0122aSMatthias Ringwald //! \param timer is the instance of the Timer32 module. 243*5fd0122aSMatthias Ringwald //! Valid parameters must be one of the following values: 244*5fd0122aSMatthias Ringwald //! - \b TIMER32_0_BASE 245*5fd0122aSMatthias Ringwald //! - \b TIMER32_1_BASE 246*5fd0122aSMatthias Ringwald //! 247*5fd0122aSMatthias Ringwald //! Disables the indicated Timer32 interrupt source. 248*5fd0122aSMatthias Ringwald //! 249*5fd0122aSMatthias Ringwald //! \return None. 250*5fd0122aSMatthias Ringwald // 251*5fd0122aSMatthias Ringwald //***************************************************************************** 252*5fd0122aSMatthias Ringwald extern void Timer32_disableInterrupt(uint32_t timer); 253*5fd0122aSMatthias Ringwald 254*5fd0122aSMatthias Ringwald //***************************************************************************** 255*5fd0122aSMatthias Ringwald // 256*5fd0122aSMatthias Ringwald //! Clears Timer32 interrupt source. 257*5fd0122aSMatthias Ringwald //! 258*5fd0122aSMatthias Ringwald //! \param timer is the instance of the Timer32 module. 259*5fd0122aSMatthias Ringwald //! Valid parameters must be one of the following values: 260*5fd0122aSMatthias Ringwald //! - \b TIMER32_0_BASE 261*5fd0122aSMatthias Ringwald //! - \b TIMER32_1_BASE 262*5fd0122aSMatthias Ringwald //! 263*5fd0122aSMatthias Ringwald //! The Timer32 interrupt source is cleared, so that it no longer asserts. 264*5fd0122aSMatthias Ringwald //! 265*5fd0122aSMatthias Ringwald //! \return None. 266*5fd0122aSMatthias Ringwald // 267*5fd0122aSMatthias Ringwald //***************************************************************************** 268*5fd0122aSMatthias Ringwald extern void Timer32_clearInterruptFlag(uint32_t timer); 269*5fd0122aSMatthias Ringwald 270*5fd0122aSMatthias Ringwald //***************************************************************************** 271*5fd0122aSMatthias Ringwald // 272*5fd0122aSMatthias Ringwald //! Gets the current Timer32 interrupt status. 273*5fd0122aSMatthias Ringwald //! 274*5fd0122aSMatthias Ringwald //! \param timer is the instance of the Timer32 module. 275*5fd0122aSMatthias Ringwald //! Valid parameters must be one of the following values: 276*5fd0122aSMatthias Ringwald //! - \b TIMER32_0_BASE 277*5fd0122aSMatthias Ringwald //! - \b TIMER32_1_BASE 278*5fd0122aSMatthias Ringwald //! 279*5fd0122aSMatthias Ringwald //! This returns the interrupt status for the Timer32 module. A positive value 280*5fd0122aSMatthias Ringwald //! will indicate that an interrupt is pending while a zero value will indicate 281*5fd0122aSMatthias Ringwald //! that no interrupt is pending. 282*5fd0122aSMatthias Ringwald //! 283*5fd0122aSMatthias Ringwald //! \return The current interrupt status 284*5fd0122aSMatthias Ringwald // 285*5fd0122aSMatthias Ringwald //***************************************************************************** 286*5fd0122aSMatthias Ringwald extern uint32_t Timer32_getInterruptStatus(uint32_t timer); 287*5fd0122aSMatthias Ringwald 288*5fd0122aSMatthias Ringwald //***************************************************************************** 289*5fd0122aSMatthias Ringwald // 290*5fd0122aSMatthias Ringwald //! Registers an interrupt handler for Timer32 interrupts. 291*5fd0122aSMatthias Ringwald //! 292*5fd0122aSMatthias Ringwald //! \param timerInterrupt is the specific interrupt to register. For the 293*5fd0122aSMatthias Ringwald //! Timer32 module, there are a total of three different interrupts: one 294*5fd0122aSMatthias Ringwald //! interrupt for each two Timer32 modules, and a "combined" interrupt which 295*5fd0122aSMatthias Ringwald //! is a logical OR of each individual Timer32 interrupt. 296*5fd0122aSMatthias Ringwald //! - \b TIMER32_0_INTERRUPT 297*5fd0122aSMatthias Ringwald //! - \b TIMER32_1_INTERRUPT 298*5fd0122aSMatthias Ringwald //! - \b TIMER32_COMBINED_INTERRUPT 299*5fd0122aSMatthias Ringwald //! 300*5fd0122aSMatthias Ringwald //! \param intHandler is a pointer to the function to be called when the 301*5fd0122aSMatthias Ringwald //! Timer32 interrupt occurs. 302*5fd0122aSMatthias Ringwald //! 303*5fd0122aSMatthias Ringwald //! This function registers the handler to be called when an Timer32 304*5fd0122aSMatthias Ringwald //! interrupt occurs. This function enables the global interrupt in the 305*5fd0122aSMatthias Ringwald //! interrupt controller; specific Timer32 interrupts must be enabled 306*5fd0122aSMatthias Ringwald //! via Timer32_enableInterrupt(). It is the interrupt handler's 307*5fd0122aSMatthias Ringwald //! responsibility to clear the interrupt source 308*5fd0122aSMatthias Ringwald //! via Timer32_clearInterruptFlag(). 309*5fd0122aSMatthias Ringwald //! 310*5fd0122aSMatthias Ringwald //! \return None. 311*5fd0122aSMatthias Ringwald // 312*5fd0122aSMatthias Ringwald //***************************************************************************** 313*5fd0122aSMatthias Ringwald extern void Timer32_registerInterrupt(uint32_t timerInterrupt, 314*5fd0122aSMatthias Ringwald void (*intHandler)(void)); 315*5fd0122aSMatthias Ringwald 316*5fd0122aSMatthias Ringwald //***************************************************************************** 317*5fd0122aSMatthias Ringwald // 318*5fd0122aSMatthias Ringwald //! Unregisters the interrupt handler for the Timer32 interrupt. 319*5fd0122aSMatthias Ringwald //! 320*5fd0122aSMatthias Ringwald //! \param timerInterrupt is the specific interrupt to register. For the 321*5fd0122aSMatthias Ringwald //! Timer32 module, there are a total of three different interrupts: one 322*5fd0122aSMatthias Ringwald //! interrupt for each two Timer32 modules, and a "combined" interrupt which 323*5fd0122aSMatthias Ringwald //! is a logical OR of each individual Timer32 interrupt. 324*5fd0122aSMatthias Ringwald //! - \b TIMER32_0_INTERRUPT 325*5fd0122aSMatthias Ringwald //! - \b TIMER32_1_INTERRUPT 326*5fd0122aSMatthias Ringwald //! - \b TIMER32_COMBINED_INTERRUPT 327*5fd0122aSMatthias Ringwald //! 328*5fd0122aSMatthias Ringwald //! This function unregisters the handler to be called when a Timer32 329*5fd0122aSMatthias Ringwald //! interrupt occurs. This function also masks off the interrupt in the 330*5fd0122aSMatthias Ringwald //! interrupt controller so that the interrupt handler no longer is called. 331*5fd0122aSMatthias Ringwald //! 332*5fd0122aSMatthias Ringwald //! \sa Interrupt_registerInterrupt() for important information about 333*5fd0122aSMatthias Ringwald //! registering interrupt handlers. 334*5fd0122aSMatthias Ringwald //! 335*5fd0122aSMatthias Ringwald //! \return None. 336*5fd0122aSMatthias Ringwald // 337*5fd0122aSMatthias Ringwald //***************************************************************************** 338*5fd0122aSMatthias Ringwald extern void Timer32_unregisterInterrupt(uint32_t timerInterrupt); 339*5fd0122aSMatthias Ringwald 340*5fd0122aSMatthias Ringwald //***************************************************************************** 341*5fd0122aSMatthias Ringwald // 342*5fd0122aSMatthias Ringwald // Mark the end of the C bindings section for C++ compilers. 343*5fd0122aSMatthias Ringwald // 344*5fd0122aSMatthias Ringwald //***************************************************************************** 345*5fd0122aSMatthias Ringwald #ifdef __cplusplus 346*5fd0122aSMatthias Ringwald } 347*5fd0122aSMatthias Ringwald #endif 348*5fd0122aSMatthias Ringwald 349*5fd0122aSMatthias Ringwald //***************************************************************************** 350*5fd0122aSMatthias Ringwald // 351*5fd0122aSMatthias Ringwald // Close the Doxygen group. 352*5fd0122aSMatthias Ringwald //! @} 353*5fd0122aSMatthias Ringwald // 354*5fd0122aSMatthias Ringwald //***************************************************************************** 355*5fd0122aSMatthias Ringwald 356*5fd0122aSMatthias Ringwald #endif /* TIMER32_H_ */ 357