mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2026-01-20 16:50:35 -05:00
Start of an MSP430FR5969 IAR project - currently running Blinky only.
This commit is contained in:
parent
d39c0d5926
commit
91b249d24b
72 changed files with 43164 additions and 0 deletions
|
|
@ -0,0 +1,620 @@
|
|||
/* --COPYRIGHT--,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--*/
|
||||
//*****************************************************************************
|
||||
//
|
||||
// cs.h - Driver for the CS Module.
|
||||
//
|
||||
//*****************************************************************************
|
||||
|
||||
#ifndef __MSP430WARE_CS_H__
|
||||
#define __MSP430WARE_CS_H__
|
||||
|
||||
#include "inc/hw_memmap.h"
|
||||
|
||||
#if defined(__MSP430_HAS_CS__) || defined(__MSP430_HAS_SFR__)
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
// If building with a C++ compiler, make all of the definitions in this header
|
||||
// have a C binding.
|
||||
//
|
||||
//*****************************************************************************
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
// The following are values that can be passed to the clockSourceDivider
|
||||
// parameter for functions: CS_initClockSignal().
|
||||
//
|
||||
//*****************************************************************************
|
||||
#define CS_CLOCK_DIVIDER_1 DIVM__1
|
||||
#define CS_CLOCK_DIVIDER_2 DIVM__2
|
||||
#define CS_CLOCK_DIVIDER_4 DIVM__4
|
||||
#define CS_CLOCK_DIVIDER_8 DIVM__8
|
||||
#define CS_CLOCK_DIVIDER_16 DIVM__16
|
||||
#define CS_CLOCK_DIVIDER_32 DIVM__32
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
// The following are values that can be passed to the selectClock parameter for
|
||||
// functions: CS_enableClockRequest(), and CS_disableClockRequest(); the
|
||||
// selectedClockSignal parameter for functions: CS_initClockSignal().
|
||||
//
|
||||
//*****************************************************************************
|
||||
#define CS_ACLK 0x01
|
||||
#define CS_MCLK 0x02
|
||||
#define CS_SMCLK 0x04
|
||||
#define CS_MODOSC MODCLKREQEN
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
// The following are values that can be passed to the clockSource parameter for
|
||||
// functions: CS_initClockSignal().
|
||||
//
|
||||
//*****************************************************************************
|
||||
#define CS_VLOCLK_SELECT SELM__VLOCLK
|
||||
#define CS_DCOCLK_SELECT SELM__DCOCLK
|
||||
#define CS_LFXTCLK_SELECT SELM__LFXTCLK
|
||||
#define CS_HFXTCLK_SELECT SELM__HFXTCLK
|
||||
#define CS_LFMODOSC_SELECT SELM__LFMODOSC
|
||||
#define CS_MODOSC_SELECT SELM__MODOSC
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
// The following are values that can be passed to the lfxtdrive parameter for
|
||||
// functions: CS_turnOnLFXT(), and CS_turnOnLFXTWithTimeout().
|
||||
//
|
||||
//*****************************************************************************
|
||||
#define CS_LFXT_DRIVE_0 LFXTDRIVE_0
|
||||
#define CS_LFXT_DRIVE_1 LFXTDRIVE_1
|
||||
#define CS_LFXT_DRIVE_2 LFXTDRIVE_2
|
||||
#define CS_LFXT_DRIVE_3 LFXTDRIVE_3
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
// The following are values that can be passed to the hfxtdrive parameter for
|
||||
// functions: CS_turnOnHFXT(), and CS_turnOnHFXTWithTimeout().
|
||||
//
|
||||
//*****************************************************************************
|
||||
#define CS_HFXT_DRIVE_4MHZ_8MHZ HFXTDRIVE_0
|
||||
#define CS_HFXT_DRIVE_8MHZ_16MHZ HFXTDRIVE_1
|
||||
#define CS_HFXT_DRIVE_16MHZ_24MHZ HFXTDRIVE_2
|
||||
#define CS_HFXT_DRIVE_24MHZ_32MHZ HFXTDRIVE_3
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
// The following are values that can be passed to the mask parameter for
|
||||
// functions: CS_getFaultFlagStatus(), and CS_clearFaultFlag() as well as
|
||||
// returned by the CS_getFaultFlagStatus() function.
|
||||
//
|
||||
//*****************************************************************************
|
||||
#define CS_LFXTOFFG LFXTOFFG
|
||||
#define CS_HFXTOFFG HFXTOFFG
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
// The following are values that can be passed to the dcorsel parameter for
|
||||
// functions: CS_setDCOFreq().
|
||||
//
|
||||
//*****************************************************************************
|
||||
#define CS_DCORSEL_0 0x00
|
||||
#define CS_DCORSEL_1 DCORSEL
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
// The following are values that can be passed to the dcofsel parameter for
|
||||
// functions: CS_setDCOFreq().
|
||||
//
|
||||
//*****************************************************************************
|
||||
#define CS_DCOFSEL_0 DCOFSEL_0
|
||||
#define CS_DCOFSEL_1 DCOFSEL_1
|
||||
#define CS_DCOFSEL_2 DCOFSEL_2
|
||||
#define CS_DCOFSEL_3 DCOFSEL_3
|
||||
#define CS_DCOFSEL_4 DCOFSEL_4
|
||||
#define CS_DCOFSEL_5 DCOFSEL_5
|
||||
#define CS_DCOFSEL_6 DCOFSEL_6
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
// Prototypes for the APIs.
|
||||
//
|
||||
//*****************************************************************************
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
//! \brief Sets the external clock source
|
||||
//!
|
||||
//! This function sets the external clock sources LFXT and HFXT crystal
|
||||
//! oscillator frequency values. This function must be called if an external
|
||||
//! crystal LFXT or HFXT is used and the user intends to call CS_getMCLK,
|
||||
//! CS_getSMCLK, CS_getACLK and CS_turnOnLFXT, CS_LFXTByPass,
|
||||
//! CS_turnOnLFXTWithTimeout, CS_LFXTByPassWithTimeout, CS_turnOnHFXT,
|
||||
//! CS_HFXTByPass, CS_turnOnHFXTWithTimeout, CS_HFXTByPassWithTimeout.
|
||||
//!
|
||||
//! \param LFXTCLK_frequency is the LFXT crystal frequencies in Hz
|
||||
//! \param HFXTCLK_frequency is the HFXT crystal frequencies in Hz
|
||||
//!
|
||||
//! \return None
|
||||
//
|
||||
//*****************************************************************************
|
||||
extern void CS_setExternalClockSource(uint32_t LFXTCLK_frequency,
|
||||
uint32_t HFXTCLK_frequency);
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
//! \brief Initializes clock signal
|
||||
//!
|
||||
//! This function initializes each of the clock signals. The user must ensure
|
||||
//! that this function is called for each clock signal. If not, the default
|
||||
//! state is assumed for the particular clock signal. Refer to MSP430ware
|
||||
//! documentation for CS module or Device Family User's Guide for details of
|
||||
//! default clock signal states.
|
||||
//!
|
||||
//! \param selectedClockSignal Selected clock signal
|
||||
//! Valid values are:
|
||||
//! - \b CS_ACLK
|
||||
//! - \b CS_MCLK
|
||||
//! - \b CS_SMCLK
|
||||
//! - \b CS_MODOSC
|
||||
//! \param clockSource is the selected clock signal
|
||||
//! Valid values are:
|
||||
//! - \b CS_VLOCLK_SELECT
|
||||
//! - \b CS_DCOCLK_SELECT - [Not available for ACLK]
|
||||
//! - \b CS_LFXTCLK_SELECT
|
||||
//! - \b CS_HFXTCLK_SELECT - [Not available for ACLK]
|
||||
//! - \b CS_LFMODOSC_SELECT
|
||||
//! - \b CS_MODOSC_SELECT - [Not available for ACLK]
|
||||
//! \param clockSourceDivider is the selected clock divider to calculate clock
|
||||
//! signal from clock source.
|
||||
//! Valid values are:
|
||||
//! - \b CS_CLOCK_DIVIDER_1 - [Default for ACLK]
|
||||
//! - \b CS_CLOCK_DIVIDER_2
|
||||
//! - \b CS_CLOCK_DIVIDER_4
|
||||
//! - \b CS_CLOCK_DIVIDER_8 - [Default for SMCLK and MCLK]
|
||||
//! - \b CS_CLOCK_DIVIDER_16
|
||||
//! - \b CS_CLOCK_DIVIDER_32
|
||||
//!
|
||||
//! Modified bits of \b CSCTL0 register, bits of \b CSCTL3 register and bits of
|
||||
//! \b CSCTL2 register.
|
||||
//!
|
||||
//! \return None
|
||||
//
|
||||
//*****************************************************************************
|
||||
extern void CS_initClockSignal(uint8_t selectedClockSignal,
|
||||
uint16_t clockSource,
|
||||
uint16_t clockSourceDivider);
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
//! \brief Initializes the LFXT crystal in low frequency mode.
|
||||
//!
|
||||
//! Initializes the LFXT crystal oscillator in low frequency mode. Loops until
|
||||
//! all oscillator fault flags are cleared, with no timeout. See the device-
|
||||
//! specific data sheet for appropriate drive settings. IMPORTANT: User must
|
||||
//! call CS_setExternalClockSource function to set frequency of external clocks
|
||||
//! before calling this function.
|
||||
//!
|
||||
//! \param lfxtdrive is the target drive strength for the LFXT crystal
|
||||
//! oscillator.
|
||||
//! Valid values are:
|
||||
//! - \b CS_LFXT_DRIVE_0
|
||||
//! - \b CS_LFXT_DRIVE_1
|
||||
//! - \b CS_LFXT_DRIVE_2
|
||||
//! - \b CS_LFXT_DRIVE_3 [Default]
|
||||
//!
|
||||
//! Modified bits of \b CSCTL0 register, bits of \b CSCTL5 register, bits of \b
|
||||
//! CSCTL4 register and bits of \b SFRIFG1 register.
|
||||
//!
|
||||
//! \return None
|
||||
//
|
||||
//*****************************************************************************
|
||||
extern void CS_turnOnLFXT(uint16_t lfxtdrive);
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
//! \brief Bypasses the LFXT crystal oscillator.
|
||||
//!
|
||||
//! Bypasses the LFXT crystal oscillator. Loops until all oscillator fault
|
||||
//! flags are cleared, with no timeout. IMPORTANT: User must call
|
||||
//! CS_setExternalClockSource function to set frequency of external clocks
|
||||
//! before calling this function.
|
||||
//!
|
||||
//!
|
||||
//! Modified bits of \b CSCTL0 register, bits of \b CSCTL5 register, bits of \b
|
||||
//! CSCTL4 register and bits of \b SFRIFG register.
|
||||
//!
|
||||
//! \return None
|
||||
//
|
||||
//*****************************************************************************
|
||||
extern void CS_bypassLFXT(void);
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
//! \brief Initializes the LFXT crystal oscillator in low frequency mode with
|
||||
//! timeout.
|
||||
//!
|
||||
//! Initializes the LFXT crystal oscillator in low frequency mode with timeout.
|
||||
//! Loops until all oscillator fault flags are cleared or until a timeout
|
||||
//! counter is decremented and equals to zero. See the device-specific
|
||||
//! datasheet for appropriate drive settings. IMPORTANT: User must call
|
||||
//! CS_setExternalClockSource to set frequency of external clocks before
|
||||
//! calling this function.
|
||||
//!
|
||||
//! \param lfxtdrive is the target drive strength for the LFXT crystal
|
||||
//! oscillator.
|
||||
//! Valid values are:
|
||||
//! - \b CS_LFXT_DRIVE_0
|
||||
//! - \b CS_LFXT_DRIVE_1
|
||||
//! - \b CS_LFXT_DRIVE_2
|
||||
//! - \b CS_LFXT_DRIVE_3 [Default]
|
||||
//! \param timeout is the count value that gets decremented every time the loop
|
||||
//! that clears oscillator fault flags gets executed.
|
||||
//!
|
||||
//! Modified bits of \b CSCTL0 register, bits of \b CSCTL5 register, bits of \b
|
||||
//! CSCTL4 register and bits of \b SFRIFG1 register.
|
||||
//!
|
||||
//! \return STATUS_SUCCESS or STATUS_FAIL indicating if the LFXT crystal
|
||||
//! oscillator was initialized successfully
|
||||
//
|
||||
//*****************************************************************************
|
||||
extern bool CS_turnOnLFXTWithTimeout(uint16_t lfxtdrive,
|
||||
uint32_t timeout);
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
//! \brief Bypass the LFXT crystal oscillator with timeout.
|
||||
//!
|
||||
//! Bypasses the LFXT crystal oscillator with timeout. Loops until all
|
||||
//! oscillator fault flags are cleared or until a timeout counter is
|
||||
//! decremented and equals to zero. NOTE: User must call
|
||||
//! CS_setExternalClockSource to set frequency of external clocks before
|
||||
//! calling this function.
|
||||
//!
|
||||
//! \param timeout is the count value that gets decremented every time the loop
|
||||
//! that clears oscillator fault flags gets executed.
|
||||
//!
|
||||
//! Modified bits of \b CSCTL0 register, bits of \b CSCTL5 register, bits of \b
|
||||
//! CSCTL4 register and bits of \b SFRIFG register.
|
||||
//!
|
||||
//! \return STATUS_SUCCESS or STATUS_FAIL
|
||||
//
|
||||
//*****************************************************************************
|
||||
extern bool CS_bypassLFXTWithTimeout(uint32_t timeout);
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
//! \brief Stops the LFXT oscillator using the LFXTOFF bit.
|
||||
//!
|
||||
//!
|
||||
//! Modified bits of \b CSCTL4 register.
|
||||
//!
|
||||
//! \return None
|
||||
//
|
||||
//*****************************************************************************
|
||||
extern void CS_turnOffLFXT(void);
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
//! \brief Starts the HFXFT crystal
|
||||
//!
|
||||
//! Initializes the HFXT crystal oscillator, which supports crystal frequencies
|
||||
//! between 0 MHz and 24 MHz, depending on the selected drive strength. Loops
|
||||
//! until all oscillator fault flags are cleared, with no timeout. See the
|
||||
//! device-specific data sheet for appropriate drive settings. NOTE: User must
|
||||
//! call CS_setExternalClockSource to set frequency of external clocks before
|
||||
//! calling this function.
|
||||
//!
|
||||
//! \param hfxtdrive is the target drive strength for the HFXT crystal
|
||||
//! oscillator.
|
||||
//! Valid values are:
|
||||
//! - \b CS_HFXT_DRIVE_4MHZ_8MHZ
|
||||
//! - \b CS_HFXT_DRIVE_8MHZ_16MHZ
|
||||
//! - \b CS_HFXT_DRIVE_16MHZ_24MHZ
|
||||
//! - \b CS_HFXT_DRIVE_24MHZ_32MHZ [Default]
|
||||
//!
|
||||
//! Modified bits of \b CSCTL5 register, bits of \b CSCTL4 register and bits of
|
||||
//! \b SFRIFG1 register.
|
||||
//!
|
||||
//! \return None
|
||||
//
|
||||
//*****************************************************************************
|
||||
extern void CS_turnOnHFXT(uint16_t hfxtdrive);
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
//! \brief Bypasses the HFXT crystal oscillator
|
||||
//!
|
||||
//! Bypasses the HFXT crystal oscillator, which supports crystal frequencies
|
||||
//! between 0 MHz and 24 MHz. Loops until all oscillator fault flags are
|
||||
//! cleared, with no timeout.NOTE: User must call CS_setExternalClockSource to
|
||||
//! set frequency of external clocks before calling this function.
|
||||
//!
|
||||
//!
|
||||
//! Modified bits of \b CSCTL5 register, bits of \b CSCTL4 register and bits of
|
||||
//! \b SFRIFG register.
|
||||
//!
|
||||
//! \return None
|
||||
//
|
||||
//*****************************************************************************
|
||||
extern void CS_bypassHFXT(void);
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
//! \brief Initializes the HFXT crystal oscillator with timeout.
|
||||
//!
|
||||
//! Initializes the HFXT crystal oscillator, which supports crystal frequencies
|
||||
//! between 0 MHz and 24 MHz, depending on the selected drive strength. Loops
|
||||
//! until all oscillator fault flags are cleared or until a timeout counter is
|
||||
//! decremented and equals to zero. See the device-specific data sheet for
|
||||
//! appropriate drive settings. NOTE: User must call CS_setExternalClockSource
|
||||
//! to set frequency of external clocks before calling this function.
|
||||
//!
|
||||
//! \param hfxtdrive is the target drive strength for the HFXT crystal
|
||||
//! oscillator.
|
||||
//! Valid values are:
|
||||
//! - \b CS_HFXT_DRIVE_4MHZ_8MHZ
|
||||
//! - \b CS_HFXT_DRIVE_8MHZ_16MHZ
|
||||
//! - \b CS_HFXT_DRIVE_16MHZ_24MHZ
|
||||
//! - \b CS_HFXT_DRIVE_24MHZ_32MHZ [Default]
|
||||
//! \param timeout is the count value that gets decremented every time the loop
|
||||
//! that clears oscillator fault flags gets executed.
|
||||
//!
|
||||
//! Modified bits of \b CSCTL5 register, bits of \b CSCTL4 register and bits of
|
||||
//! \b SFRIFG1 register.
|
||||
//!
|
||||
//! \return STATUS_SUCCESS or STATUS_FAIL
|
||||
//
|
||||
//*****************************************************************************
|
||||
extern bool CS_turnOnHFXTWithTimeout(uint16_t hfxtdrive,
|
||||
uint32_t timeout);
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
//! \brief Bypasses the HFXT crustal oscillator with timeout
|
||||
//!
|
||||
//! Bypasses the HFXT crystal oscillator, which supports crystal frequencies
|
||||
//! between 0 MHz and 24 MHz. Loops until all oscillator fault flags are
|
||||
//! cleared or until a timeout counter is decremented and equals to zero. NOTE:
|
||||
//! User must call CS_setExternalClockSource to set frequency of external
|
||||
//! clocks before calling this function.
|
||||
//!
|
||||
//! \param timeout is the count value that gets decremented every time the loop
|
||||
//! that clears oscillator fault flags gets executed.
|
||||
//!
|
||||
//! Modified bits of \b CSCTL5 register, bits of \b CSCTL4 register and bits of
|
||||
//! \b SFRIFG1 register.
|
||||
//!
|
||||
//! \return STATUS_SUCCESS or STATUS_FAIL
|
||||
//
|
||||
//*****************************************************************************
|
||||
extern bool CS_bypassHFXTWithTimeout(uint32_t timeout);
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
//! \brief Stops the HFXT oscillator using the HFXTOFF bit.
|
||||
//!
|
||||
//!
|
||||
//! Modified bits of \b CSCTL4 register.
|
||||
//!
|
||||
//! \return None
|
||||
//
|
||||
//*****************************************************************************
|
||||
extern void CS_turnOffHFXT(void);
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
//! \brief Enables conditional module requests
|
||||
//!
|
||||
//! \param selectClock selects specific request enables.
|
||||
//! Valid values are:
|
||||
//! - \b CS_ACLK
|
||||
//! - \b CS_MCLK
|
||||
//! - \b CS_SMCLK
|
||||
//! - \b CS_MODOSC
|
||||
//!
|
||||
//! Modified bits of \b CSCTL6 register.
|
||||
//!
|
||||
//! \return None
|
||||
//
|
||||
//*****************************************************************************
|
||||
extern void CS_enableClockRequest(uint8_t selectClock);
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
//! \brief Disables conditional module requests
|
||||
//!
|
||||
//! \param selectClock selects specific request enables.
|
||||
//! Valid values are:
|
||||
//! - \b CS_ACLK
|
||||
//! - \b CS_MCLK
|
||||
//! - \b CS_SMCLK
|
||||
//! - \b CS_MODOSC
|
||||
//!
|
||||
//! Modified bits of \b CSCTL6 register.
|
||||
//!
|
||||
//! \return None
|
||||
//
|
||||
//*****************************************************************************
|
||||
extern void CS_disableClockRequest(uint8_t selectClock);
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
//! \brief Gets the current CS fault flag status.
|
||||
//!
|
||||
//! \param mask is the masked interrupt flag status to be returned. Mask
|
||||
//! parameter can be either any of the following selection.
|
||||
//! Mask value is the logical OR of any of the following:
|
||||
//! - \b CS_LFXTOFFG - LFXT oscillator fault flag
|
||||
//! - \b CS_HFXTOFFG - HFXT oscillator fault flag
|
||||
//!
|
||||
//! \return Logical OR of any of the following:
|
||||
//! - \b CS_LFXTOFFG LFXT oscillator fault flag
|
||||
//! - \b CS_HFXTOFFG HFXT oscillator fault flag
|
||||
//! \n indicating the status of the masked interrupts
|
||||
//
|
||||
//*****************************************************************************
|
||||
extern uint8_t CS_getFaultFlagStatus(uint8_t mask);
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
//! \brief Clears the current CS fault flag status for the masked bit.
|
||||
//!
|
||||
//! \param mask is the masked interrupt flag status to be returned. mask
|
||||
//! parameter can be any one of the following
|
||||
//! Mask value is the logical OR of any of the following:
|
||||
//! - \b CS_LFXTOFFG - LFXT oscillator fault flag
|
||||
//! - \b CS_HFXTOFFG - HFXT oscillator fault flag
|
||||
//!
|
||||
//! Modified bits of \b CSCTL5 register.
|
||||
//!
|
||||
//! \return None
|
||||
//
|
||||
//*****************************************************************************
|
||||
extern void CS_clearFaultFlag(uint8_t mask);
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
//! \brief Get the current ACLK frequency.
|
||||
//!
|
||||
//! If a oscillator fault is set, the frequency returned will be based on the
|
||||
//! fail safe mechanism of CS module. The user of this API must ensure that
|
||||
//! CS_externalClockSourceInit API was invoked before in case LFXT or HFXT is
|
||||
//! being used.
|
||||
//!
|
||||
//!
|
||||
//! \return Current ACLK frequency in Hz
|
||||
//
|
||||
//*****************************************************************************
|
||||
extern uint32_t CS_getACLK(void);
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
//! \brief Get the current SMCLK frequency.
|
||||
//!
|
||||
//! If a oscillator fault is set, the frequency returned will be based on the
|
||||
//! fail safe mechanism of CS module. The user of this API must ensure that
|
||||
//! CS_externalClockSourceInit API was invoked before in case LFXT or HFXT is
|
||||
//! being used.
|
||||
//!
|
||||
//!
|
||||
//! \return Current SMCLK frequency in Hz
|
||||
//
|
||||
//*****************************************************************************
|
||||
extern uint32_t CS_getSMCLK(void);
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
//! \brief Get the current MCLK frequency.
|
||||
//!
|
||||
//! If a oscillator fault is set, the frequency returned will be based on the
|
||||
//! fail safe mechanism of CS module. The user of this API must ensure that
|
||||
//! CS_externalClockSourceInit API was invoked before in case LFXT or HFXT is
|
||||
//! being used.
|
||||
//!
|
||||
//!
|
||||
//! \return Current MCLK frequency in Hz
|
||||
//
|
||||
//*****************************************************************************
|
||||
extern uint32_t CS_getMCLK(void);
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
//! \brief Turns off VLO
|
||||
//!
|
||||
//!
|
||||
//! Modified bits of \b CSCTL4 register.
|
||||
//!
|
||||
//! \return None
|
||||
//
|
||||
//*****************************************************************************
|
||||
extern void CS_turnOffVLO(void);
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
//! \brief Clears all the Oscillator Flags
|
||||
//!
|
||||
//! \param timeout is the count value that gets decremented every time the loop
|
||||
//! that clears oscillator fault flags gets executed.
|
||||
//!
|
||||
//! Modified bits of \b CSCTL5 register and bits of \b SFRIFG1 register.
|
||||
//!
|
||||
//! \return the mask of the oscillator flag status
|
||||
//
|
||||
//*****************************************************************************
|
||||
extern uint16_t CS_clearAllOscFlagsWithTimeout(uint32_t timeout);
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
//! \brief Set DCO frequency
|
||||
//!
|
||||
//! \param dcorsel selects frequency range option.
|
||||
//! Valid values are:
|
||||
//! - \b CS_DCORSEL_0 [Default] - Low Frequency Option
|
||||
//! - \b CS_DCORSEL_1 - High Frequency Option
|
||||
//! \param dcofsel selects valid frequency options based on dco frequency range
|
||||
//! selection (dcorsel)
|
||||
//! Valid values are:
|
||||
//! - \b CS_DCOFSEL_0 - Low frequency option 1MHz. High frequency option
|
||||
//! 1MHz.
|
||||
//! - \b CS_DCOFSEL_1 - Low frequency option 2.67MHz. High frequency
|
||||
//! option 5.33MHz.
|
||||
//! - \b CS_DCOFSEL_2 - Low frequency option 3.33MHz. High frequency
|
||||
//! option 6.67MHz.
|
||||
//! - \b CS_DCOFSEL_3 - Low frequency option 4MHz. High frequency option
|
||||
//! 8MHz.
|
||||
//! - \b CS_DCOFSEL_4 - Low frequency option 5.33MHz. High frequency
|
||||
//! option 16MHz.
|
||||
//! - \b CS_DCOFSEL_5 - Low frequency option 6.67MHz. High frequency
|
||||
//! option 20MHz.
|
||||
//! - \b CS_DCOFSEL_6 - Low frequency option 8MHz. High frequency option
|
||||
//! 24MHz.
|
||||
//!
|
||||
//! \return None
|
||||
//
|
||||
//*****************************************************************************
|
||||
extern void CS_setDCOFreq(uint16_t dcorsel,
|
||||
uint16_t dcofsel);
|
||||
|
||||
//*****************************************************************************
|
||||
//
|
||||
// Mark the end of the C bindings section for C++ compilers.
|
||||
//
|
||||
//*****************************************************************************
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
#endif // __MSP430WARE_CS_H__
|
||||
Loading…
Add table
Add a link
Reference in a new issue