/*FUNCTION********************************************************************** * * Function Name : CLOCK_SYS_SetConfiguration * Description : This funtion sets the system to target configuration, it * only sets the clock modules registers for clock mode change, but not send * notifications to drivers. * *END**************************************************************************/ clock_manager_error_code_t CLOCK_SYS_SetConfiguration(clock_manager_user_config_t const* config) { assert(NULL != config); /* Set outdiv for safe output clock frequency. */ CLOCK_HAL_SetOutDiv(SIM_BASE, 0U, 1U, 1U, 4U); /* Set MCG mode. */ CLOCK_SYS_SetMcgMode(&config->mcgConfig, CLOCK_SYS_FllStableDelay); /* Set SIM setting. */ CLOCK_SYS_SetSimConfigration(&config->simConfig); /* Set OSCERCLK setting. */ CLOCK_SYS_SetOscerConfigration(0, &config->oscerConfig); return kClockManagerSuccess; }
/*FUNCTION********************************************************************** * * Function Name : CLOCK_SYS_GetFreq * Description : Internal function to get the frequency by clock name * This function will get/calculate the clock frequency based on clock name * and current configuration of clock generator. * *END**************************************************************************/ clock_manager_error_code_t CLOCK_SYS_SetConfiguration(clock_manager_user_config_t const* config) { assert(NULL != config); /* Set outdiv for safe output clock frequency. */ CLOCK_HAL_SetOutDiv(SIM, 2U, 0U, 0U, 5U); /* Set MCG mode. */ CLOCK_SYS_SetMcgMode(&config->mcgConfig); /* Set SIM setting. */ CLOCK_SYS_SetSimConfigration(&config->simConfig); /* Set OSCERCLK setting. */ CLOCK_SYS_SetOscerConfigration(0, &config->oscerConfig); SystemCoreClock = CLOCK_SYS_GetCoreClockFreq(); return kClockManagerSuccess; }