mbed library sources

Dependents:   frdm_kl05z_gpio_test

Fork of mbed-src by mbed official

Committer:
shaoziyang
Date:
Sat Sep 13 14:25:46 2014 +0000
Revision:
323:9e901b0a5aa1
Parent:
130:1dec54e4aec3
test with CLOCK_SETUP = 0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 130:1dec54e4aec3 1 /**
mbed_official 130:1dec54e4aec3 2 ******************************************************************************
mbed_official 130:1dec54e4aec3 3 * @file stm32f0xx_crs.h
mbed_official 130:1dec54e4aec3 4 * @author MCD Application Team
mbed_official 130:1dec54e4aec3 5 * @version V1.3.0
mbed_official 130:1dec54e4aec3 6 * @date 16-January-2014
mbed_official 130:1dec54e4aec3 7 * @brief This file contains all the functions prototypes for the CRS firmware
mbed_official 130:1dec54e4aec3 8 * library, applicable only for STM32F042 and STM32F072 devices.
mbed_official 130:1dec54e4aec3 9 ******************************************************************************
mbed_official 130:1dec54e4aec3 10 * @attention
mbed_official 130:1dec54e4aec3 11 *
mbed_official 130:1dec54e4aec3 12 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
mbed_official 130:1dec54e4aec3 13 *
mbed_official 130:1dec54e4aec3 14 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 130:1dec54e4aec3 15 * are permitted provided that the following conditions are met:
mbed_official 130:1dec54e4aec3 16 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 130:1dec54e4aec3 17 * this list of conditions and the following disclaimer.
mbed_official 130:1dec54e4aec3 18 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 130:1dec54e4aec3 19 * this list of conditions and the following disclaimer in the documentation
mbed_official 130:1dec54e4aec3 20 * and/or other materials provided with the distribution.
mbed_official 130:1dec54e4aec3 21 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 130:1dec54e4aec3 22 * may be used to endorse or promote products derived from this software
mbed_official 130:1dec54e4aec3 23 * without specific prior written permission.
mbed_official 130:1dec54e4aec3 24 *
mbed_official 130:1dec54e4aec3 25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 130:1dec54e4aec3 26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 130:1dec54e4aec3 27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 130:1dec54e4aec3 28 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 130:1dec54e4aec3 29 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 130:1dec54e4aec3 30 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 130:1dec54e4aec3 31 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 130:1dec54e4aec3 32 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 130:1dec54e4aec3 33 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 130:1dec54e4aec3 34 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 130:1dec54e4aec3 35 *
mbed_official 130:1dec54e4aec3 36 ******************************************************************************
mbed_official 130:1dec54e4aec3 37 */
mbed_official 130:1dec54e4aec3 38
mbed_official 130:1dec54e4aec3 39 /* Define to prevent recursive inclusion -------------------------------------*/
mbed_official 130:1dec54e4aec3 40 #ifndef __STM32F0XX_CRS_H
mbed_official 130:1dec54e4aec3 41 #define __STM32F0XX_CRS_H
mbed_official 130:1dec54e4aec3 42
mbed_official 130:1dec54e4aec3 43 #ifdef __cplusplus
mbed_official 130:1dec54e4aec3 44 extern "C" {
mbed_official 130:1dec54e4aec3 45 #endif
mbed_official 130:1dec54e4aec3 46
mbed_official 130:1dec54e4aec3 47 /*!< Includes ----------------------------------------------------------------*/
mbed_official 130:1dec54e4aec3 48 #include "stm32f0xx.h"
mbed_official 130:1dec54e4aec3 49
mbed_official 130:1dec54e4aec3 50 /** @addtogroup STM32F0xx_StdPeriph_Driver
mbed_official 130:1dec54e4aec3 51 * @{
mbed_official 130:1dec54e4aec3 52 */
mbed_official 130:1dec54e4aec3 53
mbed_official 130:1dec54e4aec3 54 /** @addtogroup CRS
mbed_official 130:1dec54e4aec3 55 * @{
mbed_official 130:1dec54e4aec3 56 */
mbed_official 130:1dec54e4aec3 57
mbed_official 130:1dec54e4aec3 58 /* Exported types ------------------------------------------------------------*/
mbed_official 130:1dec54e4aec3 59 /* Exported constants --------------------------------------------------------*/
mbed_official 130:1dec54e4aec3 60
mbed_official 130:1dec54e4aec3 61 /** @defgroup CRS_Interrupt_Sources
mbed_official 130:1dec54e4aec3 62 * @{
mbed_official 130:1dec54e4aec3 63 */
mbed_official 130:1dec54e4aec3 64 #define CRS_IT_SYNCOK CRS_ISR_SYNCOKF /*!< SYNC event OK */
mbed_official 130:1dec54e4aec3 65 #define CRS_IT_SYNCWARN CRS_ISR_SYNCWARNF /*!< SYNC warning */
mbed_official 130:1dec54e4aec3 66 #define CRS_IT_ERR CRS_ISR_ERRF /*!< error */
mbed_official 130:1dec54e4aec3 67 #define CRS_IT_ESYNC CRS_ISR_ESYNCF /*!< Expected SYNC */
mbed_official 130:1dec54e4aec3 68 #define CRS_IT_TRIMOVF CRS_ISR_TRIMOVF /*!< Trimming overflow or underflow */
mbed_official 130:1dec54e4aec3 69 #define CRS_IT_SYNCERR CRS_ISR_SYNCERR /*!< SYNC error */
mbed_official 130:1dec54e4aec3 70 #define CRS_IT_SYNCMISS CRS_ISR_SYNCMISS /*!< SYNC missed*/
mbed_official 130:1dec54e4aec3 71
mbed_official 130:1dec54e4aec3 72 #define IS_CRS_IT(IT) (((IT) == CRS_IT_SYNCOK) || ((IT) == CRS_IT_SYNCWARN) || \
mbed_official 130:1dec54e4aec3 73 ((IT) == CRS_IT_ERR) || ((IT) == CRS_IT_ESYNC))
mbed_official 130:1dec54e4aec3 74
mbed_official 130:1dec54e4aec3 75 #define IS_CRS_GET_IT(IT) (((IT) == CRS_IT_SYNCOK) || ((IT) == CRS_IT_SYNCWARN) || \
mbed_official 130:1dec54e4aec3 76 ((IT) == CRS_IT_ERR) || ((IT) == CRS_IT_ESYNC) || \
mbed_official 130:1dec54e4aec3 77 ((IT) == CRS_IT_TRIMOVF) || ((IT) == CRS_IT_SYNCERR) || \
mbed_official 130:1dec54e4aec3 78 ((IT) == CRS_IT_SYNCMISS))
mbed_official 130:1dec54e4aec3 79
mbed_official 130:1dec54e4aec3 80 #define IS_CRS_CLEAR_IT(IT) ((IT) != 0x00)
mbed_official 130:1dec54e4aec3 81
mbed_official 130:1dec54e4aec3 82 /**
mbed_official 130:1dec54e4aec3 83 * @}
mbed_official 130:1dec54e4aec3 84 */
mbed_official 130:1dec54e4aec3 85
mbed_official 130:1dec54e4aec3 86 /** @defgroup CRS_Flags
mbed_official 130:1dec54e4aec3 87 * @{
mbed_official 130:1dec54e4aec3 88 */
mbed_official 130:1dec54e4aec3 89 #define CRS_FLAG_SYNCOK CRS_ISR_SYNCOKF /*!< SYNC event OK */
mbed_official 130:1dec54e4aec3 90 #define CRS_FLAG_SYNCWARN CRS_ISR_SYNCWARNF /*!< SYNC warning */
mbed_official 130:1dec54e4aec3 91 #define CRS_FLAG_ERR CRS_ISR_ERRF /*!< error */
mbed_official 130:1dec54e4aec3 92 #define CRS_FLAG_ESYNC CRS_ISR_ESYNCF /*!< Expected SYNC */
mbed_official 130:1dec54e4aec3 93 #define CRS_FLAG_TRIMOVF CRS_ISR_TRIMOVF /*!< Trimming overflow or underflow */
mbed_official 130:1dec54e4aec3 94 #define CRS_FLAG_SYNCERR CRS_ISR_SYNCERR /*!< SYNC error */
mbed_official 130:1dec54e4aec3 95 #define CRS_FLAG_SYNCMISS CRS_ISR_SYNCMISS /*!< SYNC missed*/
mbed_official 130:1dec54e4aec3 96
mbed_official 130:1dec54e4aec3 97 #define IS_CRS_FLAG(FLAG) (((FLAG) == CRS_FLAG_SYNCOK) || ((FLAG) == CRS_FLAG_SYNCWARN) || \
mbed_official 130:1dec54e4aec3 98 ((FLAG) == CRS_FLAG_ERR) || ((FLAG) == CRS_FLAG_ESYNC) || \
mbed_official 130:1dec54e4aec3 99 ((FLAG) == CRS_FLAG_TRIMOVF) || ((FLAG) == CRS_FLAG_SYNCERR) || \
mbed_official 130:1dec54e4aec3 100 ((FLAG) == CRS_FLAG_SYNCMISS))
mbed_official 130:1dec54e4aec3 101
mbed_official 130:1dec54e4aec3 102 /**
mbed_official 130:1dec54e4aec3 103 * @}
mbed_official 130:1dec54e4aec3 104 */
mbed_official 130:1dec54e4aec3 105
mbed_official 130:1dec54e4aec3 106 /** @defgroup CRS_Synchro_Source
mbed_official 130:1dec54e4aec3 107 * @{
mbed_official 130:1dec54e4aec3 108 */
mbed_official 130:1dec54e4aec3 109 #define CRS_SYNCSource_GPIO ((uint32_t)0x00) /*!< Synchro Signal soucre GPIO */
mbed_official 130:1dec54e4aec3 110 #define CRS_SYNCSource_LSE CRS_CFGR_SYNCSRC_0 /*!< Synchro Signal source LSE */
mbed_official 130:1dec54e4aec3 111 #define CRS_SYNCSource_USB CRS_CFGR_SYNCSRC_1 /*!< Synchro Signal source USB SOF */
mbed_official 130:1dec54e4aec3 112
mbed_official 130:1dec54e4aec3 113 #define IS_CRS_SYNC_SOURCE(SOURCE) (((SOURCE) == CRS_SYNCSource_GPIO) || \
mbed_official 130:1dec54e4aec3 114 ((SOURCE) == CRS_SYNCSource_LSE) ||\
mbed_official 130:1dec54e4aec3 115 ((SOURCE) == CRS_SYNCSource_USB))
mbed_official 130:1dec54e4aec3 116 /**
mbed_official 130:1dec54e4aec3 117 * @}
mbed_official 130:1dec54e4aec3 118 */
mbed_official 130:1dec54e4aec3 119
mbed_official 130:1dec54e4aec3 120 /** @defgroup CRS_SynchroDivider
mbed_official 130:1dec54e4aec3 121 * @{
mbed_official 130:1dec54e4aec3 122 */
mbed_official 130:1dec54e4aec3 123 #define CRS_SYNC_Div1 ((uint32_t)0x00) /*!< Synchro Signal not divided */
mbed_official 130:1dec54e4aec3 124 #define CRS_SYNC_Div2 CRS_CFGR_SYNCDIV_0 /*!< Synchro Signal divided by 2 */
mbed_official 130:1dec54e4aec3 125 #define CRS_SYNC_Div4 CRS_CFGR_SYNCDIV_1 /*!< Synchro Signal divided by 4 */
mbed_official 130:1dec54e4aec3 126 #define CRS_SYNC_Div8 (CRS_CFGR_SYNCDIV_1 | CRS_CFGR_SYNCDIV_0) /*!< Synchro Signal divided by 8 */
mbed_official 130:1dec54e4aec3 127 #define CRS_SYNC_Div16 CRS_CFGR_SYNCDIV_2 /*!< Synchro Signal divided by 16 */
mbed_official 130:1dec54e4aec3 128 #define CRS_SYNC_Div32 (CRS_CFGR_SYNCDIV_2 | CRS_CFGR_SYNCDIV_0) /*!< Synchro Signal divided by 32 */
mbed_official 130:1dec54e4aec3 129 #define CRS_SYNC_Div64 (CRS_CFGR_SYNCDIV_2 | CRS_CFGR_SYNCDIV_1) /*!< Synchro Signal divided by 64 */
mbed_official 130:1dec54e4aec3 130 #define CRS_SYNC_Div128 CRS_CFGR_SYNCDIV /*!< Synchro Signal divided by 128 */
mbed_official 130:1dec54e4aec3 131
mbed_official 130:1dec54e4aec3 132 #define IS_CRS_SYNC_DIV(DIV) (((DIV) == CRS_SYNC_Div1) || ((DIV) == CRS_SYNC_Div2) ||\
mbed_official 130:1dec54e4aec3 133 ((DIV) == CRS_SYNC_Div4) || ((DIV) == CRS_SYNC_Div8) || \
mbed_official 130:1dec54e4aec3 134 ((DIV) == CRS_SYNC_Div16) || ((DIV) == CRS_SYNC_Div32) || \
mbed_official 130:1dec54e4aec3 135 ((DIV) == CRS_SYNC_Div64) || ((DIV) == CRS_SYNC_Div128))
mbed_official 130:1dec54e4aec3 136 /**
mbed_official 130:1dec54e4aec3 137 * @}
mbed_official 130:1dec54e4aec3 138 */
mbed_official 130:1dec54e4aec3 139
mbed_official 130:1dec54e4aec3 140 /** @defgroup CRS_SynchroPolarity
mbed_official 130:1dec54e4aec3 141 * @{
mbed_official 130:1dec54e4aec3 142 */
mbed_official 130:1dec54e4aec3 143 #define CRS_SYNCPolarity_Rising ((uint32_t)0x00) /*!< Synchro Active on rising edge */
mbed_official 130:1dec54e4aec3 144 #define CRS_SYNCPolarity_Falling CRS_CFGR_SYNCPOL /*!< Synchro Active on falling edge */
mbed_official 130:1dec54e4aec3 145
mbed_official 130:1dec54e4aec3 146 #define IS_CRS_SYNC_POLARITY(POLARITY) (((POLARITY) == CRS_SYNCPolarity_Rising) || \
mbed_official 130:1dec54e4aec3 147 ((POLARITY) == CRS_SYNCPolarity_Falling))
mbed_official 130:1dec54e4aec3 148 /**
mbed_official 130:1dec54e4aec3 149 * @}
mbed_official 130:1dec54e4aec3 150 */
mbed_official 130:1dec54e4aec3 151
mbed_official 130:1dec54e4aec3 152
mbed_official 130:1dec54e4aec3 153
mbed_official 130:1dec54e4aec3 154 /* Exported macro ------------------------------------------------------------*/
mbed_official 130:1dec54e4aec3 155 /* Exported functions ------------------------------------------------------- */
mbed_official 130:1dec54e4aec3 156 /* Configuration of the CRS **********************************/
mbed_official 130:1dec54e4aec3 157 void CRS_DeInit(void);
mbed_official 130:1dec54e4aec3 158 void CRS_AdjustHSI48CalibrationValue(uint8_t CRS_HSI48CalibrationValue);
mbed_official 130:1dec54e4aec3 159 void CRS_FrequencyErrorCounterCmd(FunctionalState NewState);
mbed_official 130:1dec54e4aec3 160 void CRS_AutomaticCalibrationCmd(FunctionalState NewState);
mbed_official 130:1dec54e4aec3 161 void CRS_SoftwareSynchronizationGenerate(void);
mbed_official 130:1dec54e4aec3 162 void CRS_FrequencyErrorCounterReload(uint32_t CRS_ReloadValue);
mbed_official 130:1dec54e4aec3 163 void CRS_FrequencyErrorLimitConfig(uint8_t CRS_ErrorLimitValue);
mbed_official 130:1dec54e4aec3 164 void CRS_SynchronizationPrescalerConfig(uint32_t CRS_Prescaler);
mbed_official 130:1dec54e4aec3 165 void CRS_SynchronizationSourceConfig(uint32_t CRS_Source);
mbed_official 130:1dec54e4aec3 166 void CRS_SynchronizationPolarityConfig(uint32_t CRS_Polarity);
mbed_official 130:1dec54e4aec3 167 uint32_t CRS_GetReloadValue(void);
mbed_official 130:1dec54e4aec3 168 uint32_t CRS_GetHSI48CalibrationValue(void);
mbed_official 130:1dec54e4aec3 169 uint32_t CRS_GetFrequencyErrorValue(void);
mbed_official 130:1dec54e4aec3 170 uint32_t CRS_GetFrequencyErrorDirection(void);
mbed_official 130:1dec54e4aec3 171
mbed_official 130:1dec54e4aec3 172 /* Interrupts and flags management functions **********************************/
mbed_official 130:1dec54e4aec3 173 void CRS_ITConfig(uint32_t CRS_IT, FunctionalState NewState);
mbed_official 130:1dec54e4aec3 174 FlagStatus CRS_GetFlagStatus(uint32_t CRS_FLAG);
mbed_official 130:1dec54e4aec3 175 void CRS_ClearFlag(uint32_t CRS_FLAG);
mbed_official 130:1dec54e4aec3 176 ITStatus CRS_GetITStatus(uint32_t CRS_IT);
mbed_official 130:1dec54e4aec3 177 void CRS_ClearITPendingBit(uint32_t CRS_IT);
mbed_official 130:1dec54e4aec3 178
mbed_official 130:1dec54e4aec3 179 #ifdef __cplusplus
mbed_official 130:1dec54e4aec3 180 }
mbed_official 130:1dec54e4aec3 181 #endif
mbed_official 130:1dec54e4aec3 182
mbed_official 130:1dec54e4aec3 183 #endif /* __STM32F0XX_CRS_H */
mbed_official 130:1dec54e4aec3 184
mbed_official 130:1dec54e4aec3 185 /**
mbed_official 130:1dec54e4aec3 186 * @}
mbed_official 130:1dec54e4aec3 187 */
mbed_official 130:1dec54e4aec3 188
mbed_official 130:1dec54e4aec3 189 /**
mbed_official 130:1dec54e4aec3 190 * @}
mbed_official 130:1dec54e4aec3 191 */
mbed_official 130:1dec54e4aec3 192
mbed_official 130:1dec54e4aec3 193 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/