44 #include "ADuCRF101.h"
52 #define __CCLK_DIV (1 << (pADI_CLKCTL->CLKCON & CLKCON_CD_MSK) )
55 #define __HFOSC 16000000
56 #define __LFXTAL 32768
62 static uint32_t uClk = 0;
63 static uint32_t uClkDiv = 0;
66 static uint32_t SystemExtClock = 0;
74 #if ((CLKCON_CLKMUX_HFOSC \
75 | CLKCON_CLKMUX_LFXTAL \
76 | CLKCON_CLKMUX_LFOSC \
77 | CLKCON_CLKMUX_EXTP05) \
81 switch (pADI_CLKCTL->CLKCON & CLKCON_CLKMUX_MSK ) {
83 case CLKCON_CLKMUX_HFOSC:
86 case CLKCON_CLKMUX_LFXTAL:
89 case CLKCON_CLKMUX_LFOSC:
92 case CLKCON_CLKMUX_ECLKIN:
93 uClk = SystemExtClock;
99 uClkDiv = uClk / __CCLK_DIV;
102 #error "Clock mux mask and allowed value mismatch!"
118 pADI_CLKCTL->CLKCON = CLKCON_RVAL;
121 pADI_CLKCTL->XOSCCON = XOSCCON_RVAL;
135 void SetSystemExtClkFreq (uint32_t ExtClkFreq)
137 SystemExtClock = ExtClkFreq;
147 uint32_t GetSystemExtClkFreq (
void)
149 return SystemExtClock;
154 void SystemSetClockDivider(uint16_t div)
161 pADI_CLKCTL->CLKCON &= ~(CLKCON_CD_MSK);
162 pADI_CLKCTL->CLKCON |= div;
172 uint32_t SystemGetClockFrequency(
void)
void SystemInit(void)
Initialize the system.
void SystemCoreClockUpdate(void)
Update internal SystemCoreClock variable.