STM8L15x Standard Peripherals Drivers: stm8l15x_clk.h Source File

STM8L15x/16x Standard Peripherals Drivers

STM8L15x Standard Peripherals Drivers

stm8l15x_clk.h

Go to the documentation of this file.
00001 /**
00002   ******************************************************************************
00003   * @file    stm8l15x_clk.h
00004   * @author  MCD Application Team
00005   * @version V1.5.0
00006   * @date    13-May-2011
00007   * @brief   This file contains all the functions prototypes for the CLK firmware
00008   *          library.
00009   ******************************************************************************
00010   * @attention
00011   *
00012   * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
00013   * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
00014   * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
00015   * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
00016   * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
00017   * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
00018   *
00019   * <h2><center>&copy; COPYRIGHT 2011 STMicroelectronics</center></h2>
00020   ******************************************************************************  
00021   */
00022 
00023 
00024 /* Define to prevent recursive inclusion -------------------------------------*/
00025 #ifndef __STM8L15x_CLK_H
00026 #define __STM8L15x_CLK_H
00027 
00028 /* Includes ------------------------------------------------------------------*/
00029 #include "stm8l15x.h"
00030 
00031 /** @addtogroup STM8L15x_StdPeriph_Driver
00032   * @{
00033   */
00034 
00035 /** @addtogroup CLK
00036   * @{
00037   */ 
00038 /* Exported types ------------------------------------------------------------*/
00039 
00040 /** @defgroup Exported_Types
00041   * @{
00042   */
00043   
00044 /** @defgroup CLK_HSE_Configuration
00045   * @{
00046   */
00047 typedef enum {
00048   CLK_HSE_OFF    = (uint8_t)0x00, /*!< HSE Diasble */
00049   CLK_HSE_ON     = (uint8_t)0x01, /*!< HSE Enable */
00050   CLK_HSE_Bypass = (uint8_t)0x11  /*!< HSE Bypass and enable */
00051 } CLK_HSE_TypeDef;
00052 
00053 #define IS_CLK_HSE(CONFIG) (((CONFIG) == CLK_HSE_ON) ||\
00054                             ((CONFIG) == CLK_HSE_OFF)||\
00055                             ((CONFIG) == CLK_HSE_Bypass))
00056 /**
00057   * @}
00058   */
00059                               
00060 /** @defgroup CLK_LSE_Configuration
00061   * @{
00062   */
00063 typedef enum {
00064   CLK_LSE_OFF    = (uint8_t)0x00, /*!< LSE Diasble */
00065   CLK_LSE_ON     = (uint8_t)0x04, /*!< LSE Enable */
00066   CLK_LSE_Bypass = (uint8_t)0x24  /*!< LSE Bypass and enable */
00067 } CLK_LSE_TypeDef;
00068 
00069 #define IS_CLK_LSE(CONFIG) (((CONFIG) == CLK_LSE_OFF) ||\
00070                             ((CONFIG) == CLK_LSE_ON)  ||\
00071                             ((CONFIG) == CLK_LSE_Bypass))
00072 /**
00073   * @}
00074   */
00075 
00076 /** @defgroup CLK_System_Clock_Sources
00077   * @{
00078   */
00079 typedef enum {
00080   CLK_SYSCLKSource_HSI = (uint8_t)0x01, /*!< System Clock Source HSI */
00081   CLK_SYSCLKSource_LSI = (uint8_t)0x02, /*!< System Clock Source LSI */
00082   CLK_SYSCLKSource_HSE = (uint8_t)0x04, /*!< System Clock Source HSE */
00083   CLK_SYSCLKSource_LSE = (uint8_t)0x08  /*!< System Clock Source LSE */
00084 } CLK_SYSCLKSource_TypeDef;
00085 
00086 #define IS_CLK_SOURCE(SOURCE) (((SOURCE) == CLK_SYSCLKSource_HSI) ||\
00087                                ((SOURCE) == CLK_SYSCLKSource_LSI) ||\
00088                                ((SOURCE) == CLK_SYSCLKSource_HSE) ||\
00089                                ((SOURCE) == CLK_SYSCLKSource_LSE))
00090 /**
00091   * @}
00092   */
00093 
00094 /** @defgroup CLK_Clock_Output_Selection
00095   * @{
00096   */
00097 typedef enum {
00098   CLK_CCOSource_Off = (uint8_t)0x00, /*!< Clock Output Off */
00099   CLK_CCOSource_HSI = (uint8_t)0x02, /*!< HSI Clock Output  */
00100   CLK_CCOSource_LSI = (uint8_t)0x04, /*!< LSI Clock Output */
00101   CLK_CCOSource_HSE = (uint8_t)0x08, /*!< HSE Clock Output */
00102   CLK_CCOSource_LSE = (uint8_t)0x10  /*!< LSE Clock Output */
00103 } CLK_CCOSource_TypeDef;
00104 
00105 #define IS_CLK_OUTPUT(OUTPUT)  (((OUTPUT) == CLK_CCOSource_Off)  ||\
00106                                 ((OUTPUT) == CLK_CCOSource_HSI)  ||\
00107                                 ((OUTPUT) == CLK_CCOSource_LSI)  ||\
00108                                 ((OUTPUT) == CLK_CCOSource_HSE)  ||\
00109                                 ((OUTPUT) == CLK_CCOSource_LSE))
00110 /**
00111   * @}
00112   */
00113      
00114 /** @defgroup CLK_Clock_Output_Prescaler
00115   * @{
00116   */
00117 typedef enum {
00118   CLK_CCODiv_1  = (uint8_t)0x00, /*!< Clock Output Div 1 */
00119   CLK_CCODiv_2  = (uint8_t)0x20, /*!< Clock Output Div 2 */
00120   CLK_CCODiv_4  = (uint8_t)0x40, /*!< Clock Output Div 4 */
00121   CLK_CCODiv_8  = (uint8_t)0x60, /*!< Clock Output Div 8 */
00122   CLK_CCODiv_16 = (uint8_t)0x80, /*!< Clock Output Div 16 */
00123   CLK_CCODiv_32 = (uint8_t)0xA0, /*!< Clock Output Div 32 */
00124   CLK_CCODiv_64 = (uint8_t)0xC0  /*!< Clock Output Div 64 */
00125 } CLK_CCODiv_TypeDef;
00126 
00127 #define IS_CLK_OUTPUT_DIVIDER(PRESCALER) (((PRESCALER) == CLK_CCODiv_1)  ||\
00128                                           ((PRESCALER) == CLK_CCODiv_2)  ||\
00129                                           ((PRESCALER) == CLK_CCODiv_4)  ||\
00130                                           ((PRESCALER) == CLK_CCODiv_8)  ||\
00131                                           ((PRESCALER) == CLK_CCODiv_16) ||\
00132                                           ((PRESCALER) == CLK_CCODiv_32) ||\
00133                                           ((PRESCALER) == CLK_CCODiv_64))
00134 /**
00135   * @}
00136   */
00137   
00138 /** @defgroup CLK_Beep_Selection
00139   * @{
00140   */
00141 typedef enum {
00142   CLK_BEEPCLKSource_Off = (uint8_t)0x00, /*!< Clock BEEP Off */
00143   CLK_BEEPCLKSource_LSI = (uint8_t)0x02, /*!< Clock BEEP : LSI */
00144   CLK_BEEPCLKSource_LSE = (uint8_t)0x04  /*!< Clock BEEP : LSE */
00145 } CLK_BEEPCLKSource_TypeDef;
00146 
00147 #define IS_CLK_CLOCK_BEEP(OUTPUT) (((OUTPUT) == CLK_BEEPCLKSource_Off)  ||\
00148                                    ((OUTPUT) == CLK_BEEPCLKSource_LSI)  ||\
00149                                    ((OUTPUT) == CLK_BEEPCLKSource_LSE))
00150 /**
00151   * @}
00152   */
00153   
00154 /** @defgroup CLK_RTC_Selection
00155   * @{
00156   */
00157 typedef enum {
00158   CLK_RTCCLKSource_Off = (uint8_t)0x00, /*!< Clock RTC Off */
00159   CLK_RTCCLKSource_HSI = (uint8_t)0x02, /*!< Clock RTC : HSI */
00160   CLK_RTCCLKSource_LSI = (uint8_t)0x04, /*!< Clock RTC : LSI */
00161   CLK_RTCCLKSource_HSE = (uint8_t)0x08, /*!< Clock RTC : HSE */
00162   CLK_RTCCLKSource_LSE = (uint8_t)0x10  /*!< Clock RTC : LSE */
00163 } CLK_RTCCLKSource_TypeDef;
00164 
00165 #define IS_CLK_CLOCK_RTC(OUTPUT) (((OUTPUT) == CLK_RTCCLKSource_Off)  ||\
00166                                   ((OUTPUT) == CLK_RTCCLKSource_HSI)  ||\
00167                                   ((OUTPUT) == CLK_RTCCLKSource_LSI)  ||\
00168                                   ((OUTPUT) == CLK_RTCCLKSource_HSE)  ||\
00169                                   ((OUTPUT) == CLK_RTCCLKSource_LSE))
00170 /**
00171   * @}
00172   */
00173   
00174 /** @defgroup CLK_RTC_Prescaler
00175   * @{
00176   */
00177 typedef enum {
00178   CLK_RTCCLKDiv_1  = (uint8_t)0x00, /*!< Clock RTC Div 1 */
00179   CLK_RTCCLKDiv_2  = (uint8_t)0x20, /*!< Clock RTC Div 2  */
00180   CLK_RTCCLKDiv_4  = (uint8_t)0x40, /*!< Clock RTC Div 4 */
00181   CLK_RTCCLKDiv_8  = (uint8_t)0x60, /*!< Clock RTC Div 8 */
00182   CLK_RTCCLKDiv_16 = (uint8_t)0x80, /*!< Clock RTC Div 16 */
00183   CLK_RTCCLKDiv_32 = (uint8_t)0xA0, /*!< Clock RTC  Div 32 */
00184   CLK_RTCCLKDiv_64 = (uint8_t)0xC0  /*!< Clock RTC  Div 64 */
00185 } CLK_RTCCLKDiv_TypeDef;
00186 
00187 #define IS_CLK_CLOCK_RTC_DIV(DIV) (((DIV) == CLK_RTCCLKDiv_1)  ||\
00188                                    ((DIV) == CLK_RTCCLKDiv_2)  ||\
00189                                    ((DIV) == CLK_RTCCLKDiv_4)  ||\
00190                                    ((DIV) == CLK_RTCCLKDiv_8)  ||\
00191                                    ((DIV) == CLK_RTCCLKDiv_16) ||\
00192                                    ((DIV) == CLK_RTCCLKDiv_32) ||\
00193                                    ((DIV) == CLK_RTCCLKDiv_64))
00194 /**
00195   * @}
00196   */
00197   
00198 /** @defgroup CLK_Peripherals
00199   * @{
00200   */
00201 /* Elements values convention: 0xXY
00202         X = choice between the peripheral registers
00203         X = 0 : PCKENR1
00204         X = 1 : PCKENR2
00205         X = 2 : PCKENR3
00206         Y = Peripheral position in the register
00207   */        
00208 typedef enum {
00209   CLK_Peripheral_TIM2    = (uint8_t)0x00, /*!< Peripheral Clock Enable 1, TIM2 */
00210   CLK_Peripheral_TIM3    = (uint8_t)0x01, /*!< Peripheral Clock Enable 1, TIM3 */
00211   CLK_Peripheral_TIM4    = (uint8_t)0x02, /*!< Peripheral Clock Enable 1, TIM4 */
00212   CLK_Peripheral_I2C1    = (uint8_t)0x03, /*!< Peripheral Clock Enable 1, I2C1 */
00213   CLK_Peripheral_SPI1    = (uint8_t)0x04, /*!< Peripheral Clock Enable 1, SPI1 */
00214   CLK_Peripheral_USART1  = (uint8_t)0x05, /*!< Peripheral Clock Enable 1, USART1 */
00215   CLK_Peripheral_BEEP    = (uint8_t)0x06, /*!< Peripheral Clock Enable 1, BEEP */
00216   CLK_Peripheral_DAC     = (uint8_t)0x07, /*!< Peripheral Clock Enable 1, DAC */
00217   CLK_Peripheral_ADC1    = (uint8_t)0x10, /*!< Peripheral Clock Enable 2, ADC1 */
00218   CLK_Peripheral_TIM1    = (uint8_t)0x11, /*!< Peripheral Clock Enable 2, TIM1 */
00219   CLK_Peripheral_RTC     = (uint8_t)0x12, /*!< Peripheral Clock Enable 2, RTC */
00220   CLK_Peripheral_LCD     = (uint8_t)0x13, /*!< Peripheral Clock Enable 2, LCD */
00221   CLK_Peripheral_DMA1    = (uint8_t)0x14, /*!< Peripheral Clock Enable 2, DMA1 */
00222   CLK_Peripheral_COMP    = (uint8_t)0x15, /*!< Peripheral Clock Enable 2, COMP1 and COMP2 */
00223   CLK_Peripheral_BOOTROM = (uint8_t)0x17,/*!< Peripheral Clock Enable 2, Boot ROM */
00224   CLK_Peripheral_AES     = (uint8_t)0x20, /*!< Peripheral Clock Enable 3, AES */
00225   CLK_Peripheral_TIM5    = (uint8_t)0x21, /*!< Peripheral Clock Enable 3, TIM5 */
00226   CLK_Peripheral_SPI2    = (uint8_t)0x22, /*!< Peripheral Clock Enable 3, SPI2 */
00227   CLK_Peripheral_USART2  = (uint8_t)0x23, /*!< Peripheral Clock Enable 3, USART2 */
00228   CLK_Peripheral_USART3  = (uint8_t)0x24,  /*!< Peripheral Clock Enable 3, USART3 */
00229   CLK_Peripheral_CSSLSE  = (uint8_t)0x25   /*!< Peripheral Clock Enable 3, CSS on LSE */
00230 } CLK_Peripheral_TypeDef;
00231 
00232 #define IS_CLK_PERIPHERAL(PERIPHERAL) (((PERIPHERAL) == CLK_Peripheral_DAC)     ||\
00233                                        ((PERIPHERAL) == CLK_Peripheral_ADC1)    ||\
00234                                        ((PERIPHERAL) == CLK_Peripheral_DMA1)    ||\
00235                                        ((PERIPHERAL) == CLK_Peripheral_RTC)     ||\
00236                                        ((PERIPHERAL) == CLK_Peripheral_LCD)     ||\
00237                                        ((PERIPHERAL) == CLK_Peripheral_COMP)    ||\
00238                                        ((PERIPHERAL) == CLK_Peripheral_TIM1)    ||\
00239                                        ((PERIPHERAL) == CLK_Peripheral_USART1)  ||\
00240                                        ((PERIPHERAL) == CLK_Peripheral_SPI1)    ||\
00241                                        ((PERIPHERAL) == CLK_Peripheral_I2C1)    ||\
00242                                        ((PERIPHERAL) == CLK_Peripheral_TIM4)    ||\
00243                                        ((PERIPHERAL) == CLK_Peripheral_TIM3)    ||\
00244                                        ((PERIPHERAL) == CLK_Peripheral_BEEP)    ||\
00245                                        ((PERIPHERAL) == CLK_Peripheral_BOOTROM) ||\
00246                                        ((PERIPHERAL) == CLK_Peripheral_AES)     ||\
00247                                        ((PERIPHERAL) == CLK_Peripheral_TIM5)    ||\
00248                                        ((PERIPHERAL) == CLK_Peripheral_SPI2)    ||\
00249                                        ((PERIPHERAL) == CLK_Peripheral_USART2)  ||\
00250                                        ((PERIPHERAL) == CLK_Peripheral_USART3)  ||\
00251                                        ((PERIPHERAL) == CLK_Peripheral_CSSLSE)  ||\
00252                                        ((PERIPHERAL) == CLK_Peripheral_TIM2))
00253 /**
00254   * @}
00255   */
00256      
00257 /** @defgroup CLK_System_Clock_Divider
00258   * @{
00259   */
00260 typedef enum {
00261   CLK_SYSCLKDiv_1   = (uint8_t)0x00, /*!< System Clock Divider: 1 */
00262   CLK_SYSCLKDiv_2   = (uint8_t)0x01, /*!< System Clock Divider: 2 */
00263   CLK_SYSCLKDiv_4   = (uint8_t)0x02, /*!< System Clock Divider: 4 */
00264   CLK_SYSCLKDiv_8   = (uint8_t)0x03, /*!< System Clock Divider: 8 */
00265   CLK_SYSCLKDiv_16  = (uint8_t)0x04, /*!< System Clock Divider: 16 */
00266   CLK_SYSCLKDiv_32  = (uint8_t)0x05, /*!< System Clock Divider: 32 */
00267   CLK_SYSCLKDiv_64  = (uint8_t)0x06, /*!< System Clock Divider: 64 */
00268   CLK_SYSCLKDiv_128 = (uint8_t)0x07  /*!< System Clock Divider: 128 */
00269 } CLK_SYSCLKDiv_TypeDef;
00270 
00271 #define IS_CLK_SYSTEM_DIVIDER(DIV) (((DIV) == CLK_SYSCLKDiv_1) ||\
00272                                     ((DIV) == CLK_SYSCLKDiv_2) ||\
00273                                     ((DIV) == CLK_SYSCLKDiv_4) ||\
00274                                     ((DIV) == CLK_SYSCLKDiv_8) ||\
00275                                     ((DIV) == CLK_SYSCLKDiv_16) ||\
00276                                     ((DIV) == CLK_SYSCLKDiv_32) ||\
00277                                     ((DIV) == CLK_SYSCLKDiv_64) ||\
00278                                     ((DIV) == CLK_SYSCLKDiv_128))
00279 /**
00280   * @}
00281   */
00282         
00283 /** @defgroup CLK_Flags
00284   * @{
00285   */
00286 /* Elements values convention: 0xXY
00287     X = choice between the register's flags
00288        X = 0 : CLK_CRTCR
00289        X = 1 : CLK_ICKCR
00290        X = 2 : CLK_CCOR
00291        X = 3 : CLK_ECKCR
00292        X = 4 : CLK_SWCR
00293        X = 5 : CLK_CSSR
00294        X = 6 : CLK_CBEEPR
00295        X = 7 : CLK_REGCSRR
00296        X = 8 : CSSLSE_CSR
00297   Y = flag position in the register
00298 */
00299 typedef enum {
00300   CLK_FLAG_RTCSWBSY    = (uint8_t)0x00, /*!< RTC clock busy in switch Flag */
00301   CLK_FLAG_HSIRDY      = (uint8_t)0x11, /*!< High speed internal oscillator ready Flag */
00302   CLK_FLAG_LSIRDY      = (uint8_t)0x13, /*!< Low speed internal oscillator ready Flag */
00303   CLK_FLAG_CCOBSY      = (uint8_t)0x20, /*!< Configurable clock output busy */
00304   CLK_FLAG_HSERDY      = (uint8_t)0x31, /*!< High speed external oscillator ready Flag */
00305   CLK_FLAG_LSERDY      = (uint8_t)0x33, /*!< Low speed external oscillator ready Flag */
00306   CLK_FLAG_SWBSY       = (uint8_t)0x40, /*!< Switch busy Flag */
00307   CLK_FLAG_AUX         = (uint8_t)0x51, /*!< Auxiliary oscillator connected to master clock */
00308   CLK_FLAG_CSSD        = (uint8_t)0x53, /*!< Clock security system detection Flag */
00309   CLK_FLAG_BEEPSWBSY   = (uint8_t)0x60, /*!< BEEP clock busy in switch Flag*/
00310   CLK_FLAG_EEREADY     = (uint8_t)0x77, /*!< Flash program memory and Data EEPROM ready Flag */
00311   CLK_FLAG_EEBUSY      = (uint8_t)0x76, /*!< Flash program memory and Data EEPROM busy Flag */
00312   CLK_FLAG_LSEPD       = (uint8_t)0x75, /*!< LSE power-down Flag */
00313   CLK_FLAG_HSEPD       = (uint8_t)0x74, /*!< HSE power-down Flag */
00314   CLK_FLAG_LSIPD       = (uint8_t)0x73, /*!< LSI power-down Flag */
00315   CLK_FLAG_HSIPD       = (uint8_t)0x72, /*!< HSI power-down Flag */
00316   CLK_FLAG_REGREADY    = (uint8_t)0x70,  /*!< REGREADY Flag */
00317   CLK_FLAG_LSECSSF     = (uint8_t)0x83,  /*!< CSS on LSE detection Flag */
00318   CLK_FLAG_RTCCLKSWF   = (uint8_t)0x84   /*!< RTCCLK switch completed flag on LSE failure */
00319 }CLK_FLAG_TypeDef;
00320 
00321 #define IS_CLK_FLAGS(FLAG) (((FLAG) == CLK_FLAG_LSIRDY) ||\
00322                             ((FLAG) == CLK_FLAG_HSIRDY) ||\
00323                             ((FLAG) == CLK_FLAG_HSERDY) ||\
00324                             ((FLAG) == CLK_FLAG_SWBSY) ||\
00325                             ((FLAG) == CLK_FLAG_CSSD) ||\
00326                             ((FLAG) == CLK_FLAG_AUX) ||\
00327                             ((FLAG) == CLK_FLAG_LSERDY) ||\
00328                             ((FLAG) == CLK_FLAG_CCOBSY) ||\
00329                             ((FLAG) == CLK_FLAG_RTCSWBSY) ||\
00330                             ((FLAG) == CLK_FLAG_EEREADY) ||\
00331                             ((FLAG) == CLK_FLAG_EEBUSY) ||\
00332                             ((FLAG) == CLK_FLAG_LSEPD) ||\
00333                             ((FLAG) == CLK_FLAG_LSIPD) ||\
00334                             ((FLAG) == CLK_FLAG_HSEPD) ||\
00335                             ((FLAG) == CLK_FLAG_HSIPD) ||\
00336                             ((FLAG) == CLK_FLAG_REGREADY) ||\
00337                             ((FLAG) == CLK_FLAG_BEEPSWBSY)||\
00338                             ((FLAG) == CLK_FLAG_LSECSSF)||\
00339                             ((FLAG) == CLK_FLAG_RTCCLKSWF))
00340 /**
00341   * @}
00342   */
00343 
00344 /** @defgroup CLK_Interrupts
00345   * @{
00346   */
00347 typedef enum {
00348   CLK_IT_CSSD     = (uint8_t)0x0C,  /*!< Clock security system detection Flag */
00349   CLK_IT_SWIF     = (uint8_t)0x1C,  /*!< Clock switch interrupt Flag */
00350   CLK_IT_LSECSSF  = (uint8_t)0x2C   /*!< LSE Clock security system detection Interrupt */
00351 }CLK_IT_TypeDef;
00352 #define IS_CLK_IT(IT) (((IT) == CLK_IT_CSSD) ||\
00353                        ((IT) == CLK_IT_SWIF) ||\
00354                        ((IT) == CLK_IT_LSECSSF))
00355                        
00356 #define IS_CLK_CLEAR_IT(IT) (((IT) == CLK_IT_SWIF)||\
00357                              ((IT) == CLK_IT_LSECSSF))
00358 /**
00359   * @}
00360   */
00361 
00362 /** @defgroup CLK_Halt_Configuration
00363   * @{
00364   */
00365 typedef enum {
00366   CLK_Halt_BEEPRunning = (uint8_t)0x40, /*!< BEEP clock Halt/Active-halt mode */
00367   CLK_Halt_FastWakeup  = (uint8_t)0x20, /*!< Fast wakeup from Halt/Active-halt modes */
00368   CLK_Halt_SlowWakeup  = (uint8_t)0x10  /*!< Slow Active-halt mode */
00369 }
00370 CLK_Halt_TypeDef;
00371 
00372 #define IS_CLK_HALT(HALT) (((HALT) == CLK_Halt_BEEPRunning) ||\
00373                            ((HALT) == CLK_Halt_FastWakeup) ||\
00374                            ((HALT) == CLK_Halt_SlowWakeup))
00375 /**
00376   * @}
00377   */
00378   
00379 /**
00380   * @}
00381   */
00382     
00383 /* Exported constants --------------------------------------------------------*/
00384 /* Exported macro ------------------------------------------------------------*/
00385 /* Exported functions ------------------------------------------------------- */
00386 
00387 /* Function used to set the CLK configuration to the default reset state ******/
00388 void CLK_DeInit(void);
00389 
00390 /* Internal/external clocks, CSS and CCO configuration functions **************/
00391 void CLK_HSICmd(FunctionalState NewState);
00392 void CLK_AdjustHSICalibrationValue(uint8_t CLK_HSICalibrationValue);
00393 void CLK_LSICmd(FunctionalState NewState);
00394 void CLK_HSEConfig(CLK_HSE_TypeDef CLK_HSE);
00395 void CLK_LSEConfig(CLK_LSE_TypeDef CLK_LSE);
00396 void CLK_ClockSecuritySystemEnable(void);
00397 void CLK_ClockSecuritySytemDeglitchCmd(FunctionalState NewState);
00398 void CLK_CCOConfig(CLK_CCOSource_TypeDef CLK_CCOSource, CLK_CCODiv_TypeDef CLK_CCODiv);
00399 
00400 /* System clocks configuration functions ******************/
00401 void CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_TypeDef CLK_SYSCLKSource);
00402 CLK_SYSCLKSource_TypeDef CLK_GetSYSCLKSource(void);
00403 uint32_t CLK_GetClockFreq(void);
00404 void CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_TypeDef CLK_SYSCLKDiv);
00405 void CLK_SYSCLKSourceSwitchCmd(FunctionalState NewState);
00406 
00407 /* Peripheral clocks configuration functions **********************************/
00408 void CLK_RTCClockConfig(CLK_RTCCLKSource_TypeDef CLK_RTCCLKSource, CLK_RTCCLKDiv_TypeDef CLK_RTCCLKDiv);
00409 void CLK_BEEPClockConfig(CLK_BEEPCLKSource_TypeDef CLK_BEEPCLKSource);
00410 void CLK_PeripheralClockConfig(CLK_Peripheral_TypeDef CLK_Peripheral, FunctionalState NewState);
00411 
00412 /* CSS on LSE configuration functions *****************************************/
00413 void CLK_LSEClockSecuritySystemEnable(void);
00414 void CLK_RTCCLKSwitchOnLSEFailureEnable(void);
00415 
00416 /* Low power clock configuration functions ************************************/
00417 void CLK_HaltConfig(CLK_Halt_TypeDef CLK_Halt, FunctionalState NewState);
00418 void CLK_MainRegulatorCmd(FunctionalState NewState);
00419 
00420 /* Interrupts and flags management functions **********************************/
00421 void CLK_ITConfig(CLK_IT_TypeDef CLK_IT, FunctionalState NewState);
00422 FlagStatus CLK_GetFlagStatus(CLK_FLAG_TypeDef CLK_FLAG);
00423 void CLK_ClearFlag(void);
00424 ITStatus CLK_GetITStatus(CLK_IT_TypeDef CLK_IT);
00425 void CLK_ClearITPendingBit(CLK_IT_TypeDef CLK_IT);
00426 
00427 
00428 #endif /* __STM8L15x_CLK_H */
00429 
00430 /**
00431   * @}
00432   */
00433   
00434 /**
00435   * @}
00436   */
00437 
00438 /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/
STM8S Firmware Library: Overview

 

 

 

For complete documentation on STM8L15x 8-bit microcontrollers platform visit www.st.com