| /* |
| * ------------------------------------------- |
| * MSP432 DriverLib - v3_10_00_09 |
| * ------------------------------------------- |
| * |
| * --COPYRIGHT--,BSD,BSD |
| * Copyright (c) 2014, Texas Instruments Incorporated |
| * All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions |
| * are met: |
| * |
| * * Redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer. |
| * |
| * * Redistributions in binary form must reproduce the above copyright |
| * notice, this list of conditions and the following disclaimer in the |
| * documentation and/or other materials provided with the distribution. |
| * |
| * * Neither the name of Texas Instruments Incorporated nor the names of |
| * its contributors may be used to endorse or promote products derived |
| * from this software without specific prior written permission. |
| * |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
| * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, |
| * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
| * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR |
| * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
| * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
| * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; |
| * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
| * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR |
| * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, |
| * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| * --/COPYRIGHT--*/ |
| #ifndef __SYSTICK_H__ |
| #define __SYSTICK_H__ |
| |
| //***************************************************************************** |
| // |
| //! \addtogroup systick_api |
| //! @{ |
| // |
| //***************************************************************************** |
| |
| //***************************************************************************** |
| // |
| // If building with a C++ compiler, make all of the definitions in this header |
| // have a C binding. |
| // |
| //***************************************************************************** |
| #ifdef __cplusplus |
| extern "C" |
| { |
| #endif |
| #include <stdint.h> |
| |
| //***************************************************************************** |
| // |
| // Prototypes for the APIs. |
| // |
| //***************************************************************************** |
| |
| //***************************************************************************** |
| // |
| //! Enables the SysTick counter. |
| //! |
| //! This function starts the SysTick counter. If an interrupt handler has been |
| //! registered, it is called when the SysTick counter rolls over. |
| //! |
| //! \note Calling this function causes the SysTick counter to (re)commence |
| //! counting from its current value. The counter is not automatically reloaded |
| //! with the period as specified in a previous call to SysTick_setPeriod(). If |
| //! an immediate reload is required, the \b NVIC_ST_CURRENT register must be |
| //! written to force the reload. Any write to this register clears the SysTick |
| //! counter to 0 and causes a reload with the supplied period on the next |
| //! clock. |
| //! |
| //! \return None. |
| // |
| //***************************************************************************** |
| extern void SysTick_enableModule(void); |
| |
| //***************************************************************************** |
| // |
| //! Disables the SysTick counter. |
| //! |
| //! This function stops the SysTick counter. If an interrupt handler has been |
| //! registered, it is not called until SysTick is restarted. |
| //! |
| //! \return None. |
| // |
| //***************************************************************************** |
| extern void SysTick_disableModule(void); |
| |
| //***************************************************************************** |
| // |
| //! Registers an interrupt handler for the SysTick interrupt. |
| //! |
| //! \param intHandler is a pointer to the function to be called when the |
| //! SysTick interrupt occurs. |
| //! |
| //! This function registers the handler to be called when a SysTick interrupt |
| //! occurs. |
| //! |
| //! \sa Interrupt_registerInterrupt() for important information about |
| //! registering interrupt handlers. |
| //! |
| //! \return None. |
| // |
| //***************************************************************************** |
| extern void SysTick_registerInterrupt(void (*intHandler)(void)); |
| |
| //***************************************************************************** |
| // |
| //! Unregisters the interrupt handler for the SysTick interrupt. |
| //! |
| //! This function unregisters the handler to be called when a SysTick interrupt |
| //! occurs. |
| //! |
| //! \sa Interrupt_registerInterrupt() for important information about |
| //! registering interrupt handlers. |
| //! |
| //! \return None. |
| // |
| //***************************************************************************** |
| extern void SysTick_unregisterInterrupt(void); |
| |
| //***************************************************************************** |
| // |
| //! Enables the SysTick interrupt. |
| //! |
| //! This function enables the SysTick interrupt, allowing it to be |
| //! reflected to the processor. |
| //! |
| //! \note The SysTick interrupt handler is not required to clear the SysTick |
| //! interrupt source because it is cleared automatically by the NVIC when the |
| //! interrupt handler is called. |
| //! |
| //! \return None. |
| // |
| //***************************************************************************** |
| extern void SysTick_enableInterrupt(void); |
| |
| //***************************************************************************** |
| // |
| //! Disables the SysTick interrupt. |
| //! |
| //! This function disables the SysTick interrupt, preventing it from being |
| //! reflected to the processor. |
| //! |
| //! \return None. |
| // |
| //***************************************************************************** |
| extern void SysTick_disableInterrupt(void); |
| |
| //***************************************************************************** |
| // |
| //! Sets the period of the SysTick counter. |
| //! |
| //! \param period is the number of clock ticks in each period of the SysTick |
| //! counter and must be between 1 and 16,777,216, inclusive. |
| //! |
| //! This function sets the rate at which the SysTick counter wraps, which |
| //! equates to the number of processor clocks between interrupts. |
| //! |
| //! \note Calling this function does not cause the SysTick counter to reload |
| //! immediately. If an immediate reload is required, the \b NVIC_ST_CURRENT |
| //! register must be written. Any write to this register clears the SysTick |
| //! counter to 0 and causes a reload with the \e period supplied here on |
| //! the next clock after SysTick is enabled. |
| //! |
| //! \return None. |
| // |
| //***************************************************************************** |
| extern void SysTick_setPeriod(uint32_t period); |
| |
| //***************************************************************************** |
| // |
| //! Gets the period of the SysTick counter. |
| //! |
| //! This function returns the rate at which the SysTick counter wraps, which |
| //! equates to the number of processor clocks between interrupts. |
| //! |
| //! \return Returns the period of the SysTick counter. |
| // |
| //***************************************************************************** |
| extern uint32_t SysTick_getPeriod(void); |
| |
| //***************************************************************************** |
| // |
| //! Gets the current value of the SysTick counter. |
| //! |
| //! This function returns the current value of the SysTick counter, which is |
| //! a value between the period - 1 and zero, inclusive. |
| //! |
| //! \return Returns the current value of the SysTick counter. |
| // |
| //***************************************************************************** |
| extern uint32_t SysTick_getValue(void); |
| |
| //***************************************************************************** |
| // |
| // Mark the end of the C bindings section for C++ compilers. |
| // |
| //***************************************************************************** |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| //***************************************************************************** |
| // |
| // Close the Doxygen group. |
| //! @} |
| // |
| //***************************************************************************** |
| |
| #endif // __SYSTICK_H__ |